Pytorch项目,肺癌检测项目之三

2023-12-23 21:04

本文主要是介绍Pytorch项目,肺癌检测项目之三,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

成功获取到数据之后,我们需要将数据放到Pytorch里面去处理,我们需要将其转换成Dataset数据集,方便去使用相同的API。要转换成Dataset数据集需要实现两个方法,方法一:   方法二:

运行比较慢的话,需要加入缓存 的方法:

缓存部分

@functools.lru_cache(1,typed=True)
def getCt(series_uid):
    return Ct(series_uid)
@raw_cache.memoize(typed=True)
def getCtRawCandidate(series_uid,center_xyz,width_irc):
    ct = getCt(series_uid)
    ct_chunk,center_irc = ct.getCtRawCandidate(center_xyz,width_irc)
    return ct_chunk,center_irc

def _len_(self):
    return len(self.candidateInfo_list)

def _getitem_(self,ndx):
    candidateInfo_tup = self.candidateInfo_list[ndx]
    
    width_irc = (32,48,48)
    candidate_a,center_irc = getCtRawCandidate(candidateInfo_tup.series_uid,candidateInfo.center_xyz,width_irc)
    
    #转换为张量
    candidate_t = torch.from_numpy(candidate_a)
    
    #转换为浮点数
    cadidate_t = candidate_t.to(torch.float32)
    
    #进行升维
    cadidate_t = candidate_t.unsqueeze(0)
    
    #处理标注信息
    post_t = torch.tensor([not candidateInfo_tup.isNodule_boool,candidateInfo_tup.isNodule_boool],dtype=torch.long)
    
    #返回资源组
    return (candidate_t,post_t,candidateInfo_tup.series_uid,torch.tensor(center_irc))

使用Dataset提供的方案,将数据分割为数据集和验证集

class LunaDataset():
    def _init_(self,val_stride=0,isValSet_bool=None,series_uid=None):
        self.candidateInfo_list = copy.copy(getCandidateInfoList())
        
        if series_uid:
            self.candidateInfo_list = [x for in self.candidateInfo_list if x.series_uid == series_uid]
            
        #是否是验证集
        if isValSet_bool:
            # 增加异常捕获信息
            assert val_stride>0,val_stride
            # 返回验证集的步长信息,步长信息就是对验证集进行切分的
            self.candidateInfo_list = self.candidateInfo_list[::val_stride]
            assert self.candidateInfo_list
        # 如果不是验证集,就是训练集
        elif val_stride>0:
            del self.candidateInfo_list[::val_stride]
            assert self.candidateInfo_list
            
        log.info("(!r): {} {} samples".format(
            self,len(self.candidateInfo_list), "Validation" if isValSet_bool else "training"
        
        ))

这篇关于Pytorch项目,肺癌检测项目之三的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/529455

相关文章

PyTorch中的词嵌入层(nn.Embedding)详解与实战应用示例

《PyTorch中的词嵌入层(nn.Embedding)详解与实战应用示例》词嵌入解决NLP维度灾难,捕捉语义关系,PyTorch的nn.Embedding模块提供灵活实现,支持参数配置、预训练及变长... 目录一、词嵌入(Word Embedding)简介为什么需要词嵌入?二、PyTorch中的nn.Em

在IntelliJ IDEA中高效运行与调试Spring Boot项目的实战步骤

《在IntelliJIDEA中高效运行与调试SpringBoot项目的实战步骤》本章详解SpringBoot项目导入IntelliJIDEA的流程,教授运行与调试技巧,包括断点设置与变量查看,奠定... 目录引言:为良驹配上好鞍一、为何选择IntelliJ IDEA?二、实战:导入并运行你的第一个项目步骤1

IntelliJ IDEA2025创建SpringBoot项目的实现步骤

《IntelliJIDEA2025创建SpringBoot项目的实现步骤》本文主要介绍了IntelliJIDEA2025创建SpringBoot项目的实现步骤,文中通过示例代码介绍的非常详细,对大家... 目录一、创建 Spring Boot 项目1. 新建项目2. 基础配置3. 选择依赖4. 生成项目5.

Linux系统性能检测命令详解

《Linux系统性能检测命令详解》本文介绍了Linux系统常用的监控命令(如top、vmstat、iostat、htop等)及其参数功能,涵盖进程状态、内存使用、磁盘I/O、系统负载等多维度资源监控,... 目录toppsuptimevmstatIOStatiotopslabtophtopdstatnmon

深度解析Java项目中包和包之间的联系

《深度解析Java项目中包和包之间的联系》文章浏览阅读850次,点赞13次,收藏8次。本文详细介绍了Java分层架构中的几个关键包:DTO、Controller、Service和Mapper。_jav... 目录前言一、各大包1.DTO1.1、DTO的核心用途1.2. DTO与实体类(Entity)的区别1

如何在Spring Boot项目中集成MQTT协议

《如何在SpringBoot项目中集成MQTT协议》本文介绍在SpringBoot中集成MQTT的步骤,包括安装Broker、添加EclipsePaho依赖、配置连接参数、实现消息发布订阅、测试接口... 目录1. 准备工作2. 引入依赖3. 配置MQTT连接4. 创建MQTT配置类5. 实现消息发布与订阅

springboot项目打jar制作成镜像并指定配置文件位置方式

《springboot项目打jar制作成镜像并指定配置文件位置方式》:本文主要介绍springboot项目打jar制作成镜像并指定配置文件位置方式,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录一、上传jar到服务器二、编写dockerfile三、新建对应配置文件所存放的数据卷目录四、将配置文

怎么用idea创建一个SpringBoot项目

《怎么用idea创建一个SpringBoot项目》本文介绍了在IDEA中创建SpringBoot项目的步骤,包括环境准备(JDK1.8+、Maven3.2.5+)、使用SpringInitializr... 目录如何在idea中创建一个SpringBoot项目环境准备1.1打开IDEA,点击New新建一个项

C++ 检测文件大小和文件传输的方法示例详解

《C++检测文件大小和文件传输的方法示例详解》文章介绍了在C/C++中获取文件大小的三种方法,推荐使用stat()函数,并详细说明了如何设计一次性发送压缩包的结构体及传输流程,包含CRC校验和自动解... 目录检测文件的大小✅ 方法一:使用 stat() 函数(推荐)✅ 用法示例:✅ 方法二:使用 fsee

springboot项目中整合高德地图的实践

《springboot项目中整合高德地图的实践》:本文主要介绍springboot项目中整合高德地图的实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一:高德开放平台的使用二:创建数据库(我是用的是mysql)三:Springboot所需的依赖(根据你的需求再