python - 如何有效地计算 Pytorch 中的张量?

标签 python machine-learning deep-learning pytorch

我有一个张量 xx.shape=(batch_size,10),现在我想取

 x[i][0] = x[i][0]*x[i][1]*...*x[i][9] for i in range(batch_size)

这是我的代码:

for i in range(batch_size):
    for k in range(1, 10):
        x[i][0] = x[i][0] * x[i][k]

但是当我在forward()中实现并调用loss.backward()时,反向传播的速度很慢。为什么会慢,有什么方法可以高效实现吗?

最佳答案

它很慢,因为你使用了两个 for 循环。

您可以使用 .prod 请参阅:https://pytorch.org/docs/stable/torch.html#torch.prod

在你的情况下,

x = torch.prod(x, dim=1)x = x.prod(dim=1)

应该可以

关于python - 如何有效地计算 Pytorch 中的张量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53699675/

相关文章:

python - 如何使用tesseract从图像的特定坐标提取文本?

python - Python 中的“反向”比较运算符

machine-learning - 拼写检查器使用语言模型

tensorflow - Tensorflow 或 Keras 中的离散权重和激活

python - 在 Keras 相关模型中更改输入层大小

python - 如何在 google app engine/w python 中管理跨处理程序类的身份验证

python - urllib2.urlopen 引发 urllib2.URLError

machine-learning - DBSCAN 的距离函数

machine-learning - 如何解释稀疏的输出?

machine-learning - 如何解决Keras LSTM网络中的loss = Nan问题?