我正在尝试建立一个分类模型来识别室内设计中图片的观点。目前,我只考虑两个类:sofa_left 和 sofa_right,具体取决于沙发的方向(参见示例)。
我使用与本教程相同的代码进行迁移学习(基于具有 imagenet 权重的 MobileNetV2)。
代码没有问题:我可以使用提供的猫狗数据集重现预期结果。
如果有帮助,这里是模型摘要。
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
input_31 (InputLayer) [(None, 160, 160, 3)] 0
_________________________________________________________________
tf_op_layer_strided_slice (T [(None, 160, 160, 3)] 0
_________________________________________________________________
tf_op_layer_BiasAdd (TensorF [(None, 160, 160, 3)] 0
_________________________________________________________________
resnet50 (Functional) (None, 5, 5, 2048) 23587712
_________________________________________________________________
global_average_pooling2d_15 (None, 2048) 0
_________________________________________________________________
dropout_15 (Dropout) (None, 2048) 0
_________________________________________________________________
dense_15 (Dense) (None, 1) 2049
=================================================================
Total params: 23,589,761
Trainable params: 2,049
Non-trainable params: 23,587,712
_________________________________________________________________
然而,我自己的图像的结果真的很差(50% 的准确度......),我不知道为什么。模型中有 dropouts,我尝试了很多设置(学习率、验证拆分、批量大小)和很多预训练模型。
每个班级我有大约 150 张照片。我知道这不是一个很大的数据集,但我不需要过多概括,我需要测试的所有图片都是同一类型的。是不是太短了?
我kmeans clustering
对数据集上的 MobileNetV2 进行的预测运行了一个算法,tada...图片在 sofa_left 和 sofa_right 之间完美排序。它让我直觉这个分类问题应该可以通过学习来解决。我对吗?我错过了什么吗?
谢谢您的帮助。