簡體   English   中英

通過張量B的每一行減去張量A的每一行

[英]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.

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