美文网首页
Pytorch训练技巧

Pytorch训练技巧

作者: zerowl | 来源:发表于2023-12-25 17:21 被阅读0次
one cycle学习率策略

有规律的改变学习率有助于更快的越过鞍点。
https://blog.csdn.net/weixin_44751294/article/details/125170729

batchsize设置

使用gpu能允许的最大batchsize可加速训练,但效果可能比小的batchsize差。在修改batchsize时需要修改学习率,经验是batchsize加倍时,学习率也加倍。
Openai:An Empirical Model of Large-Batch Training

Dataloder的num_worker 和pin_memory设置

Number_work表示使用多少个子进程进行数据加载,number_worker设置过大,内存消耗过大,加大cpu负担,经验:设置为可用gpu数量的4倍。
当内存充足时,Pin_memory设置为True,数据加载到gpu的速度更快。

Automatic Mixed Precision

使用自动混合精度进行训练。Pytorch1.6已实现。AMP会自动决定在某些操作时使用Float16, 某些操作使用Float32。在不损失精度的前提下,达到更快的速度和占用更小的内存(显存)


image.png
设置cudnn

如果模型输入固定,结构不变。可将torch.backends.cudnn.benchmark=True。

分布式训练

使用DistributedDataParallel
https://blog.csdn.net/ytusdc/article/details/122091284

梯度累加

使用梯度累加,可以规避gpu显存的限制


image.png
梯度裁减

最初是为了避免RNN的梯度爆炸


image.png
cpu和gpu数据拷贝

避免数据在cpu和gpu之间频繁的转换,尽量使用torch.as_tensor()和torch.from_numpy().而不是torch.cpu()、torch.cuda()、torch.tensor().

相关文章

网友评论

      本文标题:Pytorch训练技巧

      本文链接:https://www.haomeiwen.com/subject/jmukndtx.html