【发布时间】:2019-04-25 19:02:40
【问题描述】:
我正在尝试获取一个矩阵,其中每个元素的计算方式如下:
X = torch.ones(batch_size, dim)
X_ = torch.ones(batch_size, dim)
Y = torch.ones(batch_size, dim)
M = torch.zeros(batch_size, batch_size)
for i in range(batch_size):
for j in range(batch_size):
M[i, j] = ((X[i] - X_[i] * Y[j])**2).sum()
按元素计算M 非常慢,有没有关于如何使用矩阵乘法来替换for 循环的建议?
谢谢。
【问题讨论】:
-
很抱歉给您带来了困惑。我在这里转移代码时犯了一个错误。实际上 X 是一批向量,所以它的大小是 (batch_size, dim)。所以应用 sum() 将给出一个标量。所以我想我们需要另一个版本的矢量化?
标签: numpy matrix vectorization matrix-multiplication pytorch