我面临着用很少的图像创建数据集的问题。
输入(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_train
和y_train
并将它们保存在数据集数组中。不想将其传递给培训。
感谢您的帮助
答案 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上的示例。