本文目录


1.引言

TensorFlow = Tensor(向量)+Flow(流)=”张量在网络图中流动”!

主要参考:
[1] Tensorflow官网Tutorials
[2] 极客学院对Tensorflow官网教程的翻译

官方提供了5种安装tensorflow的方法:

  • Pip install: Install TensorFlow on your machine, possibly upgrading previously installed Python packages. May impact existing Python programs on your machine.
  • Virtualenv install: Install TensorFlow in its own directory, not impacting any existing Python programs on your machine.
  • Anaconda install: Install TensorFlow in its own environment for those running the Anaconda Python distribution. Does not impact existing Python programs on your machine.
  • Docker install: Run TensorFlow in a Docker container isolated from all other programs on your machine.
  • Installing from sources: Install TensorFlow by building a pip wheel that you then install using pip.

几点说明:
1. 由于在使用Tensorflow时,可以直接Python调用,所以,这里决定使用python学习tensorflow
2. 使用python,jupyter notebook是一个不可或缺的工具,所以,本文还将记录如何在ubuntu下安装jupyter
3. 这里主要安装python2.7版本的相关组件

2. 基于Anaconda的tensorflow安装

2.1 下载linux版本的Anaconda安装包


下载地址:https://www.continuum.io/downloads
这里选择64位Linux的Python 2.7版本
点击下载,下载完成后,得到Anaconda2-4.0.0-linux-x86_64.sh安装文件

2.2 安装Anaconda

  • 打开terminal,输入如下命令,然后回车
    bash /home/tingting/Downloads/Anaconda2-4.0.0-Linux-x86_64.sh

    这里的/home/tingting/Downloads/是存放Anaconda2-4.0.0-Linux-x86_64.sh的路径

  • 阅读license,一步步回车阅读(出现more时通过回车往下看)

  • 输入yes,表示接受license

  • 设置安装路径,这里使用默认安装路径,直接输入回车即可

  • 开始自动安装过程

  • 确认是否将Anaconda的安装路径添加到环境变量中,输入yes

    关于这里一定要注意:

    如果在安装过程中,该步没有选择yes,那么Anaconda的安装路径不会被添加到环境变量中,安装结束后会出现如下信息:

    Do you wish the installer to prepend the Anaconda2 install location
    to PATH in your /home/tingting/.bashrc ? [yes|no]
    [no] >>>
    You may wish to edit your .bashrc or prepend the Anaconda2 install location:
    $ export PATH=/home/tingting/anaconda2/bin:$PATH
    Thank you for installing Anaconda2!

    当时也没有注意这个信息,没有管,结果安装完anaconda后,发现根本不能使用,才注意到这条信息,原来,Anaconda的bin路径并没有被添加到PAHT环境变量中,所以需要在命令行中输入如下命令:
    export PATH=/home/tingting/anaconda2/bin:$PATH
    即将anaconda的bin路径添加到环境变量PATH中

  • 安装完成

    这里可以看到,notebooks和一些python包都被成功安装了,但对于环境变量的更改,必须要新打开一个terminal才能生效,否则,相关的指令都不会被认识

  • 打开新的terminal,输入Jupyter notebook,发现jupyter被成功安装了

  • 打开浏览器:http://localhost:8888/tree(可以看到安装了python 2的kernel)

3. 利用anaconda安装tensorflow

3.1 建立一个 conda 计算环境

    • Create a conda environment called tensorflow:

      conda create -n tensorflow python=2.7

3.2 激活环境,使用 conda 安装 TensorFlow

  • Activate the environment and use pip to install TensorFlow inside it.

    source activate tensorflow
    • 1
    • 1

3.3 安装tensorflow

  • 安装

    pip install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.8.0rc0-cp27-none-linux_x86_64.whl
    • 1
    • 1

    之前在虚拟机中的ubutnu下安装tensorflow,就在这一步折腾了2天,就是不成功,每次都是timeout等各种问题,这次在双系统的机器上,瞬间就装好了,实在不知道之前的失败是因为虚拟机还是网速的问题

  • 安装成功后,每次使用 TensorFlow 的时候需要激活 conda 环境,可以看到,在正常情况下,是anaconda的bin路径在环境变量中,但激活conda-tensorflow环境后,环境变量中存储的是tensorflow下的bin路径

  • 测试tensorflow是否安装成功
    (1) 激活conda环境
    (2)进入python
    (3)import tensorflow
    整个过程比较顺利,tensorflow被成功import了

3.4 如何在jupyter中使用tensorflow

(1) 出现了问题
安装如上方法安装了jupyter和tensorflow,结果,利用jupyter无法使用tensorflow

