一、环境介绍
- 系统:win10
- 语言:python3.7
- 框架:pytorch
二、功能说明
现有骨折数据集,分为骨折和正常两类。需要训练神经网络使其识别这两类图片(二分类),两种类型的数据分别如下:


第一张为骨折图像,第二张为正常图片,图片的大小为112*112。
对,功能就是这么简单。
三、实现步骤
3.1 找车轮
自己造轮子是不可能的,这辈子都不会的!!
在github上面找一个基于pytorch的图像分类网络,里面包含现在比较主流的分类网络。
这里面有以下几种网络可供选择:

功能全面,就用这个轮子。
3.2 分析车轮
经过一番debug跟踪之后,发现了轮子一些不足的地方:
- 配置比较分散:数据集、网络和数据增强不是在同一个地方配置的。
- 没有自定义数据集,换句话说,不能训练自己的数据。(这里需要改)
3.3 改造轮子
3.3.1 配置分散
分散就分散吧,能用就好,不改。
3.3.2 添加自定义数据集
在train.py文件中,添加CUSTOM类型。
1 | parser.add_argument( |
在argparser.py中的_cleanup_args函数的最下面添加:
1 | elif args.dataset == 'CUSTOM': |
在dataloader.py中,emmm,这里面动的比较多,直接全贴进来吧
3.4 启动车子
把数据放到data文件夹下面,train表示训练集,val表示验证集。bad和good是两个分类(不同类用不同的文件夹装起来就好)

再修改一下config文件里面的学习率和bachsize就好!!
启动训练:
1 | python train.py --arch resnet_preact --depth 56 --outdir results |
四、结果
二分类还是比较简单,10个epoch就可以达到99.9%的正确率。使用的数据集有1000多张bad图片,200多张good图片。
