中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么解決Pytorch 自定義子Module .cuda() tensor失敗問題

發布時間:2020-06-23 13:46:58 來源:億速云 閱讀:389 作者:清晨 欄目:開發技術

不懂怎么解決Pytorch 自定義子Module .cuda() tensor失敗問題?其實想解決這個問題也不難,下面讓小編帶著大家一起學習怎么去解決,希望大家閱讀完這篇文章后大所收獲。

在剛從tensorflow轉入pytorch,對于自定義的nn.Module 碰到了個問題,即使把模組 modle=Model().cuda(),里面的子Module的parameter都沒有被放入cuda,導致輸入是torch.cuda.FloatTensor,但是比如CNN的weight卻還是torch.FloatTensor

(當然最粗暴的方法就是直接在子模組里面都用了 .cuda()

但是問題并不在那,可能是調用子模組的時候,存在某些錯誤,導致父模組沒有把子模組的parameter注冊到pytorch中。

而我遇到的錯誤就是,使用list來存放子模組的對象,導致list中的parameter沒有注冊。

解決方案就是 使用nn.ModuleList()這個封裝的函數 來替換list() / []

參考這里

補充知識:關于Pytorch框架下報錯CUDA驅動版本不滿足CUDA運行版本——一種可能的原因及解決辦法

運行Pytorch代碼的時候遇到:

RuntimeError: cuda runtime error (35) : CUDA driver version is insufficient for CUDA runtime version at /pytorch/aten/src/THC/THCGeneral.cpp:74

可能原因:每一個pytorch版本都有對應的cuda版本,可能是在安裝pytorch的時候,選擇的pytorch版本所對應的版本cuda版本與本機所安裝的cuda版本不相符。

怎么解決Pytorch 自定義子Module .cuda() tensor失敗問題

check步驟:

#查看pytorch版本

import torch

torch.__version__

#查看pytorch版本對應的cuda版本

torch.version.cuda

#查看cuda是否可用

torch.cuda.is_available()

#查看Linux server安裝的cuda版本

#切換到/usr/local/cuda/samples/1_Utilities/deviceQuery然后運行

./deviceQuery

出現類似以下信息:

./deviceQuery Starting...
 CUDA Device Query (Runtime API) version (CUDART static linking)
Detected 1 CUDA Capable device(s)

Device 0: "GeForce GTX TITAN Black"
 CUDA Driver Version / Runtime Version  8.0 / 8.0
 CUDA Capability Major/Minor version number: 3.5
 Total amount of global memory:   6080 MBytes (6375407616 bytes)
 (15) Multiprocessors, (192) CUDA Cores/MP: 2880 CUDA Cores
 GPU Max Clock rate:    1072 MHz (1.07 GHz)
 Memory Clock rate:    3500 Mhz
 Memory Bus Width:    384-bit
 L2 Cache Size:     1572864 bytes
 Maximum Texture Dimension Size (x,y,z)  1D=(65536), 2D=(65536, 65536), 3D=(4096, 4096, 4096)
 Maximum Layered 1D Texture Size, (num) layers 1D=(16384), 2048 layers
 Maximum Layered 2D Texture Size, (num) layers 2D=(16384, 16384), 2048 layers
 Total amount of constant memory:  65536 bytes
 Total amount of shared memory per block: 49152 bytes
 Total number of registers available per block: 65536
 Warp size:     32
 Maximum number of threads per multiprocessor: 2048
 Maximum number of threads per block:  1024
 Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
 Max dimension size of a grid size (x,y,z): (2147483647, 65535, 65535)
 Maximum memory pitch:    2147483647 bytes
 Texture alignment:    512 bytes
 Concurrent copy and kernel execution:  Yes with 1 copy engine(s)
 Run time limit on kernels:   No
 Integrated GPU sharing Host Memory:  No
 Support host page-locked memory mapping: Yes
 Alignment requirement for Surfaces:  Yes
 Device has ECC support:   Disabled
 Device supports Unified Addressing (UVA): Yes
 Device PCI Domain ID / Bus ID / location ID: 0 / 1 / 0
 Compute Mode:
 < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >

deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 8.0, CUDA Runtime Version = 8.0, NumDevs = 1, Device0 = GeForce GTX TITAN Black
Result = PASS

比對前后兩個cuda版本是否一致,如果不一致,就需要卸載并安裝與本機cuda版本相同的pytorch(當然應該也可以改本機的cuda版本,只不過相對比較麻煩)

pip3 uninstall pytorch
pip3 install [pytorch-version-link]

打開鏈接,選擇合適版本版本,右鍵復制鏈接地址,替換上面的pytorch-version-link,執行命令就行。

這樣應該就可以解決了。

感謝你能夠認真閱讀完這篇文章,希望小編分享怎么解決Pytorch 自定義子Module .cuda() tensor失敗問題內容對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

云霄县| 随州市| 瓮安县| 万源市| 中超| 定边县| 永川市| 宁乡县| 南阳市| 西青区| 福泉市| 内乡县| 登封市| 大荔县| 禄劝| 梁河县| 恩施市| 左权县| 武冈市| 天峻县| 辽源市| 北宁市| 瑞昌市| 苍梧县| 石阡县| 弥勒县| 全州县| 衡阳市| 兴国县| 开化县| 莲花县| 满城县| 耿马| 揭阳市| 湘潭县| 五常市| 革吉县| 临高县| 子长县| 太仆寺旗| 九寨沟县|