我在使用Keras的ImageDataGenerator
进行图像增强时遇到了麻烦。现在,我正在尝试垂直翻转训练数据集中的图像。 X_batch
是我的翻转图像数据集,而X_train
是我的原始训练数据集。
有人可以解释为什么X_batch
中的图像与X_train
中的图像顺序不同吗? X_batch[0]
应该是X_train[0]
的翻转版本,而X_batch[0]
是我的数据集中另一个图像的翻转版本。
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
datagen = ImageDataGenerator(vertical_flip=True)
datagen.fit(X_train)
for X_batch, y_batch in datagen.flow(X_train, y_train):
X_batch = X_batch.astype('uint8')
plt.subplot(2, 1, 1)
plt.imshow(X_batch[0]) // flipped image
plt.subplot(2, 1, 2)
plt.imshow(X_train[0]) // original image
plt.show()
break
答案 0 :(得分:1)
根据Keras documentation,flow
方法使用一个名为shuffle
的参数,如果将其设置为True
(默认情况下),则会对数据进行混洗,然后应用图像转换。如果您不喜欢这种行为,可以将其设置为False
:
for X_batch, y_batch in datagen.flow(X_train, y_train, shuffle=False):
...