首先注明:
这里numpy的用法和pytorch的tensor用法是一样的,所以只以numpy进行举例。
在正常的python编程里面@是作为修饰符使用的,但是在numpy的矩阵乘法中可以使用@来替代matmul
matmul
‘@’ operator as method with out parameter.
numpy的文档
正确使用测试代码
import numpy as np
#numpy里面的用法
a = np.array([[1, 0], [0, 1]])
b = np.array([[4, 1], [2, 2]])
np.matmul(a, b)
a @ b
运行结果如下
array([[4, 1],
[2, 2]])
array([[4, 1],
[2, 2]])
错误使用测试代码
#常规python编程的用法
a = [[1, 0], [0, 1]]
b = [[4, 1], [2, 2]]
np.matmul(a, b)
#会报错
a @ b
运行结果如下
array([[4, 1],
[2, 2]])
TypeError: unsupported operand type(s) for @: 'list' and 'list'
到目前为止,在numpy的矩阵相乘中看到@的矩阵乘法的用法。
特别注意pytorch的tensor也是可以使用@操作符。