【Linux】CentOS搭建Tensorflow環境

步驟

安裝Anaconda3

wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2020.02-Linux-x86_64.sh

如果提示沒有wget,使用yum安裝:

yum -y install wget

在下載目錄中執行該文件,根據下載的版本不同,名稱會有不同:

bash Anaconda3-2020.02-Linux-x86_64.sh

接下來會出現一堆的License許可聲明,一路回車向下,出現如下文字,輸入yes:

Do you accept the license terms? [yes|no]
[no] >>> 
Please answer 'yes' or 'no':
>>> yes

之後要選擇安裝目錄,如果無需更改直接回車Enter,如需更改要輸入絕對路徑:
(可以先查看下硬盤的掛載情況再自行選擇安裝目錄,查看掛載情況的語句是df -h)

Anaconda3 will now be installed into this location:
/root/anaconda3

  - Press ENTER to confirm the location
  - Press CTRL-C to abort the installation
  - Or specify a different location below

[/root/anaconda3] >>> 

出現如下信息:

ERROR: File or directory already exists: '/root/anaconda3'
If you want to update an existing installation, use the -u option.

安裝到一個新的路徑,比如/root/caozx/22-anaconda3(22-anaconda3還未創建)

[/root/anaconda3] >>>  /root/caozx/22-anaconda3

詢問是否初始化,若選擇yes,是在/root/.bashrc目錄中自動添加環境變量,會使得開機自動啓動base環境。(這裏應該是新版安裝包的改動之處,老版本的安裝包都是問是否需要添加conda至環境變量,且默認直接回車Enter是不添加,若未添加後續需要手動添加。)

Do you wish the installer to initialize Anaconda3
by running conda init? [yes|no]
[no] >>> no

看到如下提示則安裝成功:

Thank you for installing Anaconda3!

===========================================================================

Anaconda and JetBrains are working together to bring you Anaconda-powered
environments tightly integrated in the PyCharm IDE.

PyCharm for Anaconda is available at:
https://www.anaconda.com/pycharm

配置環境變量:

vim /etc/profile

# anaconda3
export PATH=$PATH:/root/caozx/22-anaconda3/bin

source ~/.bashrc #刷新環境變量

進入bin目錄

#舊版安裝包
source activate # 進入conda環境 出現(base)則說明安裝成功
source deactivate # 退出conda環境

#新版安裝包
[root@master bin]# conda activate
(base) [root@master bin]# conda deactivate
[root@master bin]# 

創建虛擬環境

Tensorflow支持Python3.5,執行conda create -n tensorflow python=3.5指令,創建名爲tensorflow的conda環境:

## Python 2.7
conda create -n tensorflow python=2.7

## Python 3.5
conda create -n tensorflow python=3.5

## Python 3.6
conda create -n tensorflow python=3.6

爲了簡便也可以直接指定版本python=3.5, 克隆anaconda所有的Python包:

conda create -n tensorflow python=3.5 anaconda

效果如下。

==> WARNING: A newer version of conda exists. <==
  current version: 4.8.2
  latest version: 4.8.3

Please update conda by running

    $ conda update -n base -c defaults conda



## Package Plan ##

  environment location: /root/caozx/22-anaconda3/envs/tensorflow

  added / updated specs:
    - python=3.5


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    certifi-2018.8.24          |           py35_1         137 KB
    libedit-3.1.20191231       |       h7b6447c_0         167 KB
    ncurses-6.2                |       he6710b0_1         817 KB
    openssl-1.0.2u             |       h7b6447c_0         2.2 MB
    pip-10.0.1                 |           py35_0         1.6 MB
    python-3.5.6               |       hc3d631a_0        24.9 MB
    setuptools-40.2.0          |           py35_0         490 KB
    sqlite-3.32.3              |       h62c20be_0         1.1 MB
    tk-8.6.10                  |       hbc83047_0         3.0 MB
    wheel-0.31.1               |           py35_0          66 KB
    xz-5.2.5                   |       h7b6447c_0         341 KB
    ------------------------------------------------------------
                                           Total:        34.6 MB

