conda 使用小記

最近比較扎心,需要同時安裝pytorch和TensorFlow。我們買的GPU最現在比較頂配的,結果安裝的cuda版本比較高。

然後通過conda install tensorflow-gpu=1.9 方式懶人安裝法。後面再用conda 安裝pytorch自動升級了我的TensorFlow。

可是我不想升級TensorFlow啊,真心無語。

我們安裝的pytorch版本較早,然後他對應的cuda版本不能太新,這樣就會導致和TensorFlow現在需要的cuda版本衝突了。

但是安裝過程中又出現Torchvision失敗。不管了,直接gank。


PyTorch官網:http://pytorch.org/   由於官網各種點擊按鈕沒有反應,只能下載安裝

下載PyTorch

選擇舊版本安裝

找到所需版本,如上圖所示,下載cu80/torch-0.2.0.post3-cp27-cp27mu-manylinux1_x86_64.whl。其中,0.2.0表示PyTorch版本,cp27表示支持Python2.7,cu80表示支持CUDA 8.0。

安裝PyTorch
進入PyTorch的下載目錄,使用pip命令安裝:

pip install torch-0.2.0.post3-cp27-cp27m-manylinux1_x86_64.whl

或直接從鏈接安裝

pip install http://download.pytorch.org/whl/cu80/torch-0.2.0.post3-cp27-cp27mu-manylinux1_x86_64.whl

切記:在安裝之前請先將已經安裝的numpy卸載掉(嘗試過了,卸不掉),安裝PyTorch過程中會自動安裝numpy,不然會報ImportError: numpy.core.multiarray failed to import錯誤。就是這個坑,後面發現有人說去找到Linux對於的python文件自己改代碼,頭大了。所以放棄了,用conda建虛擬空間去安裝一個單獨的pytorch

安裝torchvision
pip install torchvision

驗證

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

若驗證通過,則PyTorch已經安裝成功。

 

 

1、使用conda卸載Pytorch,滅卵用任然可以import

  1. conda uninstall pytorch

  2. conda uninstall libtorch

2、使用pip卸載Pytorch,這個纔是真正的卸載

pip uninstall torch

ubuntu利用conda創建虛擬環境,並安裝cuda,cudnn,pytorch

cd到conda shell腳本安裝包所在目錄,安裝conda:bash Anaconda3-5.1.0-Linux-x86_64.sh

創建虛擬環境:conda create -n your_env_name python=3.6
使用 conda create -n your_env_name python=X.X(2.7、3.6等),anaconda 命令創建python版本爲X.X、名字爲your_env_name的虛擬環境。your_env_name文件可以在Anaconda安裝目錄envs文件下找到。 指定python版本爲2.7,注意至少需要指定python版本或者要安裝的包, 在不指定python版本時,自動安裝最新python版本。
————————————————

激活虛擬環境:source activate your_env_name

添加conda國內鏡像:

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
conda config --set show_channel_urls yes

安裝cuda:conda install cudatoolkit=8.0 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/linux-64/

安裝cudnn:conda install cudnn=7.0.5 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/linux-64/

安裝pytorch指定版本:conda install pytorch=0.3.0 torchvision=0.2.0 -c soumith

根據電腦環境,按照pytorch官網對應代碼安裝

torch官網:https://pytorch.org/get-started/locally/

以上操作之後,有報錯了

在ubuntu下安裝pytorch1.0 + cuda10.1 + python3.6 ,運行torchvision時出現問題

 libcudart.so.10.0: cannot open shared object file: No such file or directory

 

原因:我的Ubuntu下安裝的是cuda-10.1,但安裝pytorch時官網給的cuda-10.1的選項,只能安裝cuda-10.0版的pytorch,另外官網給的安裝命令 conda install pytorch torchvision cudatoolkit=10.1 -c pytorch  居然就是有bug啊,沒發現呢?
 

百度一番,有人提出下面的操作:

解決步驟:

1.  如果你按照官網命令安裝,出現上述問題後,輸入下面三條命令即可,參考自這位博主

sudo ln -s /usr/local/cuda-10.1/lib64/libcudart.so.10.1 /usr/lib
sudo ln -s /usr/local/cuda-10.1/lib64/libcudart.so.10.1 /usr/lib/libcudart.so.10.0
sudo ldconfig

 

2. 如果你跟我一樣修改爲10.1了,在執行第一步之後會出現

ImportError:/usr/lib/libcudart.so.10.0:version 'libcudart.so.10.0' not..

