Pytorch_DeepLearning_Notebook_1
程序员文章站
2022-07-11 17:41:06
...
线性回归
线性回归理论知识blabla就不记录了,新手本人的python,pytorch陌生的东西的记录。
广播语义
-
一般语义 Genaral Semantics 和In-place Semantics不一样
x与y满足可广播的四个条件:(遍历张量维度大小时,从末尾随开始遍历)
1- both have size 1
2- trailing dimension: y has size 1
3- trailing dimension: x size == y size
4- trailing dimension: y dimension doesn’t exist``` >>> x=torch.empty(5,2,4,1) >>> y=torch.empty( 3,1,1) // 为了观看方便,对齐 >>> (x+y).size() //不能广播因为x的2和y的3不满足上面4个条件之一 ```
-
In-place语义
In-place语义不允许in-place张量像广播那样改变形状
官方例子:
>>> x=torch.empty(5,3,4,1) >>> y=torch.empty(3,1,1) >>> (x.add_(y)).size() torch.Size([5, 3, 4, 1]) //OK 因为x的shape不变 # but: >>> x=torch.empty(1,3,1) >>> y=torch.empty(3,1,7) >>> (x.add_(y)).size() // 不OK,因为in-place操作不允许x的shape改变,而这里如果广播了,x会变 RuntimeError: The expanded size of the tensor (1) must match the existing size (7) at non-singleton dimension 2.
所以也可以说
如果你使用了in-place operation而没有报错的话,那么你可以确定你的梯度计算是正确的。
课后习题记录:
Softmax
课后习题: