簡體   English   中英

如何在 PyTorch 中執行逐元素乘積?

[英]How to perform element-wise product in PyTorch?

我有兩個火炬張量 a 和 b。 張量 a 的形狀為 [batch_size, emb_size],張量 b 的形狀為 [num_of_words, emb_size]。 我想對這兩個張量進行元素乘積而不是點積。

我注意到“*”可以執行元素產品,但它不適合我的情況。

例如,batch_size = 3,emb_size = 2,num_of_words = 5。

a = torch.rand((3,2))
b = torch.rand((5,2))

我想得到類似的東西:

torch.cat([a[0]*b, a[1]*b, a[2]*b]).view(3, 5, 2)

但我想以一種高效而優雅的方式做到這一點。

您可以使用

a.unsqueeze(1) * b

PyTorch 支持廣播語義,但您需要確保單例維度位於正確的位置。

暫無
暫無

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

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