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_listndx

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"

))

相关推荐
网络研究院几秒前
不装了!Claude背后的AI巨头也开始造芯片了,英伟达的“铁饭碗”要被砸?
人工智能·科技·ai·芯片·供应链·底层·产业链
laboratory agent开发3 分钟前
企业AI应用定制中的转人工交接:上下文为何接不上
人工智能
其实防守也摸鱼5 分钟前
Codex破局:前端组件秒级生成的技术文章大纲
开发语言·前端·人工智能·学习·安全·web安全
audyxiao00110 分钟前
重磅发布|《上海市教育发展“十五五”规划》及其解读
人工智能·十五五·教育发展
兰亭妙微UI设计公司12 分钟前
兰亭妙微UI设计:Neemo Project 企业AI项目管理后台全案运营价值解析
人工智能·ui
Bode_200216 分钟前
智能制造系统(SoI)中“3I”指什么
大数据·人工智能
Logintern0916 分钟前
装饰器和洋葱模式的区分
开发语言·python·架构
%KT%17 分钟前
大模型提示词在标点符号上的一些习惯
人工智能·prompt
单片机杂货铺28 分钟前
【单片机毕业设计选题】基于单片机的智能牛奶保鲜箱设计
人工智能·stm32·单片机·物联网·毕业设计·课程设计
lancyu32 分钟前
# Agent Loop:AI Agent 的唯一直心骨
开发语言·javascript·人工智能