更多参考其他模型训练OCT图像分类
目录
迁移学习darknet_resnet34
数据来自平安数据:
正常图片:14708张
异常图片:24303张
黄斑六线高清OCT图。
裁剪权重文件:
darknet分类官网(https://pjreddie.com/darknet/imagenet/)下载resnet34模型的权重文件resnet34.weights和网络结构文件:resnet.cfg也可以重命名为resnet34.txt.
darknet partial resnet34.txt backup/resnet34.weights _resnet34.weights 51
说明:
darknet partial cfg文件 权重文件 输出名字 层数
51就是保留前51层的权重,保存文件名为_resnet34.weights.
参考文献:yolo partial提取已经训练好的网络中的部分权重
为什么保留前51层结构的权重,首先使用darknet classifier train metal.data resnet34.txt backup/resnet34.weights 命令,可以查看resnet34的机构,保留到最后一个conv层即可,本质是砍掉resnet的分类层。
配置metal.data
使用F:\HelloPytorch\pinganjpg文件夹下,abnor和normal两个文件夹中的数据进行小批量训练,正常异常图片比例为1:1,图片总张数约6000张。
配置metal.data详情参考:如何训练darknet模型:修改官网已有模型训练自己图片
修改cfg文件:
参考其他模型训练OCT图像分类中4.2节修改cfg文件
图片张数6000,100epoch,裁剪后的权重初始batch=0,所以设置maxbatch为40000
maxbatches = 40000;
begin = 0
rate = 0.01;
x = begin:maxbatches;
tm = x-begin
y=1-(tm/maxbatches);
k=y.^4;
rate= rate*k;
plot(x,rate)
训练效果:
训练指令:
darknet classifier train metal.data resnet34.txt backup/_resnet34.weights
开始时间:
2020年9月9日:10:50
结束时间:2020年9月9日:17:40
预测图片:
darknet classifier test metal.data resnet34.txt backup/resnet34_8000.weights >1.txt
异常图片:召回率,0.9439
otal:3014
normal4:169 abnor4: 2845 total: 3014 normal/total: 0.05607166556071665 abnor/total:0.9439283344392834
正常图片:召回率,0.6722
total:3228
normal4:2170 abnor4: 1058 total: 3228 normal/total: 0.6722428748451054 abnor/total:0.3277571251548947
darknet classifier test metal.data resnet34.txt backup/_resnet34.weights >1.txt
异常图片:召回率,0.0846
total:3014
normal4:2759 abnor4: 255 total: 3014 normal/total: 0.9153948241539482 abnor/total:0.08460517584605176
正常图片:召回率,0.9811
total:3228
normal4:3167 abnor4: 61 total: 3228 normal/total: 0.9811028500619579 abnor/total:0.018897149938042132
权重文件 | 异常图片 | 正常图片 |
_resnet34.weights | 0.0846 | 0.9811 |
resnet34_8000.weights | 0.9439 | 0.6722 |
为什么相同图片相同模型,pytorch与darknet结果大不相同?