也没有查到特别有针对性的解决这个问题的资料,好像是因为jupyter的安装路径和tensorflow的路径之间的问题,具体的现在还不是很清楚

(2)如何解决?
应该是在conda的tensorflow环境下没有jupyter,它无法使用之前anaconda安装的jupyter,那么,简单粗暴的方法就是在当前的conda-tensorflow环境下,再安装一次jupyter:

  • 打开terminal
  • 激活conda tensorflow环境:source activate tensorflow
  • 安装notebook:conda install ipython
  • 安装jupyter:conda install jupyter
  • 安装完成,仍在conda tensorflow的环境下,输入jupyter notebook,打开http://localhost:8889/tree#
  • import tensorflow,发现tensorflow可以使用了

参考:http://stackoverflow.com/questions/35771285/using-tensorflow-through-jupyter-python-3

(3)两个jupyter

  • 在正常的ternimal中打开的是之前在安装anacodna时安装的jupyter,在正常的terminal下 查看jupyter的安装路径
    which ipyhon

    它在anaconda的路径下的bin文件夹中
  • 在conda tensorflow环境下打开的jupyter是在conda tensorflow环境下新安装的tensorflow,与上面的jupyter不同
    它在conda的env下的tensorflow的bin文件夹下
  • 从下图可以想起地看到,两个jupyter的安装路径完成不同
  • 后续如果需要在使用tensorflow时使用其他的库,也一定要在对应的conda环境下安装,否则指定的库找不到。

(4) 缺少模块及安装
- ImportError: no module named Image, ImportError: no module named PIL
解决:conda install pillow

4. 总结

(1) 下载安装anaconda,与本文的第2部分同样目的,只不过通过命令行实现

#安装anaconda,从https://www.continuum.io下载
mkdir anaconda2 #在个人目录下创建Aanconda目录
cd anaconda2 #进入目录
wget http://repo.continuum.io/archive/Anaconda2-4.0.0-Linux-x86.sh #下载anaconda的安装包,利用wget工具
chmod +x Anaconda3-2.5.0-Linux-x86_64.sh #更改权限(增加可执行权限),使该文件可被执行,
./Anaconda2-4.0.0-Linux-x86.sh #执行安装文件,或者使用bash Anaconda2-4.0.0-Linux-x86.sh

(2) 在conda下创建环境,之后的所以操作都部署在该环境下

conda create -n tensorflow python=2.7 #创建tensorflow环境
activate conda tensorflow #激活tensorflow环境
conda install ipython #安装notebook
conda install jupyter #安装jupyter
jupyter notebook #启动jupyter

6.利用Docker安装tensorflow

利用这种方法可以实现在windows上使用tensorflow!具体步骤如下:

6.1 安装docker

在windows7下安装docekr,具体方法见之前的博文:Docker学习系列(一):windows下安装docker

6.2 创建tensorflow的image

安装好Docker后,接下来,就可以创建包含tensorflow的image了,有两种方案
(1) 从dockerhub上pull别人的image
例如:

docker pull tensorflow/tensorflow
docker pull xblaster/tensorflow-jupyter
docker pull satoshun/tensorflow-notebook

(2)自己书写Dockerfile,然后,在本机编译dockerfile,生成image,对于这种方法,本人还不会,以后有待研究


7.安装过程中的一些小问题记录

注1:安装过程中各种问题
安装过程中,好像是不小心更改了环境变量,导致所有命令都不能使用,那么,可以使用如下命令export PATH=/usr/bin:/bin
注2:在安装过程中发现,例如如上命令总是无法安装tensorflow,会出现网络连接错误的问题,试了好多遍都不行,不知道是不是因为在虚拟机中latern使用不好的问题,所以,最后,只能通过如下方式
(1)在本机下载tensorflow-0.8.0-cp27-none-linux_x86_64.whl
地址为:https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.8.0-cp27-none-linux_x86_64.whl
(2)将下载的tensorflow-0.8.0-cp27-none-linux_x86_64.whl文件放置在共享文件夹中
(3)在虚拟机的ubuntu的terminal中,cd到放置tensorflow-0.8.0-cp27-none-linux_x86_64.whl的路径(即/home/share/),使用如下命令安装tensorflow(即相当于离线安装了)

sudo pip install --upgrade tensorflow-0.8.0-cp27-none-linux_x86_64.whl

注3:怎么向某个文件中填写内容?举例:如何向sources.list文件插入语句sudo vim /etc/apt/sources.list
a #进入插入模式
:wq #保存并退出

