次の形状の 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] dimensional
tensor1
batch_size
max_time
[batch_size, max_time] dimensional
知っている人のために:私は基本的に、seq2seqモデルのエンコーダーによって与えられたエンコードされた入力に対してコンテンツベースの注意を実装しようとしています。すべての[max_time]
次元ベクトルは、後でソフトマックスした注意値です。
tensorflowがパッケージAttentionWrapper
内のさまざまなヘルパーと同様に提供していることを認識しています。contrib
ただし、ハイブリッド注意マスクを取得するために注意メカニズムを実験しているため、これを実行したいと考えています。
やってみましたtf.while_loop
が、?
ループを広げる形に引っ掛かりました。ベクトル化された実装も、私にはあまり単純ではないように思えます。助けてください。