【Pytorch小知识】Pytorch使用To方法编写代码在不同设备(CUDA/CPU)上兼容(device-agnostic)
2019-06-13 22:01
851 查看
以前版本的PyTorch编写
device-agnostic代码非常困难(即,在不修改代码的情况下在CUDA可以使用或者只能使用CPU的设备上运行)。
device-agnostic的概念
即设备无关,可以理解为无论什么设备都可以运行您编写的代码。(PS:个人理解,我没有在网上找到专业解释)
PyTorch 0.4.0使代码兼容
PyTorch 0.4.0通过两种方法使代码兼容变得非常容易:
-
张量的
device
属性为所有张量提供了torch.device
设备。(注意:get_device
仅适用于CUDA张量) -
to
方法Tensors和Modules可用于容易地将对象移动到不同的设备(代替以前的cpu()或cuda()方法)
我们推荐以下模式
#开始脚本,创建一个张量 device = torch.device("cuda" if torch.cuda.is_available() else "cpu") ... #但是无论你获得一个新的Tensor或者Module #如果他们已经在目标设备上则不会执行复制操作 input = data.to(device) model = MyModule(...).to(device)
相关文章推荐
- 在android中使用proguard混淆代码出现“Conversion to Dalvik format failed with error 1”错误的解决方法
- 在android中使用proguard混淆代码出现“Conversion to Dalvik format failed with error 1”错误的解决方法
- 在android中使用proguard混淆代码出现“Conversion to Dalvik format failed with error 1”错误的解决方法
- 编写兼容 Python 2.x 和 3.x 代码的方法
- mini2440插入usb设备出现: unable to enumerate USB device on port问题的解决,以及使用super vivi对nand flash进行分区
- 编写高质量代码改善C#程序的157个建议[为泛型指定初始值、使用委托声明、使用Lambda替代方法和匿名方法]
- QT 的使用及编写代码遇到的问题和解决方法
- 解决pytorch官网下载慢ubuntu16.04+anaconda3(python3.6)+pytorch0.4.1+cuda9.0+cudnn7.1安装指南
- Android开发兼容不同分辨率设备的资源命名方法(Supporting Multiple Screens )
- [编写高质量代码:改善java程序的151个建议]建议67 不同的列表选择不同的遍历方法
- 编写高质量代码改善C#程序的157个建议[为泛型指定初始值、使用委托声明、使用Lambda替代方法和匿名方法]
- Lambda表达式--使用方法语法的复杂查询: join (在单个 LINQ to Entities 查询中的两个结构上不兼容的初始化过程中出现类型)
- 使用AngularJS编写多选按钮选中时触发指定方法的指令代码详解
- Pytorch实战指南---使用Pytorch完成Kaggle上的经典比赛:Dogs vs Cats---updating
- All-In-One Code Framework(AIO): 如何编写VC++代码来使用COM组件 (How to use COM in a VC++ client)
- 使用CSS3中Media Queries兼容不同设备
- 两个按钮执行同一事件方法但执行不同代码的使用
- 编写高质量代码改善C#程序的157个建议[正确操作字符串、使用默认转型方法、却别对待强制转换与as和is]
- Win7 USB接口无法使用/驱动错误/该设备无法启动。(代码10) 故障解决方法