【发布时间】:2018-06-29 10:51:38
【问题描述】:
我无法找到将多个输入传递给模型的正确方法。该模型有 2 个输入
- 形状的噪点图像
(256, 256, 3) - 形状
(256, 256, 3)的输入图像
和 1 个输出
- 输出图形
(256, 256, 3)
我正在通过ImageDataGenerator制作图像:
x_data_gen = ImageDataGenerator(
horizontal_flip=True,
validation_split=0.2)
我正在通过 python 生成器生成示例:
def image_sampler(datagen, batch_size, subset="training"):
for imgs in datagen.flow_from_directory('data/r_cropped', batch_size=batch_size, class_mode=None, seed=1, subset=subset):
g_y = []
noises = []
bw_images = []
for i in imgs:
# append to expected output the original image
g_y.append(i/255.0)
noises.append(generate_noise(1, 256, 3)[0])
bw_images.append(iu_rgb2gray(i))
yield(np.array([noises, bw_images]), np.array(g_y))
当尝试使用以下方法训练模型时:
generator.fit_generator(
image_sampler(x_data_gen, 32),
validation_data=image_sampler(x_data_gen,32,"validation"),
epochs=EPOCHS,
steps_per_epoch= 540,
validation_steps=160 )
我收到一条错误消息:
检查模型输入时出错:您传递给模型的 Numpy 数组列表不是模型预期的大小。预计会看到 2 个数组,但得到了以下 1 个数组的列表
虽然消息很清楚,但我不明白如何修复生成过程来解决它。
我试过了:
yield([noises, bw_images], np.array(g_y))
但这不起作用,因为它会遇到不同的错误:
AttributeError: 'list' 对象没有属性 'shape'
我错过了什么?
【问题讨论】:
标签: python tensorflow machine-learning neural-network keras