Pytorch如何指定device(cuda or cpu)
Pytorch指定device(cuda or cpu)
torch.device()
在PyTorch中,你可以使用torch.device函數(shù)來設(shè)置設(shè)備(device)。
這個(gè)函數(shù)接受一個(gè)字符串作為參數(shù),該字符串可以是 "cpu" 或 "cuda",它指定了要在哪個(gè)設(shè)備上運(yùn)行張量計(jì)算。
# 使用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']
是一個(gè)在運(yùn)行 Python 程序時(shí)可以設(shè)置可見的 CUDA 設(shè)備的環(huán)境變量。
這個(gè)環(huán)境變量可以控制哪些 GPU 設(shè)備對 Python 程序是可見的。
例如:
如果你想讓你的程序只能看到編號為 0 的 GPU,你可以在運(yùn)行程序前設(shè)置這個(gè)環(huán)境變量:
import os os.environ['CUDA_VISIBLE_DEVICES'] = '0'
或者你也可以設(shè)置多個(gè) GPU,只需將它們的編號以逗號分隔:
import os os.environ['CUDA_VISIBLE_DEVICES'] = '0,1'
如果你想讓程序?qū)λ?GPU 都可見,只需將環(huán)境變量設(shè)置為空字符串:
os.environ['CUDA_VISIBLE_DEVICES'] = ''
說說torch.device的作用
torch.device代表將torch.Tensor分配到的設(shè)備的對象。
torch.device包含一個(gè)設(shè)備類型(‘cpu’或‘cuda’)和可選的設(shè)備序號。
如果設(shè)備序號不存在,則為當(dāng)前設(shè)備。
如:torch.Tensor用設(shè)備構(gòu)建‘cuda’的結(jié)果等同于‘cuda:X’,其中X是torch.cuda.current_device()的結(jié)果。
#開始腳本,創(chuàng)建一個(gè)張量
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
...
#但是無論你獲得一個(gè)新的Tensor或者M(jìn)odule
#如果他們已經(jīng)在目標(biāo)設(shè)備上則不會執(zhí)行復(fù)制操作
input = data.to(device)
model = MyModule(...).to(device)總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python統(tǒng)計(jì)日志ip訪問數(shù)的方法
這篇文章主要介紹了python統(tǒng)計(jì)日志ip訪問數(shù)的方法,涉及Python操作日志文件及正則匹配的相關(guān)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-07-07
python深度學(xué)習(xí)tensorflow實(shí)例數(shù)據(jù)下載與讀取
這篇文章主要為大家介紹了python深度學(xué)習(xí)tensorflow實(shí)例數(shù)據(jù)下載與讀取示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06
python+opencv實(shí)現(xiàn)攝像頭調(diào)用的方法
這篇文章主要為大家詳細(xì)介紹了python+opencv實(shí)現(xiàn)攝像頭調(diào)用的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-06-06
基于OpenCV(python)的實(shí)現(xiàn)文本分割之垂直投影法
本文主要介紹了基于OpenCV(python)的實(shí)現(xiàn)文本分割之垂直投影法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08
如何理解python接口自動(dòng)化之logging日志模塊
代碼需要經(jīng)歷開發(fā)、調(diào)試、審查、測試或者上線等不同階段,在“測試”時(shí),可能只想看警告和錯(cuò)誤信息,然而在“調(diào)試”時(shí),可能還想看到跟調(diào)試相關(guān)的信息。如果想打印出使用的模塊以及代碼運(yùn)行的時(shí)間,那么代碼很容易變得混亂。使用logging日志模塊,就能很容易地解決2021-06-06
腳本測試postman快速導(dǎo)出python接口測試過程示例
這篇文章主要介紹了關(guān)于腳本測試postman快速導(dǎo)出python接口測試示例的過程操作,有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-09-09
Python?EasyDict庫以屬性方式訪問字典元素(無需使用方括號和鍵)
在Python中,字典(dict)是一種常用的數(shù)據(jù)結(jié)構(gòu),用于存儲鍵值對,然而,有時(shí)候我們希望以屬性的方式訪問字典中的元素,而無需使用方括號和鍵,這就是EasyDict庫的用武之地,本文將深入介紹EasyDict庫,展示其強(qiáng)大的功能和如何通過示例代碼更好地利用它2023-12-12

