弱监督网络CheXNet复现心得

最近由于项目需要,开始研究弱监督算法的实现,从最开始查阅相关概念到现在复现接近尾声,出现了不少问题和小坑,这篇博客简单记录一下复现过程中的心路历程。其中有很多是很显而易见的问题,也一并说一下。

数据准备

不得不说,这个项目对数据的要求十分严格,可能也注定其泛化性不强。出于检测其可行性的想法,我首先选取了实验室一个前期准备过的单类目标进行训练,共计图像2030张,我选取1800张作为训练,230张作为验证(我把测试集和验证集重合了,考虑到这样能充分利用这个小小的数据集)。其中,选取200张图像的标签作为有监督部分的训练。

在上一篇博客中(自建py文件,实现读取XML文件,并对其中值进行计算的功能)我提到,整个数据准备需要两个.csv文件和两个.txt文件,其中,.csv文件的生成花了我很长时间,先看一下它们的结构:

Data_Entry_2017_v2020_.csv

在这里插入图片描述

BBox_List_2017.csv

在这里插入图片描述
可以看到,前者提供所有输入图像的名称和包含类别名称,后者提供带有标签的图像名称、包含类别名称和 bounding box 的 x,y,w,h 四个参数。

在上一篇博客中我说Data_Entry_2017_v2020.csv这个文件没有调用,是一个错误的判断,后来分析preprocessing.py的代码,发现Data_Entry_2017_v2020.csv这个文件是被read的,所以根据原始文件的形式,进行了修改,这个过程完成通过手动操作,复制粘贴图像名称,2030张图像花费了不少时间,我想,一定要有一个自动写入excel表格的脚本,以满足将来项目数据几万张图像的需要。

运行preprocessing.py文件后,生成 label_encoder.pkl、train_X_small.npy、train_y_onehot.pkl、valid_X_small.npy、valid_y_onehot.pkl 四个文件,以满足 train.py 的需要。

训练

这一部总体来讲比较顺利,只需要修改自己所需的参数即可,一个小问题是调用GPU出现 out of memory 的错误,是有某GPU被占用导致的。

训练结束,生成10个权重问价,最终 loss 为0.31。

BBox.txt文件生成

最后一步生成bbox.txt文件来观察测试结果,在调用 scipy.misc.imread 时报错:module ‘scipy.misc’ has no attribute ‘imread’,这是因为scipy版本不对,我原来的版本为1.0.0,升级为1.2.0成功。

目前最后一个程序在running,希望能得到期待的效果吧!

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值