欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Pytorch_DeepLearning_Notebook_1

程序员文章站 2022-07-11 17:41:06
...

线性回归

线性回归理论知识blabla就不记录了,新手本人的python,pytorch陌生的东西的记录。

广播语义

  1. 一般语义 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个条件之一
     ```
    
  2. 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而没有报错的话,那么你可以确定你的梯度计算是正确的。

课后习题记录:
Pytorch_DeepLearning_Notebook_1

Softmax

课后习题:
Pytorch_DeepLearning_Notebook_1