遠程Linux服務器裝Anaconda&指定版本TensorFlow
說明:
由於疫情影響,原先使用的服務器已斷電,故重選了一台服務器對環境重選進行搭建,正好補上這篇博文。
01 下載Anaconda3
- 進入清華開源軟件鏡像站,其網址如下:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
- 下載相應的版本信息:
此處可通過命令
uname -a
查看系統的版本等信息:zcc@new-gpu:/home$ uname -a Linux new-gpu 4.4.0-78-generic #99-Ubuntu SMP Thu Apr 27 15:29:09 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
- 通過
Xftp
將下載好的軟件上傳到服務器上
02 安裝
-
定位到
Anaconda3-2019.10-Linux-x86_64.sh
所在路徑 -
在命令窗口中輸入:
bash Anaconda3-2019.10-Linux-x86_64.sh
進行安裝- 安裝過程中根據相應提示,輸入enter/yes等確認操作
-
安裝過程很快速,安裝完成后,提示:
Thank you for installing Anaconda3!
-
環境激活:輸入命令
source ~/.bashrc
,激活環境后,默認進入base
環境下- 如:
(base) zcc@new-gpu:~$
若無法通過該命令激活環境,則采取下列操作:
vim ~/.bashrc
- 在最后一行加上:
export PATH=$PATH:/你的路徑/anaconda3/bin
- 保存后再運行
source ~/.bashrc
- 如:
-
驗證是否安裝成功:輸入命令
conda --version
,查看是否能查看安裝版本-
(base) zcc@new-gpu:~$ conda --version conda 4.7.12
-
上述版本的
Anaconda
安裝后,默認安裝了python3
- 鏡像源的修改:各種鏡像源的更換
03 安裝指定版本TensorFlow
版本解決
考慮到項目中需要使用的TensorFlow
與python
版本和服務器端現有的CUDA``版本,故重新創建一個新的conda
環境進行各個內容的安裝,此處我需要安裝的版本為:python3.6
,tensorflow-gpu 1.12.0
- 查看服務器端的
cuda
與cudnn
版本, 通過輸入命令:cat /usr/local/cuda/version.txt
與cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
,如下:
(base) zcc@new-gpu:~$ cat /usr/local/cuda/version.txt
CUDA Version 8.0.61
(base) zcc@new-gpu:~$ cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
#define CUDNN_MAJOR 5
#define CUDNN_MINOR 1
#define CUDNN_PATCHLEVEL 10
--
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)
#include "driver_types.h"
- 在以下網址查看需要安裝的
TensorFlow
是否匹配cuda
,cudnn
和Python
版本,如下:https://tensorflow.google.cn/install/source
- 非常不幸的是,這台服務器上的
CUDA
版本和我的需要安裝的TensorFlow
版本並不匹配:-(
該不匹配的情況不會影響你后續的安裝,因此先進行后續的安裝,完成后再來解決cuda版本匹配問題
修改CUDN
和CUDNN
版本
再次說明:因為之前我遇到過一次該問題,也的確是會有版本沖突的問題,去了英偉達的官方網下載了相應的cudnn
,但是這次雖然版本也沒有匹配上,但是程序居然跑通了,弄的我一臉懵逼。
故在此只貼出上次解決是參考的博客:https://blog.csdn.net/weixin_42567692/article/details/80844696
親測有效
后來在路徑
usr/local
一查,原來服務器下CUDA8.0和CUDA9.0的版本都有
創建新Conda
環境
- 創建一個新的
conda
環境,並指定Python
的版本號未3.6
# conda create -n 環境名 python=制定版本號
conda create -n tensorflow1.12 python=3.6
# ....創建環境,安裝各種包....
# To activate this environment, use
#
# $ conda activate tensorflow1.12
#
# To deactivate an active environment, use
#
# $ conda deactivate
由於並沒有進行鏡像的更換,可以在命令后方制定臨時的鏡像源
- 安裝成后,通過命令
conda info -e
查看目前現有環境,通過命令conda activate tensorflow1.12
切換到指定環境當出現如下錯誤時:
CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'. To initialize your shell, run $ conda init <SHELL_NAME>
解決:
- 輸入命令
source activate
進入base環境 - 再輸入
conda activate 環境名
即可 - 退出環境命令:
source deactivate
- 輸入命令
- 輸入
python
,查看是python
是否是你指定安裝的Python
版本
安裝tensorflow
方式一:直接安裝
通過pip工具對tensorflow-gpu
進行安裝
# 指定臨時鏡像源對指定版本的tensorflow進行安裝
pip install tensorflow-gpu==1.12.0 -i https://pypi.tuna.tsinghua.edu.cn/simple/
# ...漫長的安裝tensorflow+依賴包...
若出現下載鏈接超時
pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='pypi.tuna.tsinghua.edu.cn', port=443): Read timed out.
的異常可設定超時時間:
pip install --default-timeout=1000 tensorflow-gpu==....
若還是下載緩慢,比如我這次安裝時就遇見了,那就采用下載方式二:
方式二:本地下載好再裝
- 根據
pip
在下載時提示的網站地址,自行下載
例如我下載的tensorflow1,12-gpu
的地址為: https://pypi.tuna.tsinghua.edu.cn/packages/55/7e/bec4d62e9dc95e828922c6cec38acd9461af8abe749f7c9def25ec4b2fdb/tensorflow_gpu-1.12.0-cp36-cp36m-manylinux1_x86_64.whl
- 下載完成后,將文件
tensorflow_gpu-1.12.0-cp36-cp36m-manylinux1_x86_64.whl
移動到服務器端 - 通過命令
pip install 包路徑+包名
指定剛剛上傳的包路徑進行安裝
此方法安裝也會去網上下載所依賴的包,因此最好也指定下路徑,最好還指定下超時時間
我的完整命令如下:
pip install --default-time=1000 tensorflow_gpu-1.12.0-cp36-cp36m-manylinux1_x86_64.whl -i https://pypi.tuna.tsinghua.edu.cn/simple/
驗證:
經過漫長的安裝:控制端提示安裝成功,驗證如下:
(tensorflow1.12) zcc@new-gpu:~$ python
Python 3.6.10 |Anaconda, Inc.| (default, Jan 7 2020, 21:14:29)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
>>> tf.__version__
'1.12.0'
可見,我們tensorflow1.12
安裝成功
在導入包的時候會報一串
FutureWarning
警告,這是由於numpy的版本問題,不影響使用,網上有很多解決方法,此處就不貼解決方案了。
參考:
https://blog.csdn.net/weixin_41519463/article/details/89373643
https://blog.csdn.net/qq_33221533/article/details/100150534
https://blog.csdn.net/weixin_38705903/article/details/86533863
PS:就在我剛剛裝完環境后,居然告訴我電力恢復,我真是暈了:-(