上篇,Amusi带着大家学习了
浅入浅出TensorFlow 1 — 初识TensorFlow
,今天继续给大家介绍linolzhang大佬的TensorFlow系列课程,带大家零基础安装。
Ps:现在TensorFlow最新发布的版本是TF1.8.0版本,最新版本的功能最强大,但不一定最适用于大家。比如不同项目依赖的TF版本可能不一样,而且最大的问题是最新版本的TF只支持CUDA9.0,所以建议安装适合自己环境的TF。一定要注意安装版本问题,下面以TF1.4.0版本为例。
正文
对一个框架的熟悉过程是从安装开始,今天就带大家熟悉这里面的第一道坎 -
安装
。
TensorFlow 安装方式总结为:
一. Pip安装步骤:
1)安装 Pip
Pip是目前使用最多的Python包管理工具。通常Linux和Mac是自带Python环境的(2.X版本,附带pip),如果系统没有安装Python环境,或者你需要使用Python3,可以参考下面的安装步骤:
不同的平台下的安装方式有所区别,常用的平台安装命令:
● Ubuntu 64-bit
$ sudo apt-get install python-pip python-dev # for python $ sudo apt-get install python3-pip python3-dev # for python3
有时会提醒pip升级,处理方法如下:
# You are using pip version 7.1.0, however version 9.0.1 is available. # You should consider upgrading via the 'pip install --upgrade pip' command. $ sudo pip install --upgrade pip # for python $ sudo pip3 install --upgrade pip # for python3
● CentOS, Fedora, RHEL
# for python $ python --version # 自带Python 2.6.6 和 pip $ sudo yum install python-pip python-devel # 命令安装
# for python3 $ sudo yum install epel-release python34 # Python 3.4.5 $ wget --no-check-certificate https://bootstrap.pypa.io/get-pip.py
$ sudo python3 get-pip.py # 未自带pip3,从官网安装
● MAC OS
mac 自带 python2.7 和 pip,如果没有的话,可以通过 下面的方式快速安装:
$ sudo easy_install pip
需要安装3.X版本的话,推荐用home-brew安装:
$ /usr/bin/ruby -e " $( curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install) " # 1.可能需要修改权限 $ sudo chown -R $( whoami) /usr/local/Cellar # 2.可能遇到下面错误,需要删掉对应路径,然后update # Error: Could not link: /usr/local/etc/bash_completion.d/brew $ rm -rf /usr/local/etc/bash_completion.d/brew
$ brew update
$ brew install python3
$ pip3 -V
● Window
a)下载Python安装包 .exe(3.5.3版本)
地址:
https://www.
python.org/downloads/wi
ndows/
Download Windows x86-64 executable installer
b)双击自定义安装 需要修改默认安装位置,配置环境变量 - 选择 "Add Python 3.5 to PATH" 选项。
c)高级选项,选择安装位置,勾选 install for all users
注:windows下也可以考虑 采用 Anaconda 安装,点击查看 安装方法。
2)安装 CUDA
在Ubuntu下安装 CUDA 和 cudnn过程(其他版本类似):
a)安装 NVIDIA驱动
官网下载地址:
http://www.
nvidia.com/Download/ind
ex.aspx?lang=en-us
执行命令安装:
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-375
sudo apt-get install mesa-common-dev
sudo apt-get install freeglut3-dev
查询安装结果:
sudo reboot # 重启 nvidia-smi
b)安装 CUDA
官网下载地址:
https://
developer.nvidia.com/cu
da-downloads
执行下载的 CUDA安装包(.Run文件)进行安装:
sudo sh cuda_8.0.61_375.26_linux.run
按空格 读完声明文件,Accept 接受安装,除了 驱动(已装完)选 no 之外,其他均选择默认。
c)添加 CUDA 系统路径
添加环境变量,可以加到 profile里,也可以加到 bashrc,在最后加入:
修改 profile 文件,在末尾处添加(不要有空格)
sudo gedit /etc/profile #or gedit ~/.bashrc export PATH = /usr/local/cuda-8.0/bin:$PATH export LD_LIBRARY_PATH = /usr/local/cuda-8.0/lib64$LD_LIBRARY_PATH source /etc/profile # save config(or sudo ldconfig)
通过命令查看CUDA安装是否成功?
cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery
d)安装 cudnn
官网下载地址:
https://
developer.nvidia.com/cu
dnn
解压, Copy到对应 CUDA 目录,并建立软链接。
# 复制头文件和lib文件 sudo cp include/cudnn.h /usr/local/cuda/include/
sudo cp lib64/lib* /usr/local/cuda/lib64/
# 链接动态库 cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.5
sudo ln -s libcudnn.so.5.x.x libcudnn.so.5
sudo ln -s libcudnn.so.5 libcudnn.so
3)安装 TensorFlow
根据你所选择的Python版本,下载对应的TensorFlow描述文件,进行安装:
https://
storage.googleapis.com/
tensorflow/
这是个XML文件,搜索1.4.0版本(截止到目前最新版本)对应的whl文件:
操作系统对应.Whl文件
@
Linux
CPU版本
-- linux/cpu/tensorflow-1.4.0rc0-cp27-none-linux_x86_64.whl
# 33|34|35|36 替换下面的cp33-cp33
-- linux/cpu/tensorflow-1.4.0rc0-cp33-cp33m-linux_x86_64.whl
GPU版本
-- linux/gpu/tensorflow_gpu-1.4.0rc2-cp27-none-linux_x86_64.whl
# 33|34|35|36
-- linux/gpu/tensorflow_gpu-1.4.0rc2-cp33-cp33m-linux_x86_64.whl
Debian
CPU版本(only)
-- linux/cpu/debian/jessie/tensorflow-1.4.0rc1-cp27-none-linux_x86_64.whl
云版本Cloudml
CPU版本
-- linux/cpu/cloudml/tensorflow-1.4.0rc0-cp27-none-linux_x86_64.whl
GPU版本(最高版本是1.4.0)
-- linux/gpu/cloudml/avx2_fma/tensorflow_gpu-1.4.0-cp27-none-linux_x86_64.whl
@
Mac
CPU版本
-- mac/cpu/tensorflow-1.4.0rc2-py2-none-any.whl
-- mac/cpu/tensorflow-1.4.0rc2-py3-none-any.whl
GPU version稳定的release(rc0)
-- mac/gpu/tensorflow_gpu-1.4.0rc0-py2-none-any.whl
-- mac/gpu/tensorflow_gpu-1.4.0rc0-py3-none-any.whl
@
Windows
目前仅支持Python 3.5(好像Python3.6也支持了)
CPU版本
-- windows/cpu/tensorflow-1.4.0rc2-cp35-cp35m-win_amd64.whl
GPU版本
-- windows/gpu/tensorflow_gpu-1.4.0rc2-cp35-cp35m-win_amd64.whl
通过URL将对应的 whl 文件下载到本地, 比如作者采用 Py3.5(ubuntu14对应版本),Linux下对应的CPU版本:
# Python 3 $ sudo pip3 install --upgrade tensorflow-1.4.0rc2-cp35-cp35m-manylinux1_x86_64.whl
也可以根据自己需要,直接配置URL在线 whl 进行安装:
# Python3 version, GPU $ sudo pip3 install --upgrade https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.4.0rc2-cp35-cp35m-linux_x86_64.whl
# Python3 version, CPU $ sudo pip3 install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-1.4.0rc0-cp35-cp35m-linux_x86_64.whl
# python2.X version, Linux with GPU $ sudo pip install --upgrade https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.4.0rc2-cp27-none-linux_x86_64.whl
需要注意:可能会遇到安装失败的情况,是网络问题,需要多试几次!
二. Docker安装:
在云上部署的情况下常用Docker安装,关于Docker安装作者并不推荐,Docker的学习成本相对较高。
三. Make源码编译:
1.下载源码
Git clone --recurse-submodules https://github.com/tensorflow/tensorflow
2. 安装Bazel
可以参考官网安装方法:
https://
bazel.build/versions/ma
ster/docs/install.html
3. 安装tensorflow依赖库
sudo apt-get install Python-numpy swig python-dev python-wheel
4. 配置tensorflow,需要你指定相应文件的安装目录
cd进tensorflow源文件。sudo ./configure
5. 使用Bazel编译构建
bazel build -c opt --config= cuda //tensorflow/cc:tutorials_example_trainer
bazel-bin/tensorflow/cc/tutorials_example_trainer--use_gpu
四. 测试安装:
安装完成,下面要测试安装是否成功,命令行环境测试(注意python 和 python3的语法稍有不同):
# 进入python命令行 $ python # or python3 >>> import tensorflow as tf
>>> str = tf.constant( "Hello World!" ) >>> se = tf.Session() >>> print se.run( str) # or print (se.run(str))
当出现预料中的 Hello World! 时,恭喜你,TensorFlow 环境安装成功了,折腾了那边久终于松了一口气,满满的成就感吧。
CentOS下如果出现错误提示: ImportError: /lib64/libc.so.6: version `GLIBC_2.14' not found
Failed to load the native TensorFlow runtime.
不用担心,这是你的GLIB版本过低(操作系统版本有点老),解决方法如下:
1. 到
http://
ftp.gnu.org/gnu/glibc/
下载 glibc-2.14.tar.gz 以及 对应插件 glibc-ports-2.14.tar.gz
注:安装 glib2.17以上版本不需要 ports 插件,步骤一样。
2. 编译安装
[ user@localhost ~] $ tar -xzvf glibc-2.14.tar.gz [ user@localhost ~] $ tar -xzvf glibc-ports-2.14.tar.gz [ user@localhost ~] $ mv glibc-ports-2.14 glibc-2.14/ports [ user@localhost ~] $ cd glibc-2.14 [ user@localhost glibc-2.14] $ mkdir build [ user@localhost glibc-2.14] $ cd build [ user@localhost build] $ ../configure --prefix= /usr --disable-profile --enable-add-ons --with-headers= /usr/include --with-binutils= /usr/bin [ user@localhost build] $ make -j4 [ user@localhost build] $ su [ root@localhost build] # make install
3. 替换文件,建立软连接
注:2.17以上版本不需要下面操作,install已经完成了替换。
[ root@localhost build] # cp libc.so /lib64/libc-2.14.so # copy [ root@localhost build] # rm -rf /lib64/libc.so.6 # 删除原文件 [ root@localhost build] # LD_PRELOAD=/lib64/libc-2.14.so ln -s /lib64/libc-2.14.so /lib64/libc.so.6 # 建立软连接 [ root@localhost build] # strings /lib64/libc.so.6 | grep GLIBC # 查看是否安装成功
libstdc++ 版本问题:
对应 libstdc++ 报错,处理方式与上面一致,安装新版本gcc即可,具体方式可以配置YUM源,也可以下载文件编译安装,或者下载库替换,这里不再介绍。