2015-12-10 5 views
25

でベクター:垂直ベクトルによって効率的要素毎行列の乗算と(要素毎の)2次元テンソル(マトリックス)乗算するための最も効率的な方法であるものTensorFlow

x11 x12 .. x1N 
... 
xM1 xM2 .. xMN 

を:

w1 
... 
wN 

新しい行列取得する:いくつかのコンテキストを与えるために

x11*w1 x12*w2 ... x1N*wN 
... 
xM1*w1 xM2*w2 ... xMN*wN 

を、我々はM DATを持っています並行して処理することができるバッチ内のサンプル、および各N要素サンプルは、最終的に各行iの最大Xij*wjを選択する変数に格納された重み値wで乗算する必要があります。これを行うには

答えて

30

最も簡単なコードがnumpy's broadcasting behaviorに基づいていますtf.multiply()*の放送行動に依存しています:TensorFlowの古いバージョンでは

x = tf.constant(5.0, shape=[5, 6]) 
w = tf.constant([0.0, 1.0, 2.0, 3.0, 4.0, 5.0]) 
xw = tf.multiply(x, w) 
max_in_rows = tf.reduce_max(xw, 1) 

sess = tf.Session() 
print sess.run(xw) 
# ==> [[0.0, 5.0, 10.0, 15.0, 20.0, 25.0], 
#  [0.0, 5.0, 10.0, 15.0, 20.0, 25.0], 
#  [0.0, 5.0, 10.0, 15.0, 20.0, 25.0], 
#  [0.0, 5.0, 10.0, 15.0, 20.0, 25.0], 
#  [0.0, 5.0, 10.0, 15.0, 20.0, 25.0]] 

print sess.run(max_in_rows) 
# ==> [25.0, 25.0, 25.0, 25.0, 25.0] 

*は、tf.multiply()tf.mul()と呼ばれていました。また、*演算子(xw = x * w)を使用して同じ操作を実行することもできます。

+5

ドキュメントのリンクが無効です。これは実際のものです:[tf.multiply](https://www.tensorflow.org/api_docs/python/tf/multiply) – Pantoofle

+0

ありがとうございました...リンクは今すぐ修正する必要があります! – mrry

関連する問題