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"

))

相关推荐
Msshu1231 小时前
PD快充诱骗协议芯片XSP25支持PD+QC+FCP+SCP+AFC协议支持通过串口读取充电器功率信息
人工智能
一RTOS一3 小时前
东土科技连投三家核心企业 发力具身机器人领域
人工智能·科技·机器人·具身智能·鸿道实时操作系统·国产嵌入式操作系统选型
DataLaboratory3 小时前
Python爬取百度地图-前端直接获取
爬虫·python·百度地图
ACP广源盛139246256734 小时前
(ACP广源盛)GSV1175---- MIPI/LVDS 转 Type-C/DisplayPort 1.2 转换器产品说明及功能分享
人工智能·音视频
胡耀超4 小时前
隐私计算技术全景:从联邦学习到可信执行环境的实战指南—数据安全——隐私计算 联邦学习 多方安全计算 可信执行环境 差分隐私
人工智能·安全·数据安全·tee·联邦学习·差分隐私·隐私计算
Turnsole_y6 小时前
pycharm自动化测试初始化
python·selenium
停停的茶6 小时前
深度学习(目标检测)
人工智能·深度学习·目标检测
Y200309166 小时前
基于 CIFAR10 数据集的卷积神经网络(CNN)模型训练与集成学习
人工智能·cnn·集成学习
老兵发新帖6 小时前
主流神经网络快速应用指南
人工智能·深度学习·神经网络
weixin-a153003083167 小时前
[数据抓取-1]beautifulsoup
开发语言·python·beautifulsoup