| |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| -> Python知识库 -> python指定Gpu -> 正文阅读 |
|
|
[Python知识库]python指定Gpu |
|
PyTorch默认使用从0开始的GPU,如果GPU0正在运行程序,需要指定其他GPU。 有如下两种方法来指定需要使用的GPU。 1. 类似tensorflow指定GPU的方式,使用CUDA_VISIBLE_DEVICES。 1.1 直接终端中设定: CUDA_VISIBLE_DEVICES=1 python my_script.py 1.2 python代码中设定: import os os.environ["CUDA_VISIBLE_DEVICES"] = "2" 见网址:(原)tensorflow中使用指定的GPU及GPU显存 - darkknightzh - 博客园 2. 使用函数 set_device import torch torch.cuda.set_device(id) 该函数见 pytorch-master\torch\cuda\__init__.py。 不过官方建议使用CUDA_VISIBLE_DEVICES,不建议使用 set_device 函数。 注:官方解释 如果服务器具有多个GPU,
设置 3.指定cuda的函数:使用
4. tensor.cuda和variable.cuda,都会返回一个新对象,这个新对象的数据已转移至GPU,而之前的tensor/variable的数据还在原来的设备上(CPU)。但是nn.MOdule下的cuda()方法,会将所有数据都迁移至GPU,并返回自己。所以module = module.cuda()和module.cuda()效果相同。通过is_cuda()判断tensor对象是否在cuda上。 tensor = t.Tensor(3, 4) # 返回一个新的tensor,保存在第1块GPU上,但原来的tensor并没有改变 tensor.cuda(0) tensor.is_cuda # False # 不指定所使用的GPU设备,将默认使用第1块GPU tensor = tensor.cuda() tensor.is_cuda # True module = nn.Linear(3, 4) module.cuda(device = 1) module.weight.is_cuda # True 5.判断支持cuda,自动决定是在GPU还是CPU上运行。
此外,还可以使用上面的 6.指定cuda的函数其他方式
7.把数据从CPU迁移到GPU时,可以用.cuda()方法,也可以用.to(device)方法。示例如下。 .cuda()方法
.to(device)方法 (推荐)
.cuda()方法和.to(device)方法耗时基本差不多。但是.to(device)代码风格更容易后期修改。 8.另外,值得注意到的是,张量在GPU和CPU之间的迁移不是in-place操作(返回新对象),而模型在GPU和CPU之间的迁移是in-place操作(返回原来的对象)。示例如下。
运行结果:
? |
|
|
|
|
| 上一篇文章 下一篇文章 查看所有文章 |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| 360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年10日历 | -2025/10/29 17:20:39- |
|
| 网站联系: qq:121756557 email:121756557@qq.com IT数码 |