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"
        
        ))

相关推荐

  1. Pytorch项目肺癌检测项目

    2023-12-24 07:22:03       40 阅读
  2. 项目旅(第周)

    2023-12-24 07:22:03       11 阅读
  3. Nginx(): 项目实战conf

    2023-12-24 07:22:03       12 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-24 07:22:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-24 07:22:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-24 07:22:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-24 07:22:03       18 阅读

热门阅读

  1. 力扣labuladong一刷day45天二分图判定

    2023-12-24 07:22:03       42 阅读
  2. 二级指针使用

    2023-12-24 07:22:03       42 阅读
  3. mybatisx 插件模板

    2023-12-24 07:22:03       42 阅读
  4. 第6章 用户输入和while循环

    2023-12-24 07:22:03       41 阅读
  5. Hadoop

    Hadoop

    2023-12-24 07:22:03      39 阅读
  6. Python中使用YAML文件进行配置文件管理

    2023-12-24 07:22:03       42 阅读