將pytorch的網(wǎng)絡等轉移到cuda
神經(jīng)網(wǎng)絡一般用GPU來跑,我們的神經(jīng)網(wǎng)絡框架一般也都安裝的GPU版本,本文就簡單記錄一下GPU使用的編寫。
GPU的設置不在model,而是在Train的初始化上。
第一步是查看是否可以使用GPU
self.GPU_IN_USE = torch.cuda.is_available()
就是返回這個可不可以用GPU的函數(shù),當你的pytorch是cpu版本的時候,他就會返回False。
然后是:
self.device = torch.device('cuda' if self.GPU_IN_USE else 'cpu')
torch.device是代表將torch.tensor分配到哪個設備的函數(shù)
接著是,我看到了一篇文章,原來就是將網(wǎng)絡啊、數(shù)據(jù)啊、隨機種子啊、損失函數(shù)啊、等等等等直接轉移到CUDA上就好了!
于是下面就好理解多了:
轉移模型:
self.model = Net(num_channels=1, upscale_factor=self.upscale_factor, base_channel=64, num_residuals=4).to(self.device)
設置cuda的隨機種子:
torch.cuda.manual_seed(self.seed)
轉移損失函數(shù):
self.criterion.cuda()
轉移數(shù)據(jù):
data, target = data.to(self.device), target.to(self.device)
pytorch 網(wǎng)絡定義參數(shù)的后面無法加.cuda()
pytorch定義網(wǎng)絡__init__()的時候,參數(shù)不能加“cuda()", 不然參數(shù)不包含在state_dict()中,比如下面這種寫法是錯誤的
self.W1 = nn.Parameter(torch.FloatTensor(3,3), requires_grad=True).cuda()
應該去掉".cuda()"
self.W1 = nn.Parameter(torch.FloatTensor(3,3), requires_grad=True)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
- python?windows安裝cuda+cudnn+pytorch教程
- 顯卡驅動CUDA?和?pytorch?CUDA?之間的區(qū)別
- pytorch?cuda安裝報錯的解決方法
- PyTorch中的CUDA的操作方法
- PyTorch?device與cuda.device用法介紹
- pytorch 如何用cuda處理數(shù)據(jù)
- pytorch中.to(device) 和.cuda()的區(qū)別說明
- PyTorch CUDA環(huán)境配置及安裝的步驟(圖文教程)
- Linux安裝Pytorch1.8GPU(CUDA11.1)的實現(xiàn)
- 詳解win10下pytorch-gpu安裝以及CUDA詳細安裝過程
- Pytorch使用CUDA流(CUDA?stream)的實現(xiàn)
相關文章
Python實現(xiàn)刪除windows下的長路徑文件
這篇文章主要為大家詳細介紹一下如何利用Python語言實現(xiàn)刪除windows下的長路徑文件功能,文中的示例代碼講解詳細,具有一定參考借鑒價值,感興趣的可以了解一下2022-07-07python matplotlib繪圖,修改坐標軸刻度為文字的實例
今天小編就為大家分享一篇python matplotlib繪圖,修改坐標軸刻度為文字的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05