簡體   English   中英

TensorFlow中矩陣和向量的有效元素乘法

[英]Efficient element-wise multiplication of a matrix and a vector in TensorFlow

什么是倍增(逐元素)2D張量(矩陣)的最有效方法:

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

通過垂直向量:

w1
...
wN

獲得一個新的矩陣:

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

為了給出一些上下文,我們在批處理中有M數據樣本可以並行處理,並且每個N元素樣本必須乘以存儲在變量中的權重w ,以最終選擇每行i的最大Xij*wj

執行此操作的最簡單代碼依賴於tf.multiply() * 的廣播行為 ,該行為基於numpy的廣播行為

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]

*在舊版本的TensorFlow中, tf.multiply()被稱為tf.mul() 您也可以使用*運算符(即xw = x * w )執行相同的操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM