配置pytorch環境
- 1. 命令一鍵式安裝
- 2.源碼安裝
- 問題1
- 問題2
- 問題3
- 問題4
- 3.克隆一個已有環境,帶pytorch
- 4.GPU驅動版本不對
在實際開發中,想要在自己的機子上跑別人的代碼;或者,在新的機子上跑自己的代碼,總是面臨著環境配置的問題。python配置環境時最主要的就是庫的配置。配置環境的過程中會出現各種各樣的狀況,環境配置完全后也會應為庫文件版本的不同而導致各種問題。本文記錄了在最近一次環境配置過程中踩過的種種神坑。
1. 命令一鍵式安裝
官網命令行一鍵安裝:https://pytorch.org/
conda install pytorch torchvision cudatoolkit=9.0 -c pytorch
如果網不好的話安裝著安裝著,輸出提示:An HTTP error occurred when trying to retrieve this URL.
2019年conda 相繼關閉了清華和中科大的鏡像源,所以通過在官網下載速度太慢,此情此景下:嘗試用source安裝,安裝過程中遇到各種奇葩問題,總結如下:
2.源碼安裝
問題1
問題:沒有安裝git
The program ‘git’ is currently not installed. To run ‘git’ please ask your administrator to install
解決:終端上安裝
sudo apt-get install git
問題2
問題:git緩存不夠大
error: RPC failed; curl 56 GnuTLS recv error (-54): Error in the pull function.
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed
fatal: clone of ‘https://github.com/eigenteam/eigen-git-mirror.git’ into submodule path ‘third_party/eigen’ failed
參考文檔:https://blog.csdn.net/qq_34121797/article/details/79561110
問題3
問題:git 克隆到一半,因為各種原因(網不好,突然斷電,緩存不夠大)終止克隆,想要繼續下載。
解決方案:
~/source/$ cd pytorch#進入對應的倉庫目錄底下,更新一遍
~/source/pytorch$ git submodule update --init --recursive
參考文檔:https://blog.csdn.net/kingroc/article/details/86526150
問題4
File “setup.py”, line 749, in
build_deps()
File “setup.py”, line 323, in build_deps
cmake=cmake)
File “/home/chenyy/pytorch/tools/build_pytorch_libs.py”, line 61, in build_caffe2
rerun_cmake)
File “/home/chenyy/pytorch/tools/setup_helpers/cmake.py”, line 330, in generate
self.run(args, env=my_env)
File “/home/chenyy/pytorch/tools/setup_helpers/cmake.py”, line 107, in run
check_call(command, cwd=self.build_dir, env=env)
File “/home/chenyy/anaconda3/lib/python3.6/subprocess.py”, line 286, in check_call
retcode = call(*popenargs, **kwargs)
File “/home/chenyy/anaconda3/lib/python3.6/subprocess.py”, line 267, in call
with Popen(*popenargs, **kwargs) as p:
File “/home/chenyy/anaconda3/lib/python3.6/subprocess.py”, line 709, in init
restore_signals, start_new_session)
File “/home/chenyy/anaconda3/lib/python3.6/subprocess.py”, line 1344, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: ‘cmake’: ‘cmake’
(conda install numpy ninja pyyaml mkl mkl-include setuptools cmake cffi typing)
解決:確保你的環境中有以上支持包,并且確認該環境被激活,(如果環境沒有激活就會被自己蠢死)
conda activate python36
每次裝都有驚喜,會發現不同的錯誤,真是神了。
下面幾篇文章都總結了源碼安裝過程中會出現的錯誤:
https://blog.csdn.net/hungryof/article/details/78187512
https://blog.csdn.net/tanmx219/article/details/86505741
總結的了他配置過程中的種種錯誤,挺好的。還提供了源碼安裝的卸載方法,估計之后的源碼安裝和這個差不多。
3.克隆一個已有環境,帶pytorch
配置好pytorch 之后發現還是不能用,最后能想到的就是GPU的版本不對
解決方案,克隆一個已有的環境
參考文檔:https://www.jianshu.com/p/b86c17057da8
1.將已有的環境打包成.yaml文件(切換到指定的文件夾,文件會在終端正在工作的文件夾下面生成一個.yaml文件)
conda env export > environment.yaml
2.生成指定名字的環境:
conda env create --name python362 -f environment1.yaml
->出現問題1:
Error: ‘conda’ can only be installed into the root environment
->解決:打開對應的環境,去除一些鏈接項,再生成.yaml文件再操作就可以了
參考文檔:https://blog.csdn.net/lazybones_3/article/details/79501243
4.GPU驅動版本不對
按照:conda install pytorch torchvision cudatoolkit=10.1命令裝完,發現cuda并不能用:
>>> import torch
>>> torch.cuda.is_available()
False
運行需要GPU的程序,報錯信息如下:
no CUDA-capable device is detected Traceback (most recent call last):
解決:
1.查看機子的合適驅動
ubuntu-drivers devices
2.安裝合適驅動
sudo apt-get install nvidia-xxx #xxx 為版本號
3.安裝完后重啟
sudo reboot
4.查看驅動狀態
sudo nvidia-smi
參考資料:https://blog.csdn.net/flowrush/article/details/80254301
在2.安裝驅動的時候,又報了一個錯:E: Sub-process /usr/bin/dpkg returned an error code (1)
采用下面博文方法二修復了:
sudo apt-get update --fix-missing
sudo apt-get autoremove && sudo apt-get clean && sudo apt-get install -f
修復后重啟,驅動就合適了,之前裝的帶cuda版本的pytorch環境動能用了。
參考資料:https://blog.csdn.net/sunshinegirl168660/article/details/72934398