【发布时间】:2018-02-03 11:37:57
【问题描述】:
我有大约 25k 张图像,属于 14 个不同的类别(不同种类的颈线,例如 V 领、圆领等)。图像主要包含服装的上半部分和/或模特的脸。以下是一些示例:
为了做到这一点,我想在 VGG16 的第一个块(在 imagenet 上预训练)之后提取特征,因为早期块的特征图将捕获线条、形状等。这是model.summary() :
Layer (type) Output Shape Param #
=================================================================
block1_conv1 (Conv2D) (None, 224, 224, 64) 1792
_________________________________________________________________
block1_conv2 (Conv2D) (None, 224, 224, 64) 36928
_________________________________________________________________
block1_pool (MaxPooling2D) (None, 112, 112, 64) 0
_________________________________________________________________
flatten (Flatten) (None, 802816) 0
_________________________________________________________________
fc1 (Dense) (None, 4096) 3288338432
_________________________________________________________________
fc2 (Dense) (None, 4096) 16781312
_________________________________________________________________
predictions (Dense) (None, 16) 65552
=================================================================
Total params: 3,305,224,016
Trainable params: 3,305,224,016
Non-trainable params: 0
问题是参数的总数是巨大的。考虑到我的具体数据集,您能否建议如何减少?
【问题讨论】:
-
30 个 epoch 后的第一个 epoch 的损失是否准确?在这种情况下,在一个简单的 cnn 上进行训练可能会显示在批次等方面是否存在任何其他问题。
-
@Littleone,请看已编辑的问题
标签: computer-vision deep-learning keras