安装Anaconda:
因为Anaconda中集成了许多必要的Python库(如numpy、scipy等) ,因此安装Anaconda可得到许多便利。
官网下载Anaconda,我下载的是:
Anaconda2-5.0.1-Linux-x86_64.sh
我把这个文件放到这个目录
/usr/local
然后进入到这个目录 cd /usr/local
用bash运行下载好的.sh文件 bash Anaconda2-5.0.1-Linux-x86_64.sh
进入欢迎界面后一直按回车。
当显示是否同意条款时,输入yes
Do you approve the license terms? [yes|no]
>>> yes
跳出是否使用默认安装路径,直接回车(如果要改直接输入想要的安装路径)。
等待安装。
在安装的过程中,软件会提示你的Anaconda2会安装到哪个目录,我的是安装在了/root/anaconda2目录中。
安装完成,选择是否配置环境变量【注意:默认是no】,我在安装的过程中就没有添加环境变量:
因此手动添加环境变量,在服务器容天SCS4450中的情况如下所示:
在终端输入anacron -V
可显示版本,
服务器SCS4850中的情况如下所示:
服务器SCS4450中的情况如下所示:
TensorFlow环境配置和切换
安装完成后,使用如下命令生成一个名为tensorflow
的conda环境,根据python版本选择正确的命令执行即可:
# Python 2.7
$ conda create -n TensorFlow python=2.7
# Python 3.4
$ conda create -n TensorFlow python=3.4
# Python 3.5
$ conda create -n TensorFlow python=3.5
我基于python=2.7进行安装。
生成conda环境主要是可以自由切换tensorflow
环境和普通python环境。
conda自动安装:
现在可以直接使用conda来一次性安装TensorFlow,conda会自动安装相应版本的CUDAToolkit和cuDNN
conda install tensorflow-gpu # GPU版本
(1)进入TensorFlow环境
使用如下命令进入TensorFlow环境: source activate tensorflow
此时界面如图所示,可以看到,在这里会将/usr/local/ml/anaconda2/envs/tensorflow/bin
配置到PATH
变量前:
(2)退出tensorflow环境
使用如下命令可以从tensorflow环境中退出: source deactivate
结果如下,可以看到这两种环境下python
的执行路径是不相同的
二、TensorFlow安装
1、安装
GPU版
Tensorflow已经不再支持mac的GPU版了,下面是Linux安装GPU版的说明。说先安装NVIDIA CUDA必要组建。
$ sudo apt-get install libcupti-dev
如果不输入上述命令,会遇到下面这个问题(我在配置服务器容天SCS4450的过程中没有输入这一步,结果安装完tensorflow,遇到该问题):
ImportError: libcudnn.so.5: cannot open shared object file: No such file or directory
然后确保你的Linux上pip是可用的,接着我们可以直接通过pip安装:
$ sudo apt-get install python-pip python-dev # for Python 2.7
$ sudo apt-get install python3-pip python3-dev # for Python 3.n
服务器容天SCS4850的安装过程如下所示:
服务器容天SCS4450的安装过程如下所示:
然后选择你想要cpu或者gpu版本。
$ pip install tensorflow # Python 2.7; CPU support (no GPU support)
$ pip3 install tensorflow # Python 3.n; CPU support (no GPU support)
$ pip install tensorflow-gpu # Python 2.7; GPU support
$ pip3 install tensorflow-gpu # Python 3.n; GPU support
我的安装过程如下:
再次输入pip3 install tensorflow-gpu,仍然提示将pip更新,于是我更新pip,内容如下:
再次输入pip3 install tensorflow-gpu,内容如下:
3、验证安装是否正确
官方文档中提供一段检查tensorflow安装是否正确的代码,如下所示
$ python
...
>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
>>> print(sess.run(hello))
Hello, TensorFlow!
>>> a = tf.constant(10)
>>> b = tf.constant(32)
>>> print(sess.run(a + b))
42
>>>
如果tensorflow安装成功,则运行结果如下所示:
到这里TensorFlow已经正确安装,可以继续进行后续学习了。但是我的运行结果并非上图,而是如下所示:
于是我先安装theano,过程如下:
安装theano:
conda install theano
pip install nose_parameterized
进入Python检查tehano
import theano
import theano的时候出现error:
原因是CUDA8不支持版本大于5的gcc,而我的gcc的版本是:
若贸然将gcc降级,会引发其他的不兼容问题,故最好将暴力注释掉这句话:
vim /usr/local/cuda/include/host_config.h
根据上面的报错内容,找到文件host_config.h并打开,注释掉里面的版本检查语句:
//error -- unsupported GNU version! gcc versions later than 5.3 are not supported!
服务器容天SCS4850注释如下:
theano安装结束。
由于系统现在用的python是2Anaconda自带的2.7.14,如图所示:
根据教程:
根据注释选择自己需要的版
pip install --upgrade tensorflow # for Python 2.7
pip3 install --upgrade tensorflow # for Python 3.n
pip install --upgrade tensorflow-gpu # for Python 2.7 and GPU
pip3 install --upgrade tensorflow-gpu # for Python 3.n and GPU
我用命令:
pip install --upgrade tensorflow-gpu # for Python 2.7 and GPU
安装的过程中出错:
libcudnn.so.6:cannot open sharedobject file: No such file or directory
问题解释:
根据错误代码,应该是找不到libcudnn.so.6。这个时候笔者就没有注意最后是6而不是5(因为此时系统上安装的cuDNN5)。这个问题的实质上是因为当前时间(2017.8),虽然tensorflow官网install教程里面说的是安装cudnn5.1,而tensorflow-gpu1.3已经开始去找cudnn6了(也就是说是用cudnn6编译的)。理论上可以安装cudnn6试试看,但笔者本身没有追逐最新版的习惯(天知道还有什么新坑),所以直接换到了tensorflow-gpu1.2版本,就解决问题了。另注:通常情况下这类问题是真的找不到文件,而不是找错文件。这个时候笔者通常会先查一下各种路径有没有设置错误(写错啊,路径之间的冒号啊),然后去指定路径看看有没有这个文件,最后去查一下链接问题(这个就有些复杂了,而且改动起来有风险,建议备份先)。
问题解决:
pip uninstall tensorflow-gpu
pip install tensorflow-gpu==1.2
4、查看版本和安装路径
查看TensorFlow的版本,教程:
>>> import tensorflow as tf
>>> tf.__version__
'0.11.0rc2'
我的:
查看TensorFlow安装路径:
>>> tf.__path__
['/usr/local/ml/anaconda2/envs/tensorflow/lib/python2.7/site-packages/tensorflow']
实验室的服务器容天SCS4450:
校验Tensorflow安装
激活虚拟环境,然后运行
教程中:
$ python
>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
>>> print(sess.run(hello))
如果输出 Hello, TensorFlow!
说明TF安装正常
实验室的服务器容天SCS4850:
实验室的服务器容天SCS4450:
本来tensorflow能用,结果遇到问题:
Tensorflow: ImportError: libcusolver.so.8.0: cannot open shared object file: No such file or directory
解决方法:
I added the following in my ~/.bashrc:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64/