參考 https://blog.csdn.net/weixin_42401701/article/details/80820778 和
https://www.cnblogs.com/lllcccddd/p/10661966.html
一些相關的命令
- conda update -n base conda # 更新 conda
- conda config --show channels # 顯示當前下載源
- conda config -set show_channel_urls yes # 下載時顯示下載源
- conda create --name Pytorch1.3 python=3.7 # 創建新環境
- conda create --name Pytorch1.3 --clone base # 基於已有環境 創建新環境
- environment location: /home/guixj/anaconda3/envs/Pytorch1.3 # 提示的環境安裝位置
- conda install --name base beautifulsoup4 你必須告訴conda你要安裝環境的名字( --name base)否則它將會被安裝到當前環境中(https://blog.csdn.net/yimingsilence/article/details/79388205)
- conda config --show 顯示當前 conda 的 config
- conda env list 會列出所有的環境,當前環境前面有*符號
- conda activate Pytorch1.3 # 切換環境 to activate this environment
- conda deactivate # to deactivate this environment
conda env remove -n env-name #
刪除指定的環境 https://www.jianshu.com/p/777ea4b8d4e2
有空要讀讀 conda 的官方說明文檔(https://conda.io/projects/conda/en/latest/user-guide/getting-started.html)
下面是一些踩過的坑
1. base 和 Pytorch1.3 兩個環境,有時 Conda activate Pytorch1.3 顯示錯誤,這時先 source activate, 進入 base 環境,再 conda deactivate, 再 Conda activate Pytorch1.3 便可以了。https://blog.csdn.net/qq_33825817/article/details/88959785
2. Pytorch1.3環境裝的是 pytorch1.3的版本,然后打開python import torch 提示 libmkl_intel_lp64.so 一個動態鏈接庫文件找不到,參照博客 https://www.cnblogs.com/denny402/p/10848506.html ,使用
sudo find /home -name libmkl_intel_lp64.so
但我的情況下顯示兩個
➜ ~ sudo find /home -name libmkl_intel_lp64.so [sudo] password for guixj: /home/guixj/anaconda3/pkgs/mkl-2019.3-199/lib/libmkl_intel_lp64.so /home/guixj/anaconda3/lib/libmkl_intel_lp64.so
第一次使用了 /home/guixj/anaconda3/lib/libmkl_intel_lp64.so,將
export LD_LIBRARY_PATH=/home/guixj/anaconda3/lib:$LD_LIBRARY_PATH
導入到 .zshrc 文件,導致打開 python import torch print(torch.__verison__) 仍然顯示先前1.0.1 的版本
然后重寫.zshrc文件,使用 export LD_LIBRARY_PATH=home/guixj/anaconda3/pkgs/mkl-2019.3-199/lib:$LD_LIBRARY_PATH。
再導入時,顯示 numpy 未安裝 https://blog.csdn.net/Sunny_Future/article/details/85530763
ImportError: numpy.core.multiarray failed to import
安裝 numpy 后, 終於導入的pytorch 是 Pytorch1.3。
另外有一個問題,用conda 離線包安(.tar.bz) 裝新的 python 虛擬環境,找不到 anaconda 之前的包,例如 numpy, pillow 。
如果只有一個 base 環境,先離線裝 anaconda, 再離線裝 pytorch, torchvision 沒有問題。
但是,如果安裝新的虛擬環境,用離線包安裝 pytorch, torchvision,會導致很多依賴的包沒有安裝;
而用 conda install pytorch 在線裝,可以自動裝上依賴的包。
最后不同版本的 pytorch 和 torchvision 需要分別處理。 可以不 uninstll, 而直接 instsll 新的包,會直接覆蓋更新,
例如 conda install torchvision=0.4.2 導致了 pytorch 版本也進行了更新
為了更新torchvision版本,遠程機器用離線包安裝 pytorch1.3 + torchvision0.4.2,沒有先卸載 pytorch1.0, 而是直接覆蓋安裝,然后顯示
Python 3.7.3 (default, Mar 27 2019, 22:11:17) [GCC 7.3.0] :: Anaconda, Inc. on linux Type "help", "copyright", "credits" or "license" for more information. >>> import torch Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/root/anaconda3/lib/python3.7/site-packages/torch/__init__.py", line 81, in <module> from torch._C import * ImportError: libnvToolsExt.so.1: cannot open shared object file: No such file or directory >>> import torchvision Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/root/anaconda3/lib/python3.7/site-packages/torchvision/__init__.py", line 3, in <module> from torchvision import models File "/root/anaconda3/lib/python3.7/site-packages/torchvision/models/__init__.py", line 1, in <module> from .alexnet import * File "/root/anaconda3/lib/python3.7/site-packages/torchvision/models/alexnet.py", line 1, in <module> import torch File "/root/anaconda3/lib/python3.7/site-packages/torch/__init__.py", line 81, in <module> from torch._C import * ImportError: libnvToolsExt.so.1: cannot open shared object file: No such file or directory
個人猜測是當前 cudnn 的版本不對,使用 conda list 顯示
pytorch 1.3.0 py3.7_cuda10.0.130_cudnn7.6.3_0 <unknown> torchvision 0.4.2 py37_cu100 <unknown>
但換成 cudnn7.6.3 后仍未解決。
google 了一下,發現是個bug,
按照pytorch 官方人員的說法,使用 conda install cudatoolkit
https://github.com/pytorch/pytorch/issues/5905#issuecomment-374600969
反倒是把 python 給弄崩潰了:
root@ubuntu:~/guixj# python Could not find platform independent libraries <prefix> Could not find platform dependent libraries <exec_prefix> Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>] Fatal Python error: initfsencoding: Unable to get the locale encoding ModuleNotFoundError: No module named 'encodings' Current thread 0x00007f0a2126c740 (most recent call first): Aborted (core dumped)
只好卸載了 anaconda https://blog.csdn.net/qq_37764129/article/details/100000064
然后重新安裝anaconda 和 pytorch torchvision, 但是仍有上述問題。然后看到了一個博客
https://devtalk.nvidia.com/default/topic/1067246/how-can-i-install-the-pytorch-/?offset=2
export PATH="/usr/local/cuda-10.0/bin:$PATH" export LD_LIBRARY_PATH="/usr/local/cuda-10.0/lib64:LD_LIBRARY_PATH"
最終問題解決了。原來這個問題其實是由於 安裝 cuda 時沒有把地址寫進去導致的。
2019.12.3
將遠程服務器的pytorch 和 torchvision 的版本更新后,發現原來可以在 pytorch1.0.1 和 torchvision0.2.1 上運行的代碼居然報錯,顯示 inception-resnetv2 有問題
==> creating Inception_RenetV2 Total params: 54.38M Epoch: [1 | 1024] LR: 0.001000 Traceback (most recent call last): File "main.py", line 266, in <module> MixMatch_main(all_data_name, args.ratio, num) File "/root/guixj/2019.11.23WebVision_dataset/MixMatch_train_WebVision.py", line 168, in MixMatch_main train_loss, train_loss_x, train_loss_u = train(labeled_trainloader, unlabeled_trainloader, model, optimizer, ema_optimizer, train_criterion, epoch, use_cuda) File "/root/guixj/2019.11.23WebVision_dataset/MixMatch_train_WebVision.py", line 264, in train outputs_u = model(inputs_u) File "/root/anaconda3/lib/python3.7/site-packages/torch/nn/modules/module.py", line 541, in __call__ result = self.forward(*input, **kwargs) File "/root/guixj/2019.11.23WebVision_dataset/Inception_resnetV2.py", line 332, in forward x = self.logits(x) File "/root/guixj/2019.11.23WebVision_dataset/Inception_resnetV2.py", line 325, in logits x = self.avgpool_1a(features) File "/root/anaconda3/lib/python3.7/site-packages/torch/nn/modules/module.py", line 541, in __call__ result = self.forward(*input, **kwargs) File "/root/anaconda3/lib/python3.7/site-packages/torch/nn/modules/pooling.py", line 554, in forward self.padding, self.ceil_mode, self.count_include_pad, self.divisor_override) RuntimeError: Given input size: (1536x5x5). Calculated output size: (1536x0x0). Output size is too small
然后再次覆蓋安裝為原來的版本,發現又一次好了。
2020.6.20
當前電腦的 pytorch 環境的版本是:cuda10.0 + py3.7 + pytorch1.0.0 + torchvision 0.2.1
由於torchvision 0.3 之后 torchvision.dataset.CIFAR10 和 CIFAR100 的代碼發生了改變(增加了 .data, .targets), 一些代碼無法在 torchvision 0.2.1上運行,例如 mixmatch 的代碼 和 LDAM 的代碼。為了向后兼容,決定使用最新的代碼寫法,因此准備新安裝一個環境。
做法如下:
- 當前基礎環境是:cuda10.0 + python 3.7。
- 首先 copy 原環境到一個新環境中:conda create --name Pytorch1.4 --clone base #
- 嘗試使用類似官網的一行命令安裝,沒有成功,似乎不好指定 cuda 版本和 pytroch、torchvision 的版本(https://pytorch.org/get-started/previous-versions/)。
- copy 原環境后導致使用最新的命令安裝,一直報錯,顯示不兼容。
5.從清華鏡像網站 https://mirrors.tuna.tsinghua.edu.cn/ 下載離線安裝包,嘗試安裝另一個版本:
py37 + pytorch1.4.0 + torchvision 0.4.0
最終使用離線安裝包,直接覆蓋安裝最終成功。
2020.7.7 為了在自己服務器跑 DIEN 的代碼,需要安裝 py2.7+tf1.4 環境
在個人服務器 anaconda3 配置虛擬 py2.7+tf1.4 環境:https://blog.csdn.net/u013313168/article/details/67828746
雖然是 anaconda3, 但仍然可以裝 py2.7 環境。
conda create -n py2.7_tf1.4 python=2.7
conda activate py2.7_tf1.4
conda install tensorflow-gpu=1.4
查看 cuda 版本和 cudnn 版本 https://blog.csdn.net/qq_38451119/article/details/83302585
cat /usr/local/cuda/version.txt # 查看 cuda 版本 cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2 # 查看 cudnn 版本
# 但是如果有在同一台電腦上多個不同環境配置了不同版本的 cuda, 結果輸出的是仍然是最初的 base 環境對應的 cuda 或者 nvidia-driver 對應的 cuda。
conda list # 會顯示與此環境搭配的 cuda 版本和 cudnn 版本, 例如在 py2.7+tf14.0 環境中,使用 conda list, 會顯示 cudatoolkit-8.0 + cudnn-6.0.21
由於 py2.7 + tf14.0 需要 cuda 8.0, 而我當前服務器是 cuda10.0, 因此其會為這個環境 py2.7 + tf.14.0 自動安裝 cudatoolkit-8.0 + cudnn-6.0.21, 並且還自動安裝上了 numpy, tensorflow-tensorboard
Downloading and Extracting Packages six-1.10.0 | 16 KB | ##################################################### | 100% libprotobuf-3.4.0 | 4.3 MB | ##################################################### | 100% mkl-2017.0.3 | 129.5 MB | ##################################################### | 100% tensorflow-tensorboa | 1.6 MB | ##################################################### | 100% mock-2.0.0 | 96 KB | ##################################################### | 100% cudnn-6.0.21 | 178.2 MB | ##################################################### | 100% numpy-1.13.1 | 6.8 MB | ##################################################### | 100% tensorflow-gpu-base- | 113.8 MB | ##################################################### | 100% cudatoolkit-8.0 | 322.4 MB | ##################################################### | 100% werkzeug-0.12.2 | 408 KB | ########################################################################################################################################################################################## | 100% protobuf-3.4.0 | 469 KB | ########################################################################################################################################################################################## | 100% html5lib-0.9999999 | 183 KB | ########################################################################################################################################################################################## | 100% bleach-1.5.0 | 21 KB | ########################################################################################################################################################################################## | 100% enum34-1.1.6 | 53 KB | ########################################################################################################################################################################################## | 100% tensorflow-gpu-1.4.1 | 3 KB | ########################################################################################################################################################################################## | 100% funcsigs-1.0.2 | 18 KB | ########################################################################################################################################################################################## | 100% pbr-1.10.0 | 100 KB | ########################################################################################################################################################################################## | 100% markdown-2.6.9 | 98 KB | ########################################################################################################################################################################################## | 100% blas-1.0 | 6 KB | ########################################################################################################################################################################################## | 100% Preparing transaction: done Verifying transaction: done Executing transaction: done
但這里可能沒有安裝 keras, 需要在使用命令來安裝 keras
conda install keras # 安裝的是 keras-2.0.5, 對標另一台機器上是 Keras 2.1.2
但這里有一個問題, 會自動安裝 tensorflow cpu 版本,tensorflow1.3.0, tensorflow-base1.3.0 並會造成問題。
Downloading and Extracting Packages
mako-1.0.6 | 108 KB | ##################################################### | 100%
backports.weakref-1. | 7 KB | ##################################################### | 100%
theano-0.9.0 | 3.8 MB | ##################################################### | 100%
markupsafe-1.0 | 31 KB | ##################################################### | 100%
tensorflow-1.3.0 | 7 KB | ##################################################### | 100%
scipy-0.19.1 | 35.2 MB | ##################################################### | 100%
nose-1.3.7 | 194 KB | ##################################################### | 100%
backports-1.0 | 1 KB | ##################################################### | 100%
pygpu-0.6.9 | 1.3 MB | ##################################################### | 100%
pyyaml-3.12 | 313 KB | ##################################################### | 100%
keras-2.0.5 | 377 KB | ##################################################### | 100%
hdf5-1.8.17 | 2.0 MB | ##################################################### | 100%
mkl-service-1.1.2 | 15 KB | ##################################################### | 100%
yaml-0.1.6 | 246 KB | ##################################################### | 100%
h5py-2.7.0 | 2.5 MB | ##################################################### | 100%
tensorflow-base-1.3. | 35.9 MB | ##################################################### | 100%
libgpuarray-0.6.9 | 211 KB | ########################################################################################################################################################################################## | 100%
libgfortran-3.0.0 | 281 KB | ########################################################################################################################################################################################## | 100%
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
# 使用 conda uninstall tensorflow-base 導致
The following packages will be REMOVED: keras-2.0.5-py27_0 tensorflow-1.3.0-0 tensorflow-base-1.3.0-py27h0dbb4d0_1
查看 我之前的一篇博客,決定換用 pip 安裝,先使用
(py2.7_tf1.4) ➜ 2020.7.7sli_rec-master conda uninstall protobuf WARNING: The conda.compat module is deprecated and will be removed in a future release. Collecting package metadata: done Solving environment: | Warning: 4 possible package resolutions (only showing differing packages): - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free::certifi-2016.2.28-py27_0, https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free::openssl-1.0.2l-0 - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free::openssl-1.0.2l-0, https://mirrors.ustc.edu.cn/anaconda/pkgs/free::certifi-2016.2.28-py27_0 - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free::certifi-2016.2.28-py27_0, https://mirrors.ustc.edu.cn/anaconda/pkgs/free::openssl-1.0.2l-0 - https://mirrors.ustc.edu.cn/anaconda/pkgs/free::certifi-2016.2.28-py27_0, https://mirrors.ustc.edu.cn/anaconda/pkgs/free::openssl-1.0.2ldone ==> WARNING: A newer version of conda exists. <== current version: 4.6.11 latest version: 4.8.3 Please update conda by running $ conda update -n base -c defaults conda ## Package Plan ## environment location: /home/guixj/anaconda3/envs/py2.7_tf1.4 removed specs: - protobuf The following packages will be REMOVED: protobuf-3.4.0-py27_0 tensorflow-gpu-1.4.1-0 tensorflow-gpu-base-1.4.1-py27ha7e2fe3_0 tensorflow-tensorboard-0.1.5-py27_0 Proceed ([y]/n)? y
刪去原來所有的 tensorflow 的環境。
然后用 pip 同時安裝 keras, tensorflow-gpu
pip install tensorflow-gpu==1.4.0 keras==2.1.2 -i https://pypi.tuna.tsinghua.edu.cn/simple/
最終成功了。
2020.7.9 在遠程服務器上使用 pip 安裝 tenforlow-gpu1.4, 使用相同的命令,但是失敗了
於是,決定離線安裝 tensorflow 版本,在網站(https://pypi.org/project/tensorflow-gpu/1.4.0/#files)
下載文件 tensorflow_gpu-1.4.0-cp27-cp27mu-manylinux1_x86_64.whl (似乎在線安裝一行命令自動安裝,也是下載的此文件?!)
但仍然不成功,而且要配置 cuda, cudnn 特定版本,比較麻煩。
決定換一個 tensorflow-gpu 版本,安裝 tf1.14.0,
兩個大坑:
1. 清華鏡像源路徑設置出錯了,導致一直網絡連接錯誤,配置虛擬環境時 python2.7 都無法下載。 https://cloud.tencent.com/developer/article/1572996 、https://blog.csdn.net/u010099177/article/details/93220251
2. 配置 py2.7 環境時,居然錯誤安裝了 python 3.7 https://blog.csdn.net/lsf_007/article/details/87931823
為 conda 設置好了 清華源路徑,終於可以用 conda 配置虛擬環境,裝上 python2.7
使用 pip 安裝 tensorflow-gpu 一直沒有成功。
(py2.7_tf1.4) root@ubuntu:~/guixj/2020.7.7sli_rec-master# pip install tensorflow-gpu==1.4.0 WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7fcd56199690>: Failed to establish a new connection: [Errno 101] Network is unreachable')': /simple/tensorflow-gpu/ WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7fcd56199590>: Failed to establish a new connection: [Errno 101] Network is unreachable')': /simple/tensorflow-gpu/
直接用 conda install tensorflow-gpu, 讓其自動設置一個版本, 結果這次終於開始安裝了,但安裝的是 tensorflow-gpu = 1.3.0
奇怪的時,即使進了虛擬環境, 用 python 命令還是 py3, 需要用 python2 命令,采用 python2,這個不同於我自己的服務器。我自己的服務器會自動切換 python 是代表 python2 or python3
需要把運行腳本中的所有 python 改為 python2。
服務器似乎連上外網了,可以下 Amazon standford 數據, 而且 ping baidu.com 也能通
一直失敗,最大問題在於虛擬環境中 python 仍然是python2, 導致 pip install tensorflow-gpu==1.4.0, 一直以為是要安裝 py3.7 對應的版本tensorflow-gpu,一直沒找到。
最終決定完全刪去原來的 anaconda3 環境, 重新安裝 anaconda2 從清華源下載,https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
直接在 linux 中,使用如下命令,即可下載anaoncda 包 (沒必要先用 windows 下載,然后再傳上去)
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda2-2019.10-Linux-x86_64.sh
然后在 ~/.bashrc 把 conda 路徑寫進去。
這時候使用 pip 則是 對應 python2 了,再使用
pip install tensorflow-gpu==1.4.0 keras==2.1.2 -i https://pypi.tuna.tsinghua.edu.cn/simple/
成功安裝了tensorflow 1.4(突然想到,之前使用 pip2, 是否也可能成功?!)
但仍然有一個問題報錯,libcudart.so.8.0: cannot open shared object file: No such file or directory
這是因為沒有安裝對應版本的 cuda 8.0 和 cudnn 6.0
參考 blog, https://blog.csdn.net/chengyq116/article/details/106156748,其實是可以直接用 conda 安裝 cuda8.0 和 cudnn 對應的版本。
使用 conda 安裝 tensorflow-gpu == 1.4.0 會報錯,顯示沒找到,但是可以使用 conda 安裝 cudatoolkit、 cudnn 工具包。
conda install tensorflow-gpu=1.4.1 cudatoolkit=8.0 cudnn=6.0 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/linux-64/ # 失敗,找不到 tensorflow-gpu==1.4.1 conda install cudatoolkit=8.0 cudnn=6.0 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/linux-64/ # 成功
但最終 GPU 還是沒有用起來,可能還是存在某些問題。不過多核的 cpu 跑起實驗來也非常快,就只用 cpu 好了。
2020.7.20 重新租用學校雲服務器,不過這次租了個 32 核 cpu 的,不用 gpu.
安裝了 GPU版的,沒有裝 cuda, 會報錯。
先卸載
然后直接安裝 cpu 版的 tensorflow.
成功!