正文
2
3
4
5
6
7
8
9
├── test [12500 images]
├── test.zip
├── test2
│ └── test -> ../test/
├── train [25000 images]
├── train.zip
└── train2
├── cat [12500 images]
└── dog [12500 images]
预处理函数
,因为 Xception 和 Inception V3 都需要将数据限定在
(-1, 1)
的范围内,然后我们利用
GlobalAveragePooling2D
将卷积层输出的每个激活图直接求平均值,不然输出的文件会非常大,且容易过拟合。然后我们定义了两个 generator,利用
model.predict_generator
函数来导出特征向量,最后我们选择了 ResNet50, Xception, Inception V3 这三个模型(如果有兴趣也可以导出 VGG 的特征向量)。每个模型导出的时间都挺长的,在 aws p2.xlarge 上大概需要用
十分钟到二十分钟
。 这三个模型都是在
ImageNet
上面预训练过的,所以每一个模型都可以说是身经百战,通过这三个老司机导出的特征向量,可以高度概括一张图片有哪些内容。
最后导出的 h5 文件包括三个 numpy 数组:
-
train (25000, 2048)
-
test (12500, 2048)
-
label (25000,)
-
如果你不想自己计算特征向量,可以直接在这里下载导出的文件
:
GitHub releases
(https://github.com/ypwhs/dogs_vs_cats/releases/tag/gap)
百度云
(https://pan.baidu.com/s/1pK7psxX#list/path=%2Fdataset%2FDogs%20vs%20Cats)
参考资料: