2016-08-27 15 views
1

テンソル形状[a、b]のスカラーで3次元のテンソル形状[a、b、c]の要素を複数にしたい。例えば テンソルをどのように掛け算するのですか? (放送)

、私が取得するのxとyを乗算したい

x = 
|[1,2][3,4][5,6]| 
|[1,2][3,4][5,6]| 
|[1,2][3,4][5,6]| 

y = 
|0 0 1| 
|1 0 0| 
|0 1 0| 

res = 
|[0,0][0,0][5,6]| 
|[1,2][0,0][0,0]| 
|[0,0][3,4][0,0]| 

あなたは私にこれを達成するための任意の方法を教えてもらえますか?

P.S:多分私は

y' = 
|[0,0][0,0][1,1]| 
|[1,1][0,0][0,0]| 
|[0,0][1,1][0,0]| 

その後、私は結果を得るためにtf.mul()を使用することができますしているyからy'を作ることができます。しかし、私はテンソルの要素をこのように複製するものは何も見つかりません。

答えて

1

あなたは正しく、tf.mul()を使用できます。実際、TensorFlowの乗算演算ではbroadcastingが処理されるので、形状[a, b, c]の別のベクトルを作成する必要はありません。

放送が期待される次元である、あなたは第二のベクターyに三次元を追加できることを確認するには、次の

x = tf.random_normal([3, 3, 2]) 
y = tf.constant([[0., 0., 1.], [1., 0., 0.], [0., 1., 0.]]) 

y = tf.expand_dims(y, 2) # y will now have a matching shape of [3, 3, 1] 
res = tf.mul(x, y) 

sess = tf.Session() 
sess.run(res) 
関連する問題