上一篇文章讲了训练过程和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

0 1 2 3 4 5 6 7 8 9 转换公式

肿瘤+

正常-

+ - - + - - + - - +

pos_list索引

Index_P

0 1 2 3 Index_P = Index // (ratio+1)

neg_list索引

Index_N

0 1 2 3 4 5 Index_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]

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

  1. 目标检测中的数据增强

    目标检测中的数据增强 技术标签: 深度学习 人工智能 一.图像遮挡 ①random erase 用随机值或训练集的平均像素替换图像区域. URL: https://arxiv.org/pdf/1708 ...

  2. 汇总|目标检测中的数据增强、backbone、head、neck、损失函数

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者:Tom Hardy https://zhuanlan.zhihu.com/p/137769687 ...

  3. 目标检测中的数据增强,包括bbox的变换

    检测和分类不同,检测过程中,图片处理以后,bbox往往也需要同步变换 里面碰到最坑的地方,在于cv.rectangle(),如果是对图像进行操作,一定要deepcopy 文章目录 1. 水平翻转 1. ...

  4. 目标检测中的数据增强:mosaic,mixup,cutout,cutmix

    认真读绝对不亏,不要看到全是字就 怕  了. 最近学目标检测,在看yolov4的时候,看到了mosaic数据增强方法,所以查阅了一些知识,因为网上的讲解都注重于原理,不注重详细的实现方法以及细节,而工 ...

  5. 目标检测 慎用旋转数据增强

    目录 概述 一个具体的例子 原因分析 影响分析 总结建议 概述 在进行SSD.YOLO等目标检测类模型训练的时候,为了提升模型的识别率和泛化能力,一般会采用数据增强策略,主要包括调整图片的亮度.对比度 ...

  6. BBAug: 一个用于PyTorch的物体检测包围框数据增强包

    本文转载自AI公园. 作者:Harpal Sahota 编译:ronghuaiyang 导读 实现了Google Research,Brain Team中的增强策略. 像许多神经网络模型一样,目标检测 ...

  7. 目标检测使用的数据增强方法汇总

    向AI转型的程序员都关注了这个号

  8. 目标检测带标签数据增强代码

    注意:我的数据集名字从1开始的,所以是for i in range(1,num),所以倒数第三句 str(i + num-1) 如果是从零开始就不用-1.另外文件名以及图片大小(1280,1024)也 ...

  9. 【目标检测】56、目标检测超详细介绍 | Anchor-free/Anchor-based/Backbone/Neck/Label-Assignment/NMS/数据增强

    文章目录 1.双阶段和单阶段目标检测器 1.1 双阶段目标检测器 1.1.1 R-CNN 1.1.2 SPP 1.1.3 Fast R-CNN 1.1.4 Faster R-CNN 1.2 单阶段目标 ...

最新文章

  1. Service Fabric独立集群搭建
  2. BZOJ4543/BZOJ3522 [POI2014]Hotel加强版(长链剖分)
  3. 鸿蒙0s是什么意思,华为官宣,鸿蒙0S正式来临?
  4. 1746: 多项式系数(杨辉三角的应用)
  5. Sql自动更新不同IP的数据库数据。(link Server)
  6. 【文末赠书】牛顿:伸向未知量的利爪
  7. miui游戏驱动程序偏好设置_米粉必看:小米官方教你如何关闭 MIUI 广告 - 小米,MIUI...
  8. html5星期,HTML5 时钟
  9. java 序列化 写入mysql_java 序列化到mysql数据库中
  10. Spring : ImportBeanDefinitionRegistrar源码分析
  11. 页面图片中间有条线----解决
  12. mysql字符类型总结及常用字符函数
  13. marlab中主成分得分怎么求_雅漾恒润保湿精华乳,做完配方成分解读,我表示遗憾,决定守住我的花呗...
  14. Microstation v8+Terrasolid安装教程
  15. mysql时间减去1年_mysql时间增加一年
  16. QT 连接 MySQL 失败:手动编译 MySQL 驱动插件
  17. 基于深度学习的移动网络异常检测
  18. 骏飞H5幸运刮刮乐源码多级分佣+upupw直接架设+H5微信登陆公众号接入 管理员
  19. git commit message——git提交日志规范备忘
  20. 基于UDS的ECU bootloader

热门文章

  1. 基于DDSRF正负序分离方法的不平衡电网PQ控制策略_平衡电流控制
  2. 1225:金银岛 2020-12-04
  3. ZY Player 2.6.3 中文版 全网视频播放器
  4. 傲游Android插件,傲游浏览器安卓版_傲游浏览器手机版下载-太平洋下载中心
  5. 无法打开计算机 eploxre 接口未知,绝地求生辅助发卡网Win7系统打开计算机属性提示“此项目的属性未知”解决方案...
  6. 视频配音怎么制作?教你手机怎么给视频配音
  7. Oracle P6软件编制项目计划及进度控制程序
  8. c 语言 内部函数与外部函数,C语言-内部函数与外部函数.doc
  9. Swin Transformer: Hierarchical Vision Transformer using Shifted Windows
  10. 如何自己制作java对话框_java中的卡片式对话框如何制作