国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【一文解決】已安裝CUDA與Pytorch但torch.cuda.is_available()為False

這篇具有很好參考價值的文章主要介紹了【一文解決】已安裝CUDA與Pytorch但torch.cuda.is_available()為False。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

問題描述

已經(jīng)安裝CUDA與Pytorch。但執(zhí)行如下Python腳本,輸出結(jié)果為False:

import torch
print(torch.cuda.is_available())

出現(xiàn)這個問題的原因很多,很多文章的分析并不全面。博主遇到這個問題時,也是不斷整合網(wǎng)絡(luò)上零零散散的信息,浪費了不少功夫,因此寫下了本文。如果你也遇到了這個問題,本文致力于幫助你通過這一篇文章解決這一問題。如果本篇文章對你有幫助,希望能點贊鼓勵一下。

注意,本文解決的問題是,import torch不報錯,但Pytorch與cuda沒有正確匹配上。如果你的import torch報錯,說明你沒有正確安裝Pytorch,請參考這一鏈接,安裝合適的Pytorch版本。

為了方便說明,本文以CUDA 10.2與PyTorch 1.11.0(GPU版本)為例。

總覽:導(dǎo)致問題的原因

導(dǎo)致這一問題的原因主要分為如下四個方面,在這里先作總結(jié),具體方法在之后展開。有經(jīng)驗的同學(xué)可以直接根據(jù)本節(jié)進(jìn)行快速排查,以提高效率。

  1. CUDA版本與驅(qū)動程序不兼容:CUDA版本需與GPU驅(qū)動程序兼容。
  2. CUDA庫的路徑設(shè)置存在問題:如果CUDA庫路徑未正確配置,PyTorch將無法找到CUDA庫文件。
  3. PyTorch版本與CUDA版本不匹配:安裝的PyTorch版本需與CUDA版本匹配。
  4. 編譯問題:如果使用預(yù)編譯的PyTorch二進(jìn)制文件,可能存在與CUDA版本不匹配的問題。
  5. 沖突:可能存在其他軟件包或庫與PyTorch或CUDA發(fā)生沖突。

絕大多數(shù)的問題都可以通過前三步解決。

請按照1-5的順序排查,直至問題解決。

可能1:CUDA版本與驅(qū)動程序不兼容

驅(qū)動程序與CUDA的兼容,指的是GPU驅(qū)動程序與安裝的CUDA版本相匹配,并且能夠正確地與CUDA庫進(jìn)行通信和協(xié)作??梢园凑杖缦虏襟E排查二者是否兼容:

1. 查看CUDA版本。

在終端輸入如下指令:

![nvcc -V](https://img-blog.yssmx.com/7aa95a08cc654edd83a126fd30b8953d.png)

或者:

cat /usr/local/cuda/version.txt

【一文解決】已安裝CUDA與Pytorch但torch.cuda.is_available()為False

例如,我的CUDA版本是10.2。

2. 查看GPU驅(qū)動程序版本。

在終端輸入如下指令:

nvidia-smi

【一文解決】已安裝CUDA與Pytorch但torch.cuda.is_available()為False

找到第一行的Driver Version,例如我的是440.44。

3. 檢查二者是否兼容。

驅(qū)動程序與CUDA的兼容性是非常重要的,因為PyTorch和其他基于CUDA的庫需要與GPU驅(qū)動程序進(jìn)行交互才能正確運行。如果驅(qū)動程序與CUDA不兼容,可能會導(dǎo)致無法正常使用CUDA功能或出現(xiàn)錯誤。

檢查上述二者的版本,確保二者是匹配的。例如,CUDA 10.2對應(yīng)的推薦驅(qū)動程序版本為NVIDIA驅(qū)動程序版本440.33或更高版本,我的版本是440.44,因此兼容。

CUDA版本與GPU驅(qū)動的兼容性表格(Linux請參照第一二列,Windows請參照第一三列)如下,請根據(jù)自己的版本自行比對:
【一文解決】已安裝CUDA與Pytorch但torch.cuda.is_available()為False
注:引用自此鏈接。

4. 更新驅(qū)動程序或更改CUDA版本。

若二者不匹配,可以選擇更新驅(qū)動程序或更改CUDA版本。

可以通過訪問NVIDIA官方網(wǎng)站下載并安裝適當(dāng)?shù)尿?qū)動程序版本。在安裝新的驅(qū)動程序之前,請確保先卸載舊的驅(qū)動程序,并按照安裝指南進(jìn)行正確的安裝,這里不做展開。如對CUDA版本無特殊要求,建議優(yōu)先選擇更改安裝的CUDA版本。

可能2:CUDA庫的路徑設(shè)置存在問題

簡單來說,如果CUDA庫路徑未正確配置,PyTorch將無法找到CUDA庫文件。在這種情況下,即便CUDA與Pytorch的安裝都是正確的,也會導(dǎo)致錯誤。

請按照如下步驟,將CUDA路徑添加到Linux系統(tǒng)的環(huán)境變量中(Windows平臺下的操作與之類似,這里以Linux為例,供參考):

  1. 在終端輸入如下指令:
vim ~/.bashrc

即使用vim文本編輯器打開~/.bashrc文件。也可以選擇通過其他的文本編輯器打開。

  1. 以vim為例,按下字母i,進(jìn)入編輯模式,在文件的末尾添加以下行:
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

其中,/usr/local/cuda為CUDA的安裝路徑。如果你的CUDA的安裝路徑不是/usr/local/cuda,請?zhí)钅愕膶嶋H路徑。

