【发布时间】:2021-09-24 14:08:45
【问题描述】:
这是我的测试生成器代码:
test_generator=test_datagen.flow_from_dataframe(
dataframe=df_test,
directory=img_dir,
x_col="filename",
y_col="label",
batch_size=32,
seed=42,
shuffle=False,
class_mode="categorical",
target_size=(img_size,img_size))
为什么batch_size 参数在创建生成器后仍然很重要:
Found 229 validated image filenames belonging to 2 classes.
例如,生成器创建后数组的形状被限制为 32 - 批量大小:
x_test, y_test = test_generator.next()
这是x_test的形状,我假设这是包含实际图像数据的数组:
>>> print(x_test.shape)
(32, 224, 224, 3)
这是我将其与预测长度进行比较时的结果:
print(len(x_test)) #32
print(len(y_test)) #32
print(len(pred)) #229
由于y_test 的大小与预测大不相同,我很难进行任何类型的比较。 y_test 与批量大小设置为 32 的 test_generator 直接相关。
测试生成器标签似乎有正确数量的元素:
test_generator.labels
[0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0........
那么为什么x_test的形状只有32呢?我显然错误地认为应该是229,因为有229个样本,229个标签?
非常感谢您的建议!
【问题讨论】:
标签: image-processing keras generator