目录
  • Pytorch指定device(cuda or cpu)
    • torch.device()
    • os.environ['CUDA_VISIBLE_DEVICES']
  • 说说torch.device的作用
    • 总结

      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)

      总结

      以上为个人经验,希望能给大家一个参考,也希望大家多多支持小闻网。

      声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。