[最高0.9853! @zzc1995,分数持续更新中] 动手玩Kaggle比赛------使用Gluon对原始图像文件分类(CIFAR-10) 讨论区


#375

27*2+(26+1)*2+(26+1)*2 +2=164


#376

DenseNet结果


#377

DenseNet+resenet18


#378

num_epochs = 300
learning_rate = 0.1
weight_decay = 1e-4
lr_period = 120
lr_decay = 0.1


#379


将resnet和dennet的结果综合


#380


对于resnet和densenet两个模型我训练了好几组参数,进行了一下排列组合得到的结果


#381


#382


第三次上传的结果。综合多次resnet18的结果。


#383

resnet 0.9539


#384

出于好奇,我在ResNet 18前面又加了一个Block 1,效果下降的好明显


#385

嗯,有帮助,batch size由256减半,就能跑了。感觉还是内存不够吧。谢谢astonzhang.


#386

这周没什么大提高,就单纯延后了lr decay的时间


#387


参考前面几个小伙伴ensemble的方法,我跟我的一个小伙伴讨论了一下,认为ensemble更有效的时候应该是使用不同数据训练获得的几个网ensemble起来,做了一些尝试,大致和猜想差不多,发现使用这5个网络merge的效果是最好的。
这5个网络的训练策略和单独提交的精度分别是:
res164_v2 + DA1: 0.9529
res164_v2 + DA2: 0.9527
res164_v2 + focal loss + DA3: 0.9540
res164_v2 + focal loss + DA3 + 只使用train_data训练: 0.9506
sherlock_densenet: 0.9539

上面的DA是3中不同的数据增强的方法,
DA1就是最常用的那种padding到40,然后crop的方法,就是sherlock代码里使用的加强
DA2是先resize到一定的大小,然后crop的方法,同时设置了HSI的几个参数为0.3,PCA噪声为0.01
DA3时在DA2后,将图片的颜色clip导(0,1)之间(动机时创建更符合人感官的自然图片数据)

五个网络按照各自的精度加权求和作为最后的结果,就有了0.9688的效果。

根据各位大佬们的想法,做的一些小实验,一点小小的总结,希望能帮其他几位坛友提供新idea


#388

也可以试试更多的模型,比如inception-resnet-v2,我之前有一个想法,是将几个模型单独训练好,然后使用各个模型卷积层提取特征,然后将特征concat起来,最后再训几个全连接层,不知道这样的效果是否好。


#389

你一说起这个,我突然想起以前学自动控制论的时候有一种控制算法叫遗传算法,其中有个步骤就是把两个模型的参数随机混搭起来,就跟染色体混合有些类似,具体记不清了,我回头弄一个试试


#390

(densenet(0.9542) + resnet(0.9539)) /2


#391

image

DenseNet-BC 100层, growth=12, 其他参数和训练方法参考了 DenseNet 那篇论文: https://arxiv.org/abs/1608.06993
直接用4.5万张图片训练出的模型预测, 结果比文中同样的网络差了一点.
在 aws 的 k80 上跑的, 5分10秒一轮.

还试了文中效果最好的 DenseNet-BC 190层, growth=40, 1个小时一轮…放弃了

DenseNet 的代码: https://gist.github.com/aRe00t/c1fb7b863c236c267821d966affbadcb


#392

恭喜恭喜,等你有空的时候能和小伙伴们分享一下你的代码吗?


#393

好的,我回去整理一下,不过感觉没有什么新工作,就是把大家的想法整合了一下


#394

嗯嗯,感谢大佬提醒,这个想法我也想过,不过最近有点小忙,还没来的及尝试,回头有空尝试一下,希望能有机会突破0.97的大关:grinning:
感觉还是大佬更专业