我正在嘗試使以下代碼行工作:low_encoder_out = TimeDistributed( AutoregressiveDecoder(...) )([X_tf, embeddings])AutoregressiveDecoder需要兩個(gè)輸入的自定義層在哪里。經(jīng)過一番谷歌搜索,問題似乎是TimeDistributed包裝器不接受多個(gè)輸入。有一些解決方案建議在將兩個(gè)輸入饋送到圖層之前合并兩個(gè)輸入,但由于它們的形狀是X_tf.shape: (?, 16, 16, 128, 5)embeddings.shape: (?, 16, 1024)我真的不知道如何合并它們。有沒有辦法讓TimeDistributed圖層處理多個(gè)輸入?或者,有沒有辦法以一種很好的方式合并兩個(gè)輸入?
1 回答

飲歌長(zhǎng)嘯
TA貢獻(xiàn)1951條經(jīng)驗(yàn) 獲得超3個(gè)贊
正如你提到的TimeDistributed層不支持多個(gè)輸入??紤]到所有輸入的時(shí)間步長(zhǎng)(即第二軸)的數(shù)量必須相同這一事實(shí),一種(不太好的)解決方法是將所有輸入重塑為(None, n_timsteps, n_featsN),將它們連接起來(lái),然后將它們作為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)
當(dāng)然,您可能需要修改自定義圖層的定義,并在必要時(shí)將輸入分開。
添加回答
舉報(bào)
0/150
提交
取消