該操作會將CUDA的bin目錄添加到PATH環(huán)境變量中,以便系統(tǒng)可以找到CUDA可執(zhí)行文件,同時將CUDA的lib64目錄添加到LD_LIBRARY_PATH環(huán)境變量中,以便系統(tǒng)可以找到CUDA庫文件。

  1. 按下ESC,然后輸入:wq,之后按下回車,保存~/.bashrc文件。
  2. 在終端窗口中,運行以下命令以使環(huán)境變量更改生效:
source ~/.bashrc

該命令會重新加載.bashrc文件,使添加的環(huán)境變量生效。

  1. 檢查CUDA路徑是否成功添加到環(huán)境變量中。

在終端窗口中,運行以下命令:

echo $PATH
echo $LD_LIBRARY_PATH

上述命令將顯示環(huán)境變量的當(dāng)前值。檢查輸出中是否包含CUDA的路徑(/usr/local/cuda/bin和/usr/local/cuda/lib64),以確保添加成功。

如果輸出中不包含CUDA的路徑,或包含多個CUDA路徑,請繼續(xù)參考如下步驟操作。

  1. 排查環(huán)境變量問題。

如果環(huán)境變量的當(dāng)前值不正確,那么這個問題可能是由其他配置文件或環(huán)境變量引起的。除了~/.bashrc文件之外,還可能存在其他配置文件,這些文件也可能包含CUDA庫路徑的設(shè)置。打開這些文件并查找類似PATH、LD_LIBRARY_PATH的設(shè)置行,以確定是否在其他文件中設(shè)置了/usr/local/cuda路徑。

  1. 檢查其他環(huán)境變量。

除了LD_LIBRARY_PATH環(huán)境變量之外,還可能存在其他與CUDA相關(guān)的環(huán)境變量設(shè)置,這些設(shè)置可能導(dǎo)致/usr/local/cuda/lib64路徑被添加到LD_LIBRARY_PATH中。運行如下指令檢查是否存在其他環(huán)境變量與CUDA相關(guān):

env | grep CUDA

如果有的話,可能是由于執(zhí)行過其他的CUDA相關(guān)的操作引起的,可以參照下一條將其清除。

  1. 清除舊的環(huán)境變量。

如果曾經(jīng)安裝過其他版本的CUDA或執(zhí)行過其他與CUDA相關(guān)的操作,舊的環(huán)境變量設(shè)置可能仍然存在于系統(tǒng)中。可以手動清除這些環(huán)境變量,然后重新設(shè)置正確的CUDA庫路徑。

首先,運行如下指令:

env

這將列出所有當(dāng)前的環(huán)境變量。在輸出中查找與CUDA或舊版本相關(guān)的環(huán)境變量設(shè)置,使用unset命令來刪除指定的環(huán)境變量。例如,假設(shè)存在名為OLD_CUDA_PATH的環(huán)境變量,可以運行以下命令刪除它:

unset OLD_CUDA_PATH

對每個需要刪除的環(huán)境變量重復(fù)此步驟。注意,除非確定環(huán)境變量存在問題,否則不要輕易刪除環(huán)境變量。

  1. 重新加載配置文件。

運行指令:

source ~/.bashrc

注意,如果此時報錯:/bin/lesspipe: 1: /bin/lesspipe: basename: not found,可能是由于刪除了PATH環(huán)境變量,請參考此鏈接。

  1. 再次檢查環(huán)境變量。

運行env命令再次檢查環(huán)境變量,確保舊的環(huán)境變量已成功刪除。

可能3:PyTorch版本與CUDA版本不匹配

有些同學(xué)可能直接通過下面的指令安裝Pytorch:

pip install pytorch
conda install pytorch

這些指令都是不合適的,可能導(dǎo)致安裝的PyTorch版本與CUDA版本不匹配。也有些同學(xué)訪問Pytorch官網(wǎng),看到安裝指令之后直接復(fù)制粘貼,而沒有進(jìn)一步檢查Pytorch與CUDA的匹配性。

【一文解決】已安裝CUDA與Pytorch但torch.cuda.is_available()為False

更加推薦的安裝方式是,訪問Previous PyTorch Versions | PyTorch,找到與CUDA版本相符的Pytorch版本,再復(fù)制安裝。

【一文解決】已安裝CUDA與Pytorch但torch.cuda.is_available()為False

可能4:編譯問題

我沒有遇到過這種情況,我也不推薦使用源代碼編譯PyTorch。如果排查到這一步依舊沒有解決問題,建議首先更換Pytorch版本嘗試(例如由conda安裝改為pip安裝)。如果依舊無法解決,再參照使用源代碼編譯PyTorch的相關(guān)文章。

可能5:軟件包或庫沖突

為了避免這種情況,建議新建一個conda環(huán)境,在新的conda環(huán)境下安裝Pytorch。

寫在最后

上面五點是博主根據(jù)個人經(jīng)驗與網(wǎng)上的相關(guān)文章總結(jié)的,如果有補充,歡迎同學(xué)們在評論區(qū)討論。

如果這篇文章幫助到了你,希望能點贊或評論支持一下,大家的鼓勵是我持續(xù)創(chuàng)作的最大動力。文章來源地址http://www.zghlxwxcb.cn/news/detail-489859.html

到了這里,關(guān)于【一文解決】已安裝CUDA與Pytorch但torch.cuda.is_available()為False的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包