Ubuntu下安装Tensorflow的更多相关文章

  1. CAFFE(一):Ubuntu 下安装CUDA(安装:NVIDIA-384+CUDA9.0+cuDNN7.1)

    (安装:NVIDIA-384+CUDA9.0+cuDNN7.1) 显卡(GPU)驱动:NVIDIA-384 CUDA:CUDA9.0 cuDNN:cuDNN7.1 Ubuntu 下安装CUDA需要装N ...

  2. 在Ubuntu下安装ovs-dpdk

    在Ubuntu下安装ovs-dpdk 参考资料:https://software.intel.com/zh-cn/articles/using-open-vswitch-with-dpdk-on-ub ...

  3. Ubuntu 下安装QT

    Ubuntu 下安装QT 本文使用的环境 QT Library: qt-everywhere-opensource-src-4.7.4.tar.gz QT Creator: qt-creator-li ...

  4. Ubuntu下安装JDK以及相关配置

    1.查看系统位数,输入以下命令即可 getconf LONG_BIT 2.下载对应的JDK文件,我这里下载的是jdk-8u60-linux-64.tar.gz 3.创建目录作为JDK的安装目录,这里选 ...

  5. Ubuntu下安装mod_python报错(GIT错误)

    Ubuntu下安装mod_python3.4.1版本报出如下错误: writing byte-compilation script '/tmp/tmpE91VXZ.py' /usr/bin/pytho ...

  6. TODO:Ubuntu下安装Node

    TODO:Ubuntu下安装Node Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境.Node.js 使用了一个事件驱动.非阻塞式 I/O 的模型,使其轻量又高 ...

  7. Ubuntu杂记——Ubuntu下安装VMware

    转战Ubuntu,不知道能坚持多久,但是自己还是要努力把转战过程中的学习到的给记录下来.这次就来记录一下,Ubuntu下如何安装VMware. 就我所知,Linux下有VirtualBox和VMwar ...

  8. 来杯Caffe——在ubuntu下安装Caffe框架并测试

    Caffe是一种深度学习框架...blablabla...... Caffe要在ubuntu下安装 1. 安装依赖 sudo apt-get install libatlas-base-dev sud ...

  9. Ubuntu 下安装 Mysql

    这里讲用Ubuntu下安装MySql ubuntu上安装mysql非常简单只需要几条命令就可以完成. 1. sudo apt-get install mysql-server   2. apt-get ...

随机推荐

  1. 零基础学python-2.16 列表解析

    这一节聊聊强大的列表解析 主要就是在一行里面赋值给列表 以下我们举两个样例: 上面的样例我们引入了range函数,他主要作用是在一定范围里面取整数值 我来解释一下中括号中面的那一句:x**2 for ...

  2. POJ 1166 The Clocks (暴搜)

    发现对这样的模拟题根本没啥思路了,本来准备用bfs的.可是结果超时了,这是參考别的人代码写的: #include <stdio.h> #include <iostream> # ...

  3. POJ1151 Atlantis 【扫描线】

    Atlantis Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 16882   Accepted: 6435 Descrip ...

  4. UI 经常用法总结之--- UIWindow UIView (不断更新中)

     UIWindow (UIView) 1.创建一个uiwindow对象 self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScr ...

  5. 【POJ 1222】 EXTENDED LIGHTS OUT

    [题目链接] http://poj.org/problem?id=1222 [算法] 列出异或方程组,用高斯消元求解即可 [代码] #include <algorithm> #includ ...

  6. SpringBoot中拦截器和过滤器的使用

    一.拦截器 三种方式 继承WebMvcConfigurerAdapter   spring5.0 以弃用,不推荐 实现WebMvcConfigurer  推荐 继承WebMvcConfiguratio ...

  7. Python基本数据类型之字典dict

    字典dict 是一个键(key)值(value)对,结构为{},大括号 创建字典 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 info = { # k ...

  8. Socket server

    Socket server的使用方法(精华部分),仅供自用. class MyServer(socketserver.BaseRequestHandler): def handle(self): wh ...

  9. 6.Renderer Window

    渲染是实时的,所见即所得.同时还可以输出一些统计信息. Pixel Snoop:获取颜色值,同时把该值复制到剪贴板,主要用户是获取颜色值 Wireframe:开启后可以查看3D节点图形骨架 Stati ...

  10. C++关键字简述

    ID 范畴 关键字 说明 1 数据类型 bool 基本类型—-布尔类型 2 数据类型 char 基本类型—-字符类型 3 数据类型 wchar_t 基本类型—-宽字符类型 4 数据类型 double ...