当前位置:   article > 正文

浅谈将Pytorch模型从CPU转换成GPU_pytorch变成gpu版本torch需要变吗

pytorch变成gpu版本torch需要变吗

最近将Pytorch程序迁移到GPU上去的一些工作和思考

环境:Ubuntu 16.04.3
Python版本:3.5.2
Pytorch版本:0.4.0

0. 序言

大家知道,在深度学习中使用GPU来对模型进行训练是可以通过并行化其计算来提高运行效率,这里就不多谈了。
最近申请到了实验室的服务器来跑程序,成功将我简陋的程序改成了“高大上”GPU版本。
看到网上总体来说少了很多介绍,这里决定将我的一些思考和工作记录下来。

1. 如何进行迁移

由于我使用的是Pytorch写的模型,网上给出了一个非常简单的转换方式: 对模型和相应的数据进行.cuda()处理。通过这种方式,我们就可以将内存中的数据复制到GPU的显存中去。从而可以通过GPU来进行运算了。

网上说的非常简单,但是实际使用过程中还是遇到了一些疑惑。下面分数据模型两方面的迁移来进行说明介绍。

1.1 判定使用GPU

下载了对应的GPU版本的Pytorch之后,要确保GPU是可以进行使用的,通过torch.cuda.is_available()的返回值来进行判断。返回True则具有能够使用的GPU。
通过torch.cuda.device_count()可以获得能够使用的GPU数量。其他就不多赘述了。
常常通过如下判定来写可以跑在GPU和CPU上的通用模型:

if torch.cuda.is_available():
    ten1 = ten1.cuda()
    MyModel = MyModel.cuda() 
  • 1
  • 2
  • 3

2. 对应数据的迁移

数据方面常用的主要是两种 —— TensorVariable。实际上这两种类型是同一个东西,因为Variable实际上只是一个容器,这里先视其不同。

2.1 将Tensor迁移到显存中去

不论是什么类型的Tensor(FloatTensor或者是LongTensor等等),一律直接使用方法.cuda()即可。
例如:

ten1 = torch.Float
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/喵喵爱编程/article/detail/851448
推荐阅读
相关标签
  

闽ICP备14008679号