当前位置: 首页 > news >正文

六、肺癌检测-训练指标和数据增强

上一篇文章讲了训练过程和tensorboard可视化,这一篇文章记录下训练指标和数据增强的东西。

五、肺癌检测-数据集训练 training.py model.py_wxyczhyza的博客-CSDN博客

一、目标

1. 记录精度、召回率、F1分数

2. 样本均衡和样本随机化

3. 数据增强

二、要点

1. 精度、召回率、F1分数

精度、召回率、F1分数概念可参考文章:

召回率,精确度,准确率,F1分数的区别_wxyczhyza的博客-CSDN博客

 2. 样本均衡化和样本随机化

由于数据中肿瘤只占所有结节的极少数,直接训练时会导致模型被训练成偏向将结果预测为正常结节,所以要对样本进行平衡和随机化,避免某个batch中出现所有样本只有正常结节没有肿瘤。

具体步骤:将正样本放在pos_list中,负样本放在neg_list中,当调用dataset的getiem(index)时,计算这个index是正样本还是负样本,并从对应的pos_list或neg_list中索引对应的样本返回。

假设希望正常结节和肿瘤数量的比例ratio=2,当使用dataset的getitem通过下标索引样本时,希望得到的样本为:

数据集

索引

Index

0123456789转换公式

肿瘤+

正常-

+--+--+--+

pos_list索引

Index_P

0123Index_P = Index // (ratio+1)

neg_list索引

Index_N

012345Index_N = Index -1- Index_P

举例:当ratio_int=2, 输入dataset的index为101,则:

① 101/ (2+1) = 33.6...,不能被3整除,证明是一个负样本,它对应的正样本的索引Index_P=33

② 负样本的索引Index_N = 101 -1 - 33 = 67

书中部分代码如下:

# dsets.py __init__函数代码
# 正常结节
self.negative_list = [nt for nt in self.candidateInfo_list if not nt.isNodule_bool
]
# 肿瘤
self.pos_list = [nt for nt in self.candidateInfo_list if nt.isNodule_bool
]
# dsets.py def getitem()
if self.ratio_int:pos_ndx = ndx // (self.ratio_int + 1)if ndx % (self.ratio_int + 1):  # 负样本neg_ndx = ndx - 1 - pos_ndxneg_ndx %= len(self.negative_list)  # 求余数防止下标溢出candidateInfo_tup = self.negative_list[neg_ndx]else:pos_ndx %= len(self.pos_list)  # 求余数防止下标溢出candidateInfo_tup = self.negative_list[pos_ndx]
else:candidateInfo_tup = self.candidateInfo_list[ndx]

http://www.lryc.cn/news/17395.html

相关文章:

  • 儿童饰品发夹发卡出口美国办理什么认证?
  • Hive---Hive语法(一)
  • 微信小程序日记、微信小程序个人空间、个人日记
  • CentOS 8利用Apache安装部署下载服务器
  • 【数据结构与算法】顺序表增删查改的实现(动态版本+文件操作)附源码
  • 【虹科】基于Lidar的体积监控实现高效的库存管理
  • 一口吃不成ChatGPT,复旦版MOSS服务器被挤崩后续
  • html初识
  • BFC的概念与作用
  • 谷歌留痕代发技术指南_谷歌留痕怎么霸屏的?
  • SCG failure information
  • Idea修改Git账号及密码的方法
  • leaflet 设置右键菜单,配置相应的功能(090)
  • 怎么维护Linux VPS 服务器?简单7个步骤
  • [NOIP1999 提高组] 旅行家的预算(C++,贪心)
  • Array.apply(null,{length: 99}) 逻辑解析
  • Web前端开发常用工具推荐(内含学前端必备软件资源)
  • 【python】考前复习,python基础语法知识点整理
  • 3个月,入门网络安全并找到工作
  • 你会用 TypeScript 的条件类型吗?
  • 云原生丨一文教你基于Debezium与Kafka构建数据同步迁移(建议收藏)
  • 顶象APP加固的“蜜罐”技术有什么作用
  • 训练一个ChatGPT需要多少数据?
  • 【GlobalMapper精品教程】053:打开dbf文件并生成有坐标系的shp数据
  • 图像亮度调整
  • 精简版SDL落地实践
  • 第一回:Matplotlib初相识
  • 怎么找回电脑删除的图片
  • 【Linux】进程状态与进程优先级
  • Python+Qt生日提醒