pytorch设置l2正则_pytorch深度学习 笔记2

课程《动手学深度学习PyTorch版》笔记:

伯禹学习平台​www.boyuai.com

第一节 过拟合/欠拟合、梯度消失/梯度爆炸

重、难点:

  1. 优化器中一般只对权重参数设置衰减,而不对偏置参数设置衰减,因为对偏置增加正则不会明显的产生很好的效果。而且偏置并不会像权重一样对数据非常敏感,所以不用担心偏置会学习到数据中的噪声。而且大的偏置也会使得我们的网络更加灵活,所以一般不对偏置做正则化。
  2. 网络在训练时,要通过net.eval()将网络设置为改为评估模式,这时候输入X不会对神经元进行dropout,训练时用net.train()改为原本模式
  3. 标签偏移可以简单理解为测试时出现了训练时没有的标签

第二节 卷积神经网络

重、难点:

  1. 输出特征图大小的计算:

v2-4d688af26e2ef6a6c84a740f32e41c78_b.jpg

2. 1×1 卷积层的作用与全连接层等价,可以用来调节特征图的通道数

3. 两个连续的3×3卷积层的感受野与一个5×5卷积层的感受野相同

4. LeNet的绝大多数参数集都集中在卷积层块部分

5. 下列两行代码是卷积网络进行梯度下降的代码

# 梯度下降

可修改为:

with torch.no_grad():

    conv2d.weight -= lr * conv2d.weight.grad

    conv2d.bias -= lr * conv2d.bias.grad

这里可以通过pytorch的autograd包中关于梯度的反向传播机制来理解:

①对于修改tensor的数值,但是又不希望被autograd记录(即不会影响反向传播),那么我么可以对tensor.data进行操作。

②对于被torch.no_grad():包裹的tensor,在反向传播的过程中,其梯度是不会回传的

第三节 语言模型及循环神经网络(RNN)

重、难点:

  1. 随机采样中前后批量中的数据是不连续的;
  2. 随机采样与相邻采样解释(小罗同学图):

v2-4db292a7c06c3d876d3a32d40e2a7b3f_b.jpg

3. 梯度裁剪后的梯度L2范数小于阈值θ

4. 随机采样中每个样本只包含局部的时间序列信息,因为样本不完整所以每个批量需要重新初始化隐藏状态

5. 当我们再训练网络的时候可能希望保持一部分的网络参数不变,只对其中一部分的参数进行调整;或者值训练部分分支网络,并不让其梯度对主网络的梯度造成影响,这时候我们就需要使用detach()函数来切断一些分支的反向传播;而detach_()将一个Variable从创建它的图中分离,并把它设置成叶子variable,其实就相当于变量之间的关系本来是x -> m -> y,这里的叶子variable是x,但是这个时候对m进行了.detach_()操作

6. 双向循环神经网络前向和后向RNN连结的方式是前向的hiddenstate和后向的hidden_state进行concat

7. 对数据进行padding操作。因为机器翻译模型本质上是一个固定输入长度的Seq2Sqe模型,所以我们需要设置最大的数据长度,如果超出了设定的长度直接把后面的截断,少了的,根据需要进行不同的padding

8. 对于加入了attention的seq2seq模型,decoder仍由encoder的最后一个时间步的hidden state进行初始化

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值