Keras:https://blog.keras.io/building-powerful-image-classification-models-using-very-little-data.html
Reference:https://jkjung-avt.github.io/keras-tutorial/
本文目的:用尽可能少的数据集,训练出准确度尽可能高的神经网络模型
1、如果比较少,则可以使用数据增强【类似于产生更多的数据,可以在一定程度上避免过拟合】
2、神经网络模型不是越复杂越好,而应该视数据集的量而定
3、Fine-tuning the top layers of a pre-trained network,Using the boeeleneck features of a pre-trained network,Referring to Keras‘ Applications documentation【对于使用此方法,如果pre-trained network很复杂,则可以预先将train image和valid image流经pre-trained model产生bottleneck features,并存放起来。到了训练的时候再将bottleneck features取出来,输入Fully-connected classifier进行训练------>这样训练的时候速度会很快】
这里我们只微调最后的卷积块而不是整个网络,其目的在于防止过拟合
微调应该以非常小的学习率完成,通常使用SGD优化器而不是适应性学习率优化器,例如RMSProp
Building powerful image classification models using very little data
原文:https://www.cnblogs.com/zjf1995/p/10692075.html