pytorch 如何在GPU上訓(xùn)練
1.網(wǎng)絡(luò)模型轉(zhuǎn)移到CUDA上
net = AlexNet() net.cuda()#轉(zhuǎn)移到CUDA上
2.將loss轉(zhuǎn)移到CUDA上
criterion = nn.CrossEntropyLoss() criterion = criterion.cuda()
這一步不做也可以,因?yàn)閘oss是根據(jù)out、label算出來(lái)的
loss = criterion(out, label)
只要out、label在CUDA上,loss自然也在CUDA上了,但是發(fā)現(xiàn)不轉(zhuǎn)移到CUDA上準(zhǔn)確率竟然降低了1%
3.將數(shù)據(jù)集轉(zhuǎn)移到CUDA上
這里要解釋一下數(shù)據(jù)集使用方法
#download the dataset
train_set = CIFAR10("./data_cifar10", train=True, transform=data_tf, download=True)
train_data = torch.utils.data.DataLoader(train_set, batch_size=64, shuffle=True)
dataset是把所有的input,label都制作成了一個(gè)大的多維數(shù)組
dataloader是在這個(gè)大的多維數(shù)組里采樣制作成batch,用這些batch來(lái)訓(xùn)練
for im, label in train_data:
i = i + 1
im = im.cuda()#把數(shù)據(jù)遷移到CUDA上
im = Variable(im)#把數(shù)據(jù)放到Variable里
label = label.cuda()
label =Variable(label)
out = net(im)#the output should have the size of (N,10)
遍歷batch的時(shí)候,首先要把拿出來(lái)的Image、label都轉(zhuǎn)移到CUDA上,這樣接下來(lái)的計(jì)算都是在CUDA上了
開始的時(shí)候只在轉(zhuǎn)成Variable以后才遷移到CUDA上,這樣在網(wǎng)絡(luò)傳播過(guò)程中就數(shù)據(jù)不是在CUDA上了,所以一直報(bào)錯(cuò)
訓(xùn)練網(wǎng)絡(luò)時(shí)指定gpu顯卡
查看有哪些可用的gpu
nvidia -smi
實(shí)時(shí)查看gpu信息1代表每1秒刷新一次
watch -n -1 nvidia -smi
指定使用的gpu
import os # 使用第一張與第三張GPU卡 os.environ["CUDA_VISIBLE_DEVICES"] = "0,3"
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
一文詳解如何在Python中實(shí)現(xiàn)switch語(yǔ)句
這篇文章主要給大家介紹了關(guān)于如何在Python中實(shí)現(xiàn)switch語(yǔ)句的相關(guān)資料,今天在學(xué)習(xí)python的過(guò)程中,發(fā)現(xiàn)python沒(méi)有switch這個(gè)語(yǔ)法,所以這里給大家總結(jié)下,需要的朋友可以參考下2023-09-09
python中for循環(huán)把字符串或者字典添加到列表的方法
今天小編就為大家分享一篇python中for循環(huán)把字符串或者字典添加到列表的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07
使用tensorflow 實(shí)現(xiàn)反向傳播求導(dǎo)
這篇文章主要介紹了使用tensorflow 實(shí)現(xiàn)反向傳播求導(dǎo),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05
Python中實(shí)現(xiàn)傳遞未知數(shù)量的函數(shù)參數(shù)
這篇文章主要介紹了Python中實(shí)現(xiàn)傳遞未知數(shù)量的函數(shù)參數(shù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02
使用Filter過(guò)濾python中的日志輸出的實(shí)現(xiàn)方法
這篇文章主要介紹了使用Filter過(guò)濾python中的日志輸出,本文給大家分享幾種方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-07-07
使用selenium模擬動(dòng)態(tài)登錄百度頁(yè)面的實(shí)現(xiàn)
本文主要介紹了使用selenium模擬動(dòng)態(tài)登錄百度頁(yè)面,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05
使用python編寫簡(jiǎn)單的小程序編譯成exe跑在win10上
這篇文章主要介紹了使用python編寫簡(jiǎn)單的小程序編譯成exe跑在win10上的相關(guān)資料,需要的朋友可以參考下2018-01-01
為何你的Python代碼在Notepad++中只閃現(xiàn)一下就消失無(wú)蹤?
你是否曾在Notepad++中運(yùn)行編寫的Python代碼,卻發(fā)現(xiàn)它們瞬間消失無(wú)蹤?別擔(dān)心,這不是你的幻覺(jué),在這篇指南中,我們將揭秘這一現(xiàn)象背后的原因,并教你如何輕松解決,讓我們一起揭開這個(gè)謎團(tuán),讓你的Python代碼在Notepad++中安然無(wú)恙吧!2024-02-02
Python基于numpy靈活定義神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的方法
這篇文章主要介紹了Python基于numpy靈活定義神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的方法,結(jié)合實(shí)例形式分析了神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的原理及Python具體實(shí)現(xiàn)方法,涉及Python使用numpy擴(kuò)展進(jìn)行數(shù)學(xué)運(yùn)算的相關(guān)操作技巧,需要的朋友可以參考下2017-08-08

