は、私は次の形の2つのテンソル持っている:私はしたい何Tensorflowシーケンシャル行列の乗算
tensor1 => shape(?, ?, 100) # corresponds to [batch_size, max_time, embedding_size]
tensor2 => shape(?, 100) # corresponds to [batch_size, embedding_size]
のbatch_size
数を取得するにはtensor1
で[max_time, 100] dimensional
行列を対応する行列の乗算を得るtensor2
内のすべての[100] dimensional
ベクトルのためでありますmax_time
次元ベクトル;これは[batch_size, max_time] dimensional
マトリックスと同じです。
知っている人のために:私は基本的にseq2seqモデルのエンコーダによって与えられたコード化された入力に対してコンテンツベースの注意を実装しようとしています。すべての[max_time]
次元ベクトルは、私が後でsoftmaxする注目値です。
テンソルフローはcontrib
パッケージのAttentionWrapper
とさまざまなヘルパーを提供しています。しかし、私はハイブリッドアテンションマスクを得るために注意の仕組みを実験しているので、これをやりたい。
私はtf.while_loop
を試しましたが、ループをアンロールするために?
の形になってしまいました。ベクトル化された実装は、私にとってはまっすぐ前進していないようです。助けてください。
ありがとうございます(多くの役に立っています)。私は 'tf.matmul'が' rank 2 'を持つ引数に対して異なる動作をしていることを知らなかった。 –