如何以正确的顺序标记图像以进行 keras 图像分类?

Posted

技术标签:

【中文标题】如何以正确的顺序标记图像以进行 keras 图像分类?【英文标题】:how to label images in the right order for keras image classification? 【发布时间】:2022-01-14 23:31:23 【问题描述】:

这是我的代码:-

test_batches_1 = ImageDataGenerator(preprocessing_function=tf.keras.applications.vgg16.preprocess_input) \
    .flow_from_directory(directory=test_path_1, target_size=(224,224), classes=['cat', 'dog'], batch_size=10, shuffle=False)


m_p = model.predict(x=test_batches_1, steps=len(test_batches_1), verbose=0)

其中 model 是指 vgg16 模型减去最后一层和带有 softmax 函数的自定义密集层。

model = Sequential()
for layer in vgg16_model.layers[:-1]:
    model.add(layer)
for layer in model.layers:
    layer.trainable = False    
model.add(Dense(units=2, activation='softmax'))

现在,预测应该按字母顺序排列。

我的文件夹中有以下图片

cat.14.jpg
cat.2.jpg

cat.14 的预测先于 cat.2

如何确保它不会发生并且 14 在 2 之后?

【问题讨论】:

【参考方案1】:

您需要更改文件名。设置shuffle=False时,文件按字母顺序排序,按照documentation。

shuffle 是否打乱数据(默认:True)如果设置为 False,则按字母数字顺序对数据进行排序。

按字母顺序,'cat.14.jpg''cat.2.jpg' 之前:

sorted(['cat.14.jpg', 'cat.2.jpg'])
['cat.14.jpg', 'cat.2.jpg']

【讨论】:

有什么办法可以改变吗?喜欢 cat_14 还是 cat_1_4? 你可以用任何你喜欢的方式重命名文件。 我的意思是 14 在 2 之前

以上是关于如何以正确的顺序标记图像以进行 keras 图像分类?的主要内容,如果未能解决你的问题,请参考以下文章

如何正确提取 Keras ConvNet 权重矩阵以在 Excel 中使用?

如何准备图像以使用 Python/Keras 训练 ConvNet?

上传图像以使用 keras 进行预测时出现错误消息

如何在 Keras 中重用 VGG19 进行图像分类?

沿图像传递参数以进行图像识别[关闭]

使用分类输入数据和图像输入数据进行分类