迁移学习核心思想使用小数据集来训练大型网络,里面坑太多,分享出来。我的CSDN上也有博客详细介绍https://blog.csdn.net/qq_34789262/article/details/82217683 首先明白几个概念: 1、加载模型 2、加载模型包括权重 3、加载除去头部的模型(全连接层为头部层)
目前迁移学习两种思路: 一、加载别人训练好的模型和权重,使用自己的小训练集再次训练,相当于微调整个网络权重 二、加载别人训练好的模型和权重,但是不要最后的全连接层,自己定义全连接层,因为最后的分类可能不一样,本例子中vgg16训练的IMAGE-NET1000分类的,我训练猫狗只有2分类,最后的全连接层要改。仍然使用自己小训练集训练,可以把前面的卷积层冻起来不训练,只训练全连接层,这样速度快一些(但是会对模型准确率有影响)
创建weights.h5用来保存模型 创建训练集train1 cats dogs 验证集测试集同理