Pytorch如何指定device(cuda or cpu)

 更新时间:2024年06月27日 16:59:07   作者:湫兮之风  
这篇文章主要介绍了Pytorch如何指定device(cuda or cpu)问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

Pytorch指定device(cuda or cpu)

torch.device()

在PyTorch中,你可以使用torch.device函数来设置设备(device)。

这个函数接受一个字符串作为参数,该字符串可以是 "cpu" 或 "cuda",它指定了要在哪个设备上运行张量计算。

# 使用CPU  
device = torch.device("cpu") 
 
  
# 使用GPU(如果可用)  
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")

device = torch.device("cuda:0")

device = torch.device("cuda:1")

os.environ['CUDA_VISIBLE_DEVICES']

全局指定只能识别的cuda编号

os.environ['CUDA_VISIBLE_DEVICES'] 

是一个在运行 Python 程序时可以设置可见的 CUDA 设备的环境变量。

这个环境变量可以控制哪些 GPU 设备对 Python 程序是可见的。

例如:

如果你想让你的程序只能看到编号为 0 的 GPU,你可以在运行程序前设置这个环境变量:

import os  
os.environ['CUDA_VISIBLE_DEVICES'] = '0'

或者你也可以设置多个 GPU,只需将它们的编号以逗号分隔:

import os
os.environ['CUDA_VISIBLE_DEVICES'] = '0,1'

如果你想让程序对所有 GPU 都可见,只需将环境变量设置为空字符串:

os.environ['CUDA_VISIBLE_DEVICES'] = ''

说说torch.device的作用

torch.device代表将torch.Tensor分配到的设备的对象。

torch.device包含一个设备类型(‘cpu’或‘cuda’)和可选的设备序号。

如果设备序号不存在,则为当前设备。

如:torch.Tensor用设备构建‘cuda’的结果等同于‘cuda:X’,其中X是torch.cuda.current_device()的结果。

#开始脚本,创建一个张量
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
...
#但是无论你获得一个新的Tensor或者Module
#如果他们已经在目标设备上则不会执行复制操作
input = data.to(device)
model = MyModule(...).to(device)

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • python3 flask 文件占用未释放问题

    python3 flask 文件占用未释放问题

    这篇文章主要介绍了python3 flask 文件占用未释放问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • 一起来看看五条Python中的隐含特性

    一起来看看五条Python中的隐含特性

    这篇文章主要为大家详细介绍了Python中的隐含特性,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-01-01
  • 浅析Python多线程下的变量问题

    浅析Python多线程下的变量问题

    这篇文章主要介绍了Python多线程下的变量问题,由于GIL的存在,Python的多线程编程问题一直是开发者中的热点话题,需要的朋友可以参考下
    2015-04-04
  • 使用pipenv管理python虚拟环境的全过程

    使用pipenv管理python虚拟环境的全过程

    pipenv 是Kenneth Reitz大神的作品,能够有效管理Python多个环境,各种包,接下来通过本文给大家分享使用pipenv管理python虚拟环境的全过程,感兴趣的朋友一起看看吧
    2021-09-09
  • Python使用pyinstaller打包spec文件的方法详解

    Python使用pyinstaller打包spec文件的方法详解

    PyInstaller是一个用于将Python脚本打包成独立的可执行文件的工具,使用PyInstaller您可以将Python应用程序转换为可执行文件,而无需用户安装Python解释器或任何额外的库,这篇文章主要给大家介绍了关于Python使用pyinstaller打包spec文件的相关资料,需要的朋友可以参考下
    2024-08-08
  • Python判断for循环最后一次的6种方法

    Python判断for循环最后一次的6种方法

    在Python中,通常我们不会直接判断for循环是否正在执行最后一次迭代,因为Python的for循环是基于可迭代对象的,它不知道也不关心迭代的内部状态(比如当前是第几次迭代),但是,我们可以使用一些技巧来间接地实现这个需求,需要的朋友可以参考下
    2025-01-01
  • python实现网络五子棋

    python实现网络五子棋

    这篇文章主要为大家详细介绍了python实现网络五子棋,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-04-04
  • Python字符转换

    Python字符转换

    Python提供了ord和chr两个内置的函数,用于字符与ASCII码之间的转换。
    2008-09-09
  • python 移动图片到另外一个文件夹的实例

    python 移动图片到另外一个文件夹的实例

    今天小编就为大家分享一篇python 移动图片到另外一个文件夹的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • python统计中文字符数量的两种方法

    python统计中文字符数量的两种方法

    今天小编就为大家分享一篇python统计中文字符数量的两种方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01

最新评论