pytorch显卡内存随训练过程而增加_pytorch apex 混合精度训练和horovod分布式训练...

转载请注明出处:https://zhuanlan.zhihu.com/p/98034129

如果你基于pytorch训练模型,然后,你想加快训练速度,增大batch_size,或者,你有一台配置多张显卡的机器,还是说你有多台带显卡机器,你想利用起来,分布式训练你的模型,那这篇文章对你有点用。

基于以上的需求,我趟了一遍,记录下我遇到的坑都有哪些,怎么跨过去。

先看一下我主要的工具:anaconda,apex,horovod。就这三个。

1. Conda 环境

接下来的工作,全部在conda环境内完成,所以安装一个最新版的conda,然后创建一个新的环境,并且激活这个环境。

在这个全新的环境里面,安装模型训练需要的所有package。

三种配置conda新环境的方法:

a.最最简单的办法,直接拷贝 path_to_conda/anaconda3/envs 下面的环境,移植到新机器对应环境下。但是这个方法有前提条件:首先是,最好新旧机器的硬件配置、系统版本是一样的;第二是环境内的package的安装过程不需要配置额外参数。

b.导出conda 环境,在新机器上创建。显然这种方式的前提和第一种相似。

conda env export > environment.yaml  #conda导出已有环境

conda env create -f environment.yaml #在新机器上创建

c.当环境无法移植进来时,只能一个一个安装

安装好环境后建议检查以下cuda和pytorch版本是否匹配,在python脚本内使用以下方法检查:

import torch

torch.cuda.is_available()

2. 混合精度训练和单机多卡分布式训练

Apex 是Nvidia开发维护的工具,使用简便的API实现混合精度训练和分布式训练 根据以下链接安装apex:

https://github.com/NVIDIA/apex#quick-start​github.com <
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值