神经网络调参,提升准确率

——

如果只是调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.网络结构(层数,每层的大小,函数)

可以考虑增加层次,或者调整输出的大小来提高准确率

——

希望各位多多留言

——

    原文作者:emPoint
    原文地址: https://blog.csdn.net/sinat_36024346/article/details/80582477
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