The following NEW packages will be INSTALLED:

  _libgcc_mutex      pkgs/main/linux-64::_libgcc_mutex-0.1-main
  ca-certificates    pkgs/main/linux-64::ca-certificates-2020.1.1-0
  certifi            pkgs/main/linux-64::certifi-2018.8.24-py35_1
  libedit            pkgs/main/linux-64::libedit-3.1.20191231-h7b6447c_0
  libffi             pkgs/main/linux-64::libffi-3.2.1-hd88cf55_4
  libgcc-ng          pkgs/main/linux-64::libgcc-ng-9.1.0-hdf63c60_0
  libstdcxx-ng       pkgs/main/linux-64::libstdcxx-ng-9.1.0-hdf63c60_0
  ncurses            pkgs/main/linux-64::ncurses-6.2-he6710b0_1
  openssl            pkgs/main/linux-64::openssl-1.0.2u-h7b6447c_0
  pip                pkgs/main/linux-64::pip-10.0.1-py35_0
  python             pkgs/main/linux-64::python-3.5.6-hc3d631a_0
  readline           pkgs/main/linux-64::readline-7.0-h7b6447c_5
  setuptools         pkgs/main/linux-64::setuptools-40.2.0-py35_0
  sqlite             pkgs/main/linux-64::sqlite-3.32.3-h62c20be_0
  tk                 pkgs/main/linux-64::tk-8.6.10-hbc83047_0
  wheel              pkgs/main/linux-64::wheel-0.31.1-py35_0
  xz                 pkgs/main/linux-64::xz-5.2.5-h7b6447c_0
  zlib               pkgs/main/linux-64::zlib-1.2.11-h7b6447c_3


Proceed ([y]/n)? y


Downloading and Extracting Packages
ncurses-6.2          | 817 KB    | ########################################################################################## | 100% 
pip-10.0.1           | 1.6 MB    | ########################################################################################## | 100% 
libedit-3.1.20191231 | 167 KB    | ########################################################################################## | 100% 
tk-8.6.10            | 3.0 MB    | ########################################################################################## | 100% 
sqlite-3.32.3        | 1.1 MB    | ########################################################################################## | 100% 
python-3.5.6         | 24.9 MB   | ########################################################################################## | 100% 
wheel-0.31.1         | 66 KB     | ########################################################################################## | 100% 
openssl-1.0.2u       | 2.2 MB    | ########################################################################################## | 100% 
certifi-2018.8.24    | 137 KB    | ########################################################################################## | 100% 
setuptools-40.2.0    | 490 KB    | ########################################################################################## | 100% 
xz-5.2.5             | 341 KB    | ########################################################################################## | 100% 
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
#     $ conda activate tensorflow
#
# To deactivate an active environment, use
#
#     $ conda deactivate

conda環境管理

## 列出所有的環境
[root@master bin]# conda info --envs
# conda environments:
#
                         /home/JinghuaLi/anaconda3
                         /home/hzcao/miniconda3
                         /home/lijinghua/anaconda3
                         /home/liuxy/miniconda3
                         /home/ljdu/anaconda3
                         /home/ljdu/anaconda3/envs/zero
                         /root/anaconda3
                         /root/anaconda3/envs/xukee
base                  *  /root/caozx/22-anaconda3
tensorflow               /root/caozx/22-anaconda3/envs/tensorflow


## 創建一個指定Python版本且包含anaconda所有Python包的新環境
conda create -n py36 python=3.6 anaconda
[root@master bin]# conda info --envs
# conda environments:
#
                         /home/JinghuaLi/anaconda3
                         /home/hzcao/miniconda3
                         /home/lijinghua/anaconda3
                         /home/liuxy/miniconda3
                         /home/ljdu/anaconda3
                         /home/ljdu/anaconda3/envs/zero
                         /root/anaconda3
                         /root/anaconda3/envs/xukee
base                  *  /root/caozx/22-anaconda3
py36                     /root/caozx/22-anaconda3/envs/py36
tensorflow               /root/caozx/22-anaconda3/envs/tensorflow


## 克隆一個環境
conda create -n py36 --clone root
[root@master bin]# conda info --envs
# conda environments:
#
                         /home/JinghuaLi/anaconda3
                         /home/hzcao/miniconda3
                         /home/lijinghua/anaconda3
                         /home/liuxy/miniconda3
                         /home/ljdu/anaconda3
                         /home/ljdu/anaconda3/envs/zero
                         /root/anaconda3
                         /root/anaconda3/envs/xukee
base                  *  /root/caozx/22-anaconda3
py36                     /root/caozx/22-anaconda3/envs/py36
tensorflow               /root/caozx/22-anaconda3/envs/tensorflow


## 刪除一個環境
conda remove -n py36 --all
[root@master bin]# conda info --envs
# conda environments:
#
                         /home/JinghuaLi/anaconda3
                         /home/hzcao/miniconda3
                         /home/lijinghua/anaconda3
                         /home/liuxy/miniconda3
                         /home/ljdu/anaconda3
                         /home/ljdu/anaconda3/envs/zero
                         /root/anaconda3
                         /root/anaconda3/envs/xukee
