为了账号安全,请及时绑定邮箱和手机立即绑定

具有多个输入的 Keras TimeDistributed 层

具有多个输入的 Keras TimeDistributed 层

慕勒3428872 2021-07-21 17:09:30
我正在尝试使以下代码行工作:low_encoder_out = TimeDistributed( AutoregressiveDecoder(...) )([X_tf, embeddings])AutoregressiveDecoder需要两个输入的自定义层在哪里。经过一番谷歌搜索,问题似乎是TimeDistributed包装器不接受多个输入。有一些解决方案建议在将两个输入馈送到图层之前合并两个输入,但由于它们的形状是X_tf.shape: (?, 16, 16, 128, 5)embeddings.shape: (?, 16, 1024)我真的不知道如何合并它们。有没有办法让TimeDistributed图层处理多个输入?或者,有没有办法以一种很好的方式合并两个输入?
查看完整描述

1 回答

?
饮歌长啸

TA贡献1951条经验 获得超3个赞

正如你提到的TimeDistributed层不支持多个输入。考虑到所有输入的时间步长(即第二轴)的数量必须相同这一事实,一种(不太好的)解决方法是将所有输入重塑为(None, n_timsteps, n_featsN),将它们连接起来,然后将它们作为TimeDistributed层的输入:


X_tf_r = Reshape((n_timesteps, -1))(X_tf)

embeddings_r = Reshape((n_timesteps, -1))(embeddings)


concat = concatenate([X_tf_r, embeddings_r])

low_encoder_out = TimeDistributed(AutoregressiveDecoder(...))(concat)

当然,您可能需要修改自定义图层的定义,并在必要时将输入分开。


查看完整回答
反对 回复 2021-07-28
  • 1 回答
  • 0 关注
  • 202 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信