通过上篇文章马桶识别之数据清洗,通过Resnet50清洗脏数据,得到了干净的马桶图片。但是由于评论区图片有限,每一类的图片只有300张左右。如果从头开始训练,数据量有点小。这时可以通过迁移学习,利用从ImageNet数据集中学习到的模型来进行迁移学习。
具体的做法是冻结网络(比如ResNet,GoogleNet,Vgg16等)前几层的权重和偏置,只留下最后一层的参数进行训练。其实,也是把前面几层网络当成特征提取器进行特征提取,然后再利用最后一层进行线性分类。
在Tensorflow的官方教程中,有一篇是关于迁移学习的教程,有兴趣的可以看一下:How to Retrain Inception's Final Layer for New Categories。本文正是基于该教程进行迁移学习。
1. 数据准备
数据组织结构如下图所示,创建一个总文件夹,下面放“种类”子文件夹,子文件夹下放图片