1

次の形状の 2 つのテンソルがあります。

tensor1 => shape(?, ?, 100) # corresponds to [batch_size, max_time, embedding_size]
tensor2 => shape(?, 100) # corresponds to [batch_size, embedding_size]

私がやりたいことは、すべての[100] dimensionalベクトルに対して、対応する行列tensor2との行列乗算を取得して、次元ベクトルの数を取得することです。これは行列と同じです。[max_time, 100] dimensionaltensor1batch_sizemax_time[batch_size, max_time] dimensional

知っている人のために:私は基本的に、seq2seqモデルのエンコーダーによって与えられたエンコードされた入力に対してコンテンツベースの注意を実装しようとしています。すべての[max_time]次元ベクトルは、後でソフトマックスした注意値です。

tensorflowがパッケージAttentionWrapper内のさまざまなヘルパーと同様に提供していることを認識しています。contribただし、ハイブリッド注意マスクを取得するために注意メカニズムを実験しているため、これを実行したいと考えています。

やってみましたtf.while_loopが、?ループを広げる形に引っ掛かりました。ベクトル化された実装も、私にはあまり単純ではないように思えます。助けてください。

4

1 に答える 1