今天在linux上安装tensorflow遇到一些坑,因此写下博客记录一下。python
一、安装anacondalinux
anaconda组织了很是多的Python科学计算、数据分析的包,好比numpy和pandas等,不须要咱们一个一个地安装这些包,很是方便。docker
浏览器进入anaconda下载页,下载对应版本的 .sh 包,下载完毕后打开终端,运行该下载文件便可安装ubuntu
$ /usr/Downloads/Anaconda2-x.x.x-Linux-xx.sh
一路按下 enter 键,按照默认配置安装api
而后,终端输入 $ conda -V ,若是显示版本号即说明安装成功。不然多是环境变量的问题。浏览器
二、安装tensorflowapp
须要注意的是tensorflow官方支持的linux发行版本为ubuntu,不过其它版本也能够安装和使用,只是bug的fix支持力度不大python2.7
安装教程在 这里 若是没法访问,请往下看,不然直接跳第三步google
在anaconda中建立名字为"tensorflow"的环境,我理解为anaconda的命名空间,能够统一管理包的引入问题,稍后解释spa
$ conda create -n tensorflow pip python=2.7 # python版本请根据须要更换,好比3.6
激活这个环境:
$ source activate tensorflow
此时你的终端的前面会出现(tensorflow)字样,表明你目前在tensorflow环境中,则你可使用和管理属于这个环境的包,注意若是要使用这里的包须要先激活它
如今,在这个环境中安装tensorflow必须的包:
$ pip install --ignore-installed --upgrade tfBinaryURL
注意 tfBinaryURL 须要根据tensorflow版本而改变,对应的URL以下:
若是你的电脑没有NVDIA GPU,则须要安装cpu-only版本
python2.7 https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-1.6.0-cp27-none-linux_x86_64.whl
python3.6 https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-1.6.0-cp36-cp36m-linux_x86_64.whl
NVDIA GPU supported:*
python2.7 https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.6.0-cp27-none-linux_x86_64.whl
python3.6 https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.6.0-cp36-cp36m-linux_x86_64.whl
*注意:若是你安装gpu版本则须要提早启动nvdia-docker容器:
$ nvidia-docker run -it -p 8888:8888 gcr.io/tensorflow/tensorflow:latest-gpu # 8888:8888是hostport:containerport 后面是tensorflowiGPUImage
按上述配置,你能够在jupyter notebook使用GPU supported的tensorflow
如今,检验你在该一步的安装状况:
确保你的tensorflow环境是激活状态,输入
$ python
则出现 >>> 的python交互prompt
输入:
1 import tensorflow as tf 2 3 hello = tf.constant('Hello, TensorFlow!') 4 5 sess = tf.Session() 6 7 print(sess.run(hello))
若是显示 Hello, TensorFlow! 则配置成功,不然多是环境的问题
三、使用notebook
为了在notebook中能够直接使用tensorflow的包,须要在tensorflow被激活状况下,安装
$ conda install ipykernel # ipykernel是你在该环境使用notebook的cond内核,
而后进入notebook
$ jupyter notebook
进入编辑界面,更改你的notebook内核
菜单栏,依次 Kernel -> chage kernel -> Python [conda env:tensorflow]
在编辑框中输入
import tensorflow as tf
若没有ERROR则这一步配置成功,不然conda内核没有配置成功
解释上面提到的conda环境,最直接的影响就是你在当前环境下只能引入当前环境的包,即使在conda环境中安装的包对你也是不可见的。