我想用3CNN
with 3GRU
层。这是架构:
layer_a = Input(shape=(120,), dtype='float32',name='main')
layer_b = Input(shape=(9,), dtype='float32', name='site')
layer_c = Input(shape=(4,), dtype='float32', name='access')
model = Model(inputs=[layer_a, layer_b,layer_c], outputs=[layer_f])
model.compile(optimizer='adam',loss=smape_error)
但是当我尝试适应我的数据时,它会产生错误:
输入 0 与层 gru_14 不兼容:预期 ndim=3,发现 ndim=2。
不确定出了什么问题?
GRU 层需要以下维度(batch_size、seq_len、dim_per_seq)
它还返回 (batch_siz, number_of_neurons),因此为了将 2 个 GRU 依次放置,第一个 GRU 层需要设置参数 return_sequences=True。
另外,在构建 keras 模型时,使用 model.summary()(仅在错误出现之前构建部分模型)进行调试始终是一个好主意。问题常常出在意想不到的形状上。
您的架构根本不适合使用 GRU 层。首先,你不能展平张量,因为这会破坏你的序列结构。这将使连接层变得不可能。您可以将树层layer_t、layer_tt 和layer_ttt 转换并池化到相同的第二个维度(应大于1)。通过这种方式,您可以连接最后一个维度并获得具有类似形状的序列的张量,并将其放入 gru 层中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)