[英]How do I subtract the max element of each row of a 2D tensor from all elements of that row
[英]Subtract each row of a tensor A by each row of a Tensor B
我想從Tensor B中的每一行中減去Tensor A的每一行。這就是我想要的(這不會產生結果):
A = tf.constant([[1,2],[2,4]])
B = tf.constant([[1,2],[3,4]])
C = tf.math.subtract(A,B)
tf.Session().run(C)
print(C)
[[0 0]
[-1 0]]
I want:
>>> C = [[[0,0],[-2,-2]],[[1,2],[-1,0]]]
我知道我可以使兩個數組都很大(低音重復條目,使它們具有相同的尺寸),這樣我就可以簡單地使用tf.math.subtract。 然而,這不是一個選項,因為我必須非常減少我的批量大小,並且無法正確訓練我的模型
我現在想通了。 如果任何其他人偶然發現同樣的問題。 這是我找到的解決方案:
A = tf.constant([[1,2],[2,4]])
B = tf.constant([[1,2],[3,4]])
C = tf.math.subtract(tf.expand_dims(A,axis=2),tf.expand_dims(B,axis=0))
tf.Session().run(C)
[[[0,0],[-2,-2]],[[1,2],[-1,0]]]
它基本上利用了Tensorflow中的廣播技術,它很方便地傾向於兩個numpys廣播機制。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.