加入收藏 | 设为首页 | 会员中心 | 我要投稿 西安站长网 (https://www.029zz.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

代码详解:用Pytorch训练快速神经网络的9个技巧

发布时间:2019-08-19 11:16:17 所属栏目:建站 来源:读芯术
导读:副标题#e# 事实上,你的模型可能还停留在石器时代的水平。估计你还在用32位精度或*GASP(一般活动仿真语言)*训练,甚至可能只在单GPU上训练。如果市面上有99个加速指南,但你可能只看过1个?(没错,就是这样)。但这份终极指南,会一步步教你清除模型中所有的(

https://williamfalcon.github.io/pytorch-lightning/Trainer/Training%20Loop/?source=post_page---------------------------#accumulated-gradients

  1. trainer = Trainer(accumulate_grad_batches=16) 
  2. trainer.fit(model) 

5. 保留计算图

代码详解:用Pytorch训练快速神经网络的9个技巧

撑爆内存很简单,只要不释放指向计算图形的指针,比如……为记录日志保存loss。

  1. losses = [] 
  2.  
  3. ... 
  4. losses.append(loss) 
  5.  
  6. print(f'current loss: {torch.mean(losses)'}) 

上述的问题在于,loss仍然有一个图形副本。在这种情况中,可用.item()来释放它。

  1. # bad 
  2. losses.append(loss) 
  3.  
  4. # good 
  5. losses.append(loss.item()) 

Lightning会特别注意,让其无法保留图形副本 (示例:

https://github.com/williamFalcon/pytorch-lightning/blob/master/pytorch_lightning/models/trainer.py?source=post_page---------------------------#L767-L768)

6. 单GPU训练

代码详解:用Pytorch训练快速神经网络的9个技巧

一旦完成了前面的步骤,就可以进入GPU训练了。GPU的训练将对许多GPU核心上的数学计算进行并行处理。能加速多少取决于使用的GPU类型。个人使用的话,推荐使用2080Ti,公司使用的话可用V100。

(编辑:西安站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读