PyTorch学习(10):训练技巧

2023-05-16

PyTorch学习(10):训练技巧

  • Pytorch官方文档: https://pytorch-cn.readthedocs.io/zh/latest/
  • 参考:
      https://efficientdl.com/faster-deep-learning-in-pytorch-a-guide/
      https://www.reddit.com/r/MachineLearning/comments/n9fti7/d_a_few_helpful_pytorch_tips  _examples_included/
      https://mp.weixin.qq.com/s/IFAYiGUMUU7oYW-vWs_u1Q
      https://mp.weixin.qq.com/s/93f5w0X3ZoAuE5tosYPqIg

文章目录

  • PyTorch学习(10):训练技巧
    • 1.在DataLoader中使用多个worker和页锁定内存
      • 2.考虑使用另一种优化器
      • 3.使用. as_tensor() 而不是. tensor()
      • 4.在 BatchNorm 之前关闭 bias
      • 5. 在验证期间关闭梯度计算
      • 6.删除模型时,使用torch.cuda.empty_cache()清除GPU缓存
      • 7.预测之前一定记得调用model.eval()
  • 总结


1.在DataLoader中使用多个worker和页锁定内存

  当使用 torch.utils.data.DataLoader 时,设置 num_workers > 0,而不是默认值 0,同时设置 pin_memory=True,而不是默认值 False。


2.考虑使用另一种优化器

  AdamW 是由 fast.ai 推广的一种具有权重衰减(而不是 L2 正则化)的 Adam,在 PyTorch 中以 torch.optim.AdamW 实现。AdamW 似乎在误差和训练时间上都一直优于 Adam。


3.使用. as_tensor() 而不是. tensor()

  torch.tensor() 总是会复制数据。如果你要转换一个 numpy 数组,使用 torch.as_tensor() 或 torch.from_numpy() 来避免复制数据。


4.在 BatchNorm 之前关闭 bias

  在开始 BatchNormalization 层之前关闭 bias 层。对于一个 2-D 卷积层,可以将 bias 关键字设置为 False:torch.nn.Conv2d(…, bias=False, …)。


5. 在验证期间关闭梯度计算

  在验证期间关闭梯度计算,设置:torch.no_grad() 。


6.删除模型时,使用torch.cuda.empty_cache()清除GPU缓存

  尤其是在使用笔记本删除并重新创建大型模型时。


7.预测之前一定记得调用model.eval()

  如果你忘记调用model.eval(),也就是忘记将模型转变为evaluation(测试)模式,那么Dropout层和Batch Normalization层就会对你的预测数据造成干扰。


总结

  综上,仅为PyTorch框架的常用训练技巧。
  还有很多相关策略来提升模型训练和预测性能,可访问参考链接,进行详细查明;或者在实践中不断积累,不断百度。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PyTorch学习(10):训练技巧 的相关文章

随机推荐