如何同时将增强应用于X_train和y_train

时间:2020-01-19 15:24:38

标签: python tensorflow image-processing keras deep-learning

我面临着用很少的图像创建数据集的问题。

输入(X_train)和输出(y_train)都包含(28x28)尺寸的图像,例如MNIST。例如在我的代码中:

(X_train, y_train), (X_test, y_test) = mnist.load_data()
X_train = X_train.reshape((X_train.shape[0], 28, 28, 1))
X_train = X_train.astype('float32')
y_train=X_train

datagen = ImageDataGenerator(zca_whitening=True)

如何将此datagen同时适合X_trainy_train并将它们保存在数据集数组中。不想将其传递给培训。

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

请注意,增强本身并不应用于目标变量y_train,而仅应用于输入变量X_train。生成器将只为新生成的y再现相同的地面真相标签X

因此仅使用X_train来拟合生成器:

datagen.fit(X_train)

如果您不想将增强数据传递给训练,可以在拟合后遍历生成器以获取生成的样本:

for X_batch, y_batch in datagen.flow(X_train, y_train, batch_size=32):
# Do whatever you want with the generated X_batch and y_batch.

我知道这是您愿意做的。 请参阅keras doc上的示例。