base                  *  /root/caozx/22-anaconda3
tensorflow               /root/caozx/22-anaconda3/envs/tensorflow

安裝Tensorflow

## 創建名爲tensorflow的conda環境
conda create -n tensorflow

## 激活tensorflow環境
[root@master bin]# source activate tensorflow
You have mail in /var/spool/mail/root
(tensorflow) [root@master bin]# 

## 根據Tensorflow的版本設置環境變量(CPU版本)
# Linux 64-bit, CPU only, Python 2.7 
(tensorflow)$ export TF_BINARY_URL=https://ci.tensorflow.org/view/tf-nightly/job/tf-nightly-linux/TF_BUILD_IS_OPT=OPT,TF_BUILD_IS_PIP=PIP,TF_BUILD_PYTHON_VERSION=PYTHON2,label=cpu-slave/lastSuccessfulBuild/artifact/pip_test/whl/tf_nightly-1.head-cp27-none-linux_x86_64.whl 
# Linux 64-bit, CPU only, Python 3.4 
(tensorflow)$ export TF_BINARY_URL=https://ci.tensorflow.org/view/tf-nightly/job/tf-nightly-linux/TF_BUILD_IS_OPT=OPT,TF_BUILD_IS_PIP=PIP,TF_BUILD_PYTHON_VERSION=PYTHON3,label=cpu-slave/lastSuccessfulBuild/artifact/pip_test/whl/tf_nightly-1.head-cp34-cp34m-linux_x86_64.whl
# Linux 64-bit, CPU only, Python 3.5 
(tensorflow)$ export TF_BINARY_URL=https://ci.tensorflow.org/view/tf-nightly/job/tf-nightly-linux/TF_BUILD_IS_OPT=OPT,TF_BUILD_IS_PIP=PIP,TF_BUILD_PYTHON_VERSION=PYTHON3.5,label=cpu-slave/lastSuccessfulBuild/artifact/pip_test/whl/tf_nightly-1.head-cp35-cp35m-linux_x86_64.whl

## 通過pip3安裝TensorFlow for python3
# 安裝pip3
yum install python3-pip 
pip install --upgrade pip
# 選擇一種安裝環境(Python 3)
# Python 2 
(tensorflow)# pip install --ignore-installed --upgrade $TF_BINARY_URL 
# Python 3 
(tensorflow)# pip install --ignore-installed --upgrade $TF_BINARY_URL

報錯如下。

ERROR: Could not install packages due to an EnvironmentError: 
HTTPSConnectionPool(host='ci.tensorflow.org', port=443): 
Max retries exceeded with url: /view/tf-nightly/job/tf-nightly-linux/TF_BUILD_IS_OPT=OPT,TF_BUILD_IS_PIP=PIP,TF_BUILD_PYTHON_VERSION=PYTHON3.5,label=cpu-slave/lastSuccessfulBuild/artifact/pip_test/whl/tf_nightly-1.head-cp35-cp35m-linux_x86_64.whl 
(Caused by ProxyError('Cannot connect to proxy.', OSError('Tunnel connection failed: 503 Service Unavailable',)))

參考 Tensorflow的源碼地址

pip install tensorflow
Successfully installed absl-py-0.9.0 ...

>>> import tensorflow as tf #此時不報錯則表示安裝成功
>>> tf.add(1, 2).numpy()
3
>>> hello = tf.constant('Hello, TensorFlow!')
>>> hello.numpy()
b'Hello, TensorFlow!'
>>> tf.__version__ #查看安裝的TensorFlow版本
'2.2.0'

# conda的包管理類似pip
conda install scipy  # conda安裝scipy
conda list  # 查看已經安裝的packages
conda list -n tensotflow   # 查看某個指定環境的已安裝包
conda search numpy  # 查找package信息
conda install -n tensotflow numpy  # 安裝某個指定環境的package
# 如果不用-n指定環境名稱,則被安裝在當前活躍環境,也可以通過-c指定通過某個channel安裝
conda update -n tensotflow numpy  # 更新package
conda remove -n tensotflow numpy  # 刪除package

參考鏈接

Tensorflow的源碼地址
Linux-Centos7下安裝Anaconda(2019年新版) - 寐語的文章 - 知乎
Centos7服務器安裝Anaconda
Linux服務器上搭建TensorFlow機器學習環境
Linux安裝Anaconda和TensorFlow

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