文章目录
#目的#
只用几百张或几千张图片去训练你想识别的模型。
#方法#
如何做:
-
从头开始训练一个小型网络
-
使用一个预训练的模型
-
微调预先训练好的模型顶层
-
这需要以下几个Keras功能:
-
fit_generator用于使用Python数据生成器来训练Keras模型
-
ImageDataGenerator 用于实施数据增强
-
模型微调和层冻结
-
…更多
你需要Keras2.0或更高
#2000张训练图(1000每类)#
类别只有猫狗
- Keras环境
- 类似于这样的目录结构
data/
train/
dogs/
dog001.jpg
dog002.jpg
...
cats/
cat001.jpg
cat002.jpg
...
validation/
dogs/
dog001.jpg
dog002.jpg
...
cats/
cat001.jpg
cat002.jpg
...
图片下载链接
国内无法访问
我们使用这里的数据集:
Kaggle图片集
需要1000只猫1000只狗,而数据集里有12500只猫12500只狗,只要选出1000就好。还需要400个额外的验证数据集,去评估我们的模型。
这其实是很少的数据对一个分类问题。
##关于深度学习对于小数据问题的相关性##
我们常常听到的一个信息是“深度学习只有当你拥有大量的数据时才有意义”。虽然这是有道理的,但也不完全对。特别对于图片这种高维度来说,深度学习要识别他们的特征需要大量的数据。然而,卷积神经网络-深度学习的算法支柱-被设计为一个“感知”问题(例如图像分类)的最佳模型之一。
##数据预处理和数据增强##
为了充分利用我们为数不多的训练实例,我们将通过一些