我想使用Keras的ImageDatagenerator。
我的代码:
image_datagen = image.ImageDataGenerator()
mask_datagen = image.ImageDataGenerator()
image_datagen.fit(X_train[:int(X_train.shape[0]*validation_split)],seed=42)
mask_datagen.fit(Y_train[:int(Y_train.shape[0]*validation_split)],seed=42)
x=image_datagen.flow(X_train[:int(X_train.shape[0]*validation_split)], batch_size=BATCH_SIZE,shuffle=True)
y=mask_datagen.flow(Y_train[:int(Y_train.shape[0]*validation_split)], batch_size=BATCH_SIZE,shuffle=True)
train_generator = zip(x, y)
return train_generator所以,我的图像是灰度的,我的标签是二进制图像。但是如果我绘制x和y数据,它就变成了原始图像的不同标签。存在映射错误。但是在哪里呢?如果我绘制我的X_train[0]和Y_train[0],一切都是正常的。
发布于 2019-09-13 00:40:02
您将在流函数调用中使用shuffle=True混洗数据。因为您使用的是两个独立的生成器,所以x和y将被独立地混洗。要解决这个问题,我认为您需要在.flow调用中添加seed=something。
此外,您根本不需要调用.fit,因为您没有使用任何依赖于数据的转换。
https://stackoverflow.com/questions/57910710
复制相似问题