赞
踩
PyTorch 是一个 Python 优先的深度学习框架,能够在强大的 GPU 加速基础上实现张量和动态神经网络。PyTorch的一大优势就是它的动态图计算特性。
License :MIT License
GitHub:https://github.com/pytorch/pytorch
Pytorch 是从Facebook孵化出来的,在0.4的最新版本加入了分布式模式,比较吃惊的是它居然没有采用类似于TF和MxNet的PS-Worker架构。而是采用一个还在Facebook孵化当中的一个叫做gloo的家伙。
官方教程:http://pytorch.org/docs/master/distributed.html
其实这种三种backend对现在我们来说可以说是没得选的,只有gloo支持GPU
这里引入了一个新的函数model = torch.nn.parallel.DistributedDataParallel(model)
为的就是支持分布式模式
不同于原来在multiprocessing中的model = torch.nn.DataParallel(model,device_ids=[0,1,2,3]).cuda()
函数,这个函数只是实现了在单机上的多GPU训练,根据官方文档的说法,甚至在单机多卡的模式下,新函数表现也会优于这个旧函数。
这里要提到两个问题:
项目地址:https://github.com/facebookincubator/gloo
是一个类似MPI的通信库,你不需要考虑内存数据的拷贝,只需要实现逻辑就可以。
torch.distributed.init_process_group(backend, init_method='env://', **kwargs)
参数说明:
tcp
mpi
gloo
解释一下init_method()也有这三种方式,具体可参看http://pytorch.org/docs/master/distributed.html
from __future__ import print_function
import</
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。