pytorch学习笔记

PyTorch梯度传递

在PyTorch中,传入网络计算的数据类型必须是Variable类型, Variable包装了一个Tensor,并且保存着梯度和创建这个Variablefunction的引用,换句话说,就是记录网络每层的梯度和网络图,可以实现梯度的反向传递

则根据最后得到的loss可以逐步递归的求其每层的梯度,并实现权重更新。

在实现梯度反向传递时主要需要三步:

  • 初始化梯度值:net.zero_grad()
  • 反向求解梯度:loss.backward()
  • 更新参数:optimizer.step()

classtorch.nn.ReplicationPad2d(padding)

2d填充函数

如果里面是个数字n,则在周围填充n行,

0  1  2
  3  4  5
  6  7  8
>>> m = nn.ReplicationPad2d(2)
>>> input = torch.arange(9).reshape(1, 1, 3, 3)
>>> m(input)
  0   0   0   1   2   2   2
   0   0   0   1   2   2   2
   0   0   0   1   2   2   2
   3   3   3   4   5   5   5
   6   6   6   7   8   8   8
   6   6   6   7   8   8   8
   6   6   6   7   8   8   8
>>> m = nn.ReplicationPad2d((1, 1, 2, 0))
>>> m(input)

(0 ,0 ,.,.) =
  0  0  1  2  2
  0  0  1  2  2
  0  0  1  2  2
  3  3  4  5  5
  6  6  7  8  8


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值