——
如果只是调cnn网络的参数,可以看这篇文章
http://cs231n.github.io/neural-networks-2/#init
——
当初步搭建好网络,模型能出初步结果后,若想优化,可以考虑调整:
1.数据集扩增
可以考虑增加数据集容量,有时候简单的增加容量,准确率提升明显
2.增大数据集差异性,随机性
在制作数据集时可以考虑增加数据的差异性
3.tensor transform
pytorch 中使用transform模块对数据进行处理
4.batch_size大小
调整batch_size大小,可以16,32,64….这样依次往上调,寻找最适合的,当然不必要是2的倍数
5.shuffle=True
随机读取数据,一般在训练网络时使用,对于小数据集来说效果惊人
6.learning rate
可以使用动态学习率
也可以先是大的学习率 ,然后慢慢减小,如开始是0.1,然后是0.05,每一次都对半分,寻找最合适的学习率
7.weight_decay
权重衰减 也称L2正则化,具体可以自行百度,哈哈哈哈
8.n_epochs
当准确率不再上升,可以增加学习次数,让网络充分学习,当然要防止过拟合,
9.dropout()参数及位置
dropout() 的参数可以从0.1开始调,以0.05为间隔,各个网络有不同的参数
所放的位置也有很大的影响,不一定要在全连接层后
10.参数初始化
pytorch中会有默认的参数初始化
如果没有,可以考虑自行初始化,有助于提高准确率
11.网络结构(层数,每层的大小,函数)
可以考虑增加层次,或者调整输出的大小来提高准确率
——
希望各位多多留言
——