torch里,*与dot的定义是延续numpy的定义的,和通常数学里的定义不一样。
torch里,x*y就是标量相乘,如果x和y是矩阵就是相同位置上的数相乘,如果x和y形状不一
样而且不满足broadcasting规则就会报错。
torch里,dot(x,y)是矩阵相乘,可以写为 x@y,或matmut(x,y),即将形状为a*b与b*c的两矩阵计算为a*c的矩阵,不是数学上的点乘,数学上点乘通常是指内积。
torch这样定义,是因为numpy是这样定义的,而numpy是科学计算上的事实标准。而numpy这
样定义,是因为早期程序员都是这样写的,改了的话旧程序就挂了。
这些定义与数学上区别花几分钟就能清楚了,没有人会因会这些影响程序开发,纠结这个没有太多意思。
【 在 feng321 的大作中提到: 】
: pytorch里,张量x*x,与 dot(x,x)还不一样,求梯度,也不知道怎么求的。参见我的另一个帖子
--
FROM 58.33.81.*