gpt4 book ai didi

python - 具有多个输入的 Keras TimeDistributed 层

转载 作者:行者123 更新时间:2023-11-30 09:05:26 29 4
gpt4 key购买 nike

我正在尝试使以下代码行正常工作:

low_encoder_out = TimeDistributed( AutoregressiveDecoder(...) )([X_tf, embeddings])

其中AutoregressiveDecoder是一个接受两个输入的自定义层。经过一番谷歌搜索后,问题似乎是 TimeDistributed 包装器不接受多个输入。有一些解决方案建议在将两个输入馈送到层之前将其合并,但由于它们的形状是

X_tf.shape: (?, 16, 16, 128, 5)
embeddings.shape: (?, 16, 1024)

我真的不知道如何合并它们。有没有一种方法可以让 TimeDistributed 层处理多个输入?或者,有没有什么方法可以很好地合并两个输入?

最佳答案

正如您提到的,TimeDistributed 层不支持多个输入。考虑到所有输入的时间步数(即第二轴)必须相同,一种(不是很好)的解决方法是将它们全部 reshape 为 (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)

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

关于python - 具有多个输入的 Keras TimeDistributed 层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52966175/

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