猫狗二分类模型

猫狗二分类模型点击这里。
记录几点:
(1)这是一个在小型数据集上训练模型的案例(训练集2000张图片,验证集1000张,测试集1000张)。图片资源点击这里。
(2)图像输入之前需要预处理,将其转换为浮点数张量,使用了keras.preprocessing.image中的ImageDataGenerator类,它可以实现图像的缩放,旋转,平移,错切等操作。
展示几张变换的图片:
猫狗二分类模型
猫狗二分类模型
猫狗二分类模型
猫狗二分类模型
猫狗二分类模型
猫狗二分类模型
猫狗二分类模型
(3)使用数据增强降低过拟合,在小型数据集上过拟合时最大的问题。
(4)使用预训练的卷积神经网络(VGG16架构,虽然它性能比不了最先进的模型,但是它的架构简单)。
(5)首先使用没用使用数据增强的特征提取,得到的验证精度为0.9,后面使用了数据增强后验证精度为0.97。
(6)微调模型时微调最后三层,一开始微调没有效果,后来解决了。首先把网络训练好,然后解冻最后三层,再次训练才可以,最后的测试精度为0.95。
猫狗二分类模型
猫狗二分类模型

参考文献《Deep Learning With Python》作者肖莱。
代码不贴了,大部分都是书上的,除了稍微修改和测试之外没有多大的改变,有什么遗忘之处想起来再补充。