【发布时间】:2021-09-06 16:04:51
【问题描述】:
我想对大约 2000 个类别的图像进行分类。所以我使用了 ImageDataGenerator,flow_from_directory。
每个子目录有20张图片
(总共大约 40k 张图片)
我通过这个脚本检查了生成器。
from tensorflow.keras.preprocessing.image import ImageDataGenerator
trainDataGen = ImageDataGenerator(rescale=1./255)
trainGenSet = trainDataGen.flow_from_directory(
'./test1',
batch_size=8,
target_size=(64,64),
class_mode='categorical',
color_mode='grayscale'
)
import numpy as np
import matplotlib.pyplot as plt
a = trainGenSet.next()
plt.imshow(a[0][0])
print(np.argmax(a[1][0]))
plt.show()
然后我看到那张图片与标签不匹配
ex) a[0][0] 有第 300 张图像,但 a[1][0] 有 1948 年!!
但是生成器在不到 10 个类时运行良好。
我测试了 10 个类(数字 0 ~ 9 的图像)
然后生成器工作正常!
为什么生成器可以为少于 10 个类生成正确的对,而不能为超过 10 个类生成正确的对??
【问题讨论】:
标签: python tensorflow tf.keras data-preprocessing