參考自github,需要重新安裝 cudatoolkit-10.0,執行以下命令

conda install -c anaconda cudatoolkit==10.0
 

3. 如果執行第二步時出現 PackageNotFoundError: Packages missing in current channels...

那是因爲包的名字不對,則首先執行

anaconda search -t conda cudatoolkit
然後找到合適的安裝包名稱如 anaconda/cudatoolkit,接着執行

anaconda show anaconda/cudatoolkit
會顯示多個版本,選擇合適的版本,修改並執行顯示的最後一行命令

conda install --channel https://conda.anaconda.org/anaconda cudatoolkit==10.0.130
4. 如果執行第三步跟我一樣沒有指定版本,不知道爲啥pytorch對應的cuda版本就變成了9.0, 可能跟我一樣在運行torchvision時還會出現Pytorch has CUDA Version=9.0 and torchvision has CUDA Version=10.0...

首先運行

pip show torch
找到pytorch的安裝目錄,然後在 {安裝目錄}/torch/version.py中,修改cuda變量爲你剛剛安裝的cudatoolkit版本,我的是

cuda = '10.0.130'

做完上面的操作,還是報錯了。

ImportError: /home/anaconda3/envs/maskrcnn-benchmark/lib/python3.6/site-packages/torchvision/_C.cpython-36m-x86_64-linux-gnu.so: undefined symbol: _ZN3c1019UndefinedTensorImpl10_singletonE

無語了,他們自家的東西居然還有這bug,做到這裏,已經心態爆炸了,直接刪了conda虛擬環境,從頭再建個新conda環境。

原因:torchvision的版本安裝過程丟失了某些文件,這個就是Linux系統的坑,有時候網不好,就失敗。隔了個半天莫名其妙地又可以 了。有時候報個奇怪的錯,放一段 時間再安裝突然不報錯了。

命令:pip install torchvision==0.2.2

安裝的過程中會卸載之前安裝的版本。

其實具體完整方法如下:

/home/developer/anaconda3/lib/python3.6/site-packages/torch/_C.cpython-36m-x86_64-linux-gnu.so: undefined symbol: _Z11libshm_initPKc
 

cd /anaconda3/lib/python3.6/site-package

rm -rf torch*
conda install torchvision
重裝 完成

 

————————————————

上面的bug就是按照最後那一句來的,結果居然有bug,無語了。後面我仔細看了一下,有個地方發現上面的問題證據。

這裏證實上面說的他們只有cuda10.0,所以導致bug。然後conda自己裝吧,還出現Torch和Torchvision版本不兼容的bug。

於是我只能在這個界面找了下面的命令安裝,果然OK了。 

# CUDA 10.0
conda install pytorch==1.1.0 torchvision==0.3.0 cudatoolkit=10.0 -c pytorch

 上面的操作是我新建了conda環境下的安裝方法:

退出虛擬環境:
使用如下命令即可退出創建的虛擬環境

Linux:  source deactivate your_env_name(虛擬環境名稱)

Windows:deactivate env_name,也可以使用`activate root`切回root環境

刪除虛擬環境:
刪除環境:
使用命令conda remove -n your_env_name(虛擬環境名稱) --all, 即可刪除。

刪除虛擬環境中的包:
使用命令conda remove --name $your_env_name  $package_name(包名) 即可。

conda常用命令
conda list:查看安裝了哪些包。
conda install package_name(包名):安裝包
conda env list 或 conda info -e:查看當前存在哪些虛擬環境
conda update conda:檢查更新當前conda

驗證

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

若驗證通過,則PyTorch已經安裝成功。

nvcc -V 查看cuda版本信息。

import tensorflow as tf

print(tf.__version__) #查看TensorFlow版本信息

如何查看當前pytorch版本

有時候我們想要知道當前的pytorch版本,我們可以使用如下代碼打印出當前的版本:

  1. import torch

  2. print(torch.__version__)

————————————————
https://www.cnblogs.com/haiyang21/p/11216025.html

https://blog.csdn.net/miao0967020148/article/details/80400357
原文鏈接:https://blog.csdn.net/sizhi_xht/article/details/80964099

原文鏈接:https://blog.csdn.net/sinat_31987445/article/details/90714659
原文鏈接:https://blog.csdn.net/kaixinjiuxing666/article/details/80321124
原文鏈接:https://blog.csdn.net/q295684174/article/details/79002952

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章