PyTorch:addmm 函数的目的

p13*_*r0m 4 pytorch

以下 PyTorch 函数 ( doc )的目的是什么:

torch.addmm(beta=1, mat, alpha=1, mat1, mat2, out=None)
Run Code Online (Sandbox Code Playgroud)

更具体地说,是否有任何理由更喜欢这个功能而不是仅仅使用

beta * mat + alpha * (mat1 @ mat2)
Run Code Online (Sandbox Code Playgroud)

lay*_*yog 6

addmm函数是方程的优化版本beta*mat + alpha*(mat1 @ mat2)。我运行了一些测试并为它们的执行计时。

  • 如果beta=1, alpha=1,则无论矩阵大小如何,语句(addmm和手动)的执行都大致相同(addmm只是快了一点)。

  • 如果betaalpha不为 1,则addmm比手动执行较小的矩阵(总元素数为 10 5)快两倍。但是,如果矩阵很大(按 10 6 的顺序),则加速似乎可以忽略不计(39msv/s 41ms