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

我有一个张x和x.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(),反向传播的速度非常慢。为什么它很慢,有什么方法可以有效地实现它?


慕婉清6462132
浏览 190回答 2
2回答

慕勒3428872

当您使用两个循环来计算乘积时,复杂度为 n^2。想象一下,在反向传播过程中多次这样做,你的代码会变得很慢。向量运算加速了这些计算,因为它们可以并行化。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python