Ubuntu20.04安裝pytorch檢查cuda

安裝pytorch

pytorch官網(wǎng):https://pytorch.org/get-started/locally/

pytorch

torch-torchvision-python版本對應關系

torch-torchvision-python

cuda-torch對應關系

cuda-torch

pip安裝(推薦)

用anaconda安裝torch。新建虛擬環(huán)境后,直接在pytorch官網(wǎng)官網(wǎng)鏈接找到“Install”按鈕。這里一鍵搞定torch,torchvision,cudatoolkit等等,不需要另外安裝cuda(筆者在沒有單獨安裝CUDA情況下,成功運行了torch-gpu,很絲滑),并且版本都會自己對于對應好,原因是anaconda都集成在虛擬環(huán)境里面了,統(tǒng)一管理各個依賴包。有鏡像源的情況下,去掉末尾的“-c pytorch”會更快,否則經(jīng)常容易下載超時。不過conda下載超時時間可以設置。

默認cuda版本
pip3 install torch torchvision torchaudio
更改cuda版本
pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu113
pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu116

如果不是用anaconda來管理環(huán)境,就要仔細對照torch、torchvision、cuda之間的對應關系。

下載安裝包安裝

安裝包下載地址:https://download.pytorch.org/whl/torch_stable.html
根據(jù)cuda版本-torch版本-python版本找尋相應的下載文件,進行下載。然后到whl文件下載的位置,使用 pip install xxx.whl 進行安裝即可。

安裝完成后,我們要進行檢查,以確保torch和cuda可以正常使用。

檢查cuda

  1. 是否可以用顯卡:
torch.cuda.is_available()

output

True
  1. 顯卡個數(shù):
torch.cuda.device_count()

output

1
  1. 顯卡名字:
torch.cuda.get_device_name(0)

output

'NVIDIA GeForce RTX 3080'
  1. 測試cuda版本和gpu是否匹配
torch.zeros(1).cuda()

如果是不匹配的話,就會得到一開始的這個報錯信息:

NVIDIA GeForce RTX 3080 with CUDA capability sm_86 is not compatible with the current PyTorch installation.
The current PyTorch install supports CUDA capabilities sm_37 sm_50 sm_60 sm_70.
If you want to use the NVIDIA GeForce RTX 3080 GPU with PyTorch, please check the instructions at https://pytorch.org/get-started/locally/

通過最近裝cuda環(huán)境研究發(fā)下僅僅通過前三步命令是不能夠測試cuda是否可以正常使用的,第四步才是最關鍵的。
解決方法:新建一個conda環(huán)境,使用pip安裝pytorch時指定cuda版本:

pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu113

這樣安裝出來cuda就是11.3的,可以正常使用RTX3080。
值得一提的是,若非新建conda環(huán)境而是在原有conda環(huán)境的基礎上卸載pytorch再重新運行上面的指令進行安裝,即使是cu113的也無法解決該錯誤。猜測是conda在本地緩存了torch的安裝包文件而非從cu113的網(wǎng)址上重新下載。因此最好的解決方案是新建conda環(huán)境。
之后遇到了一個新的報錯:

    model = PPO.load("/Volumes/easystore/rerun/pong_v1/policy")
  File "/Users/dd/miniconda3/envs/tf_new/lib/python3.8/site-packages/stable_baselines3/common/base_class.py", line 645, in load
    model._setup_model()
  File "/Users/dd/miniconda3/envs/tf_new/lib/python3.8/site-packages/stable_baselines3/ppo/ppo.py", line 152, in _setup_model
    self.clip_range = get_schedule_fn(self.clip_range)
  File "/Users/dd/miniconda3/envs/tf_new/lib/python3.8/site-packages/stable_baselines3/common/utils.py", line 88, in get_schedule_fn
    assert callable(value_schedule)
AssertionError

也就是在PPO加載模型的時候出現(xiàn)了一個從未見過的報錯,于是搜了一波
見github issue:
https://github.com/DLR-RM/stable-baselines3/issues/403
簡單來說,因為訓練模型時的python版本和加載模型時的python版本不一致,所以在調用stable_baselines3的時候報錯了。應該是用來保證訓練環(huán)境和測試環(huán)境的一致性的。
解決方法:按照訓練時的環(huán)境配置重新配置測試環(huán)境

卸載pytorch

使用conda卸載pytorch

conda uninstall pytorch
conda uninstall libtorch

使用pip卸載pytorch

pip uninstall torch torchvision torchaudio

reference
https://www.cnblogs.com/huangshiyu13/p/16467225.html
https://blog.csdn.net/qq_39763246/article/details/122250062
https://blog.csdn.net/mao_hui_fei/article/details/112078113

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容