gpt4 book ai didi

python - keras 的形状问题 `fit_generator()`

转载 作者:太空宇宙 更新时间:2023-11-03 15:07:07 26 4
gpt4 key购买 nike

我在 keras 的 fit_generator 函数中使用的自定义生成器函数返回的 numpy 数组的形状方面遇到了一个看似简单的问题。

生成器函数与此类似:

def data_generator(full_data, encoder):
for s in full_data:
in1_X = encoder.encode(s[:,0])
in2_X = encoder.encode(s[:,1])
out1_y = encoder.encode(s[:,2])
out2_y = encoder.encode(s[:,3])
X = [in1_X, in2_X]
y = [out1_y, out2_y]
yield (X,y)

我可以通过使用 for 循环并打印形状来获取从 in1_X 返回的形状,它只返回 (60,)

但是,当使用 fit_generator() 函数调用此函数时,它会失败:

train_data_gen = data_generator(full_data, encoder)


main_in = Input(shape=(seq_len,), name='main_input')

# ...
# define model
# ...

joint_model.fit_generator(train_data_gen, steps_per_epoch=2000, epochs=2)

输出是这样的:

Error when checking input: 
expected main_input to have shape (None, 60) but got array with shape (60, 1)

如何才能不将 numpy 数组从形状 (60,) 更改为形状 (60, 1)?还有其他人遇到过这个问题吗?

最佳答案

我们找到了对此问题的答复。请查看以下PR中的解释和评论:https://github.com/fchollet/keras/issues/4641提供二维数组为我们解决了这个问题。

关于python - keras 的形状问题 `fit_generator()`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44556463/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com