如何以正确的顺序标记图像以进行 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 中使用?