训练神经网络的一些经验分享
在这里给大家分享一下我在训练神经网络时候遇到的困难,以及走的一些弯路之后自己总结得经验。
1.学会正确地debug,神经网络最困难的我觉得不是建立模型,而是数据转换,所以需要你对numpy包非常熟悉。
2.将训练量调小一些,刚开始不知道性能,不知道程序是不是往正确的方向发展,那么我们可以将迭代次数取小一点,将数据量调小一点。
3.分批次运行代码,节约运行时间,如果数据量很大,那么训练完一段代码之后,将它注释掉,继续跑下面的代码。
4.错误提示是很好的指示,根据错误提示进行定位,并尝试看源代码。
5.用gpu进行训练会大大加快你的训练速度,性能的提升往往是几十倍的。网上有各种框架进行加速的代码,需要注意的是,需要卸载tensorflow包,安装tensorflow-gpu包,否则还是会用cpu进行训练的。
6.如果数据类型出现问题,先把数据的类型打印出来。再reshape成指定的类型,如果数据类型的错误始终解决不了,那就要考虑深层次的也就是输入数据的问题。
7.数据量不够时,一般采用数据增强的方法对其进行补充,或者采用滑动平均的方法对数值进行补充。
8.数据预判断;有数据需要处理的时候,用excel来拟合特征和输出之间的关系,确保输入和输出之间是有关系的,也就是要确保你选取的特征是对输出有影响的。
9.如果你需要对神经网络进行改进,或者在论文中对深度学习模型进行深入描述,那么你需要将模型的原理,结构都得弄懂。