代码详解:用Pytorch训练快速神经网络的9个技巧
(https://williamfalcon.github.io/pytorch-lightning/Trainer/Distributed%20training/?source=post_page---------------------------#single-gpu):
在GPU进行训练时,要注意限制CPU和GPU之间的传输量。
例如,如果耗尽了内存,不要为了省内存,将数据移回CPU。尝试用其他方式优化代码,或者在用这种方法之前先跨GPUs分配代码。 此外还要注意进行强制GPUs同步的操作。例如清除内存缓存。
但是如果使用Lightning,那么只有在定义Lightning模块时可能会出现这种问题。Lightning特别注意避免此类错误。 7. 16位精度 16位精度可以有效地削减一半的内存占用。大多数模型都是用32位精度数进行训练的。然而最近的研究发现,使用16位精度,模型也可以很好地工作。混合精度指的是,用16位训练一些特定的模型,而权值类的用32位训练。 要想在Pytorch中用16位精度,先从NVIDIA中安装 apex 图书馆 并对你的模型进行这些更改。
amp包会处理大部分事情。如果梯度爆炸或趋于零,它甚至会扩大loss。 在Lightning中, 使用16位很简单 (编辑:西安站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |