TensorFlow 安装

姓名:王咫毅

学号:19021211150

【嵌牛导读】tensorflow是有google公司研发的用于机器学习、人工智能的框架,如何安装tensorflow,如何在各种平台上安装tensorflow,本文主要研究了这个问题,基于各种平台实现tensorflow的安装。

【嵌牛鼻子】tensorflow pip anaconda

【嵌牛提问】如何在各种平台上安装和使用tensorflow?

【嵌牛正文】

转载自:https://www.jianshu.com/p/3ae3d929ad2c

下载与安装

你可以使用我们提供的 Pip, Docker, Virtualenv, Anaconda 或 源码编译的方法安装 TensorFlow.

1. Pip 安装

Pip 是一个 Python 的软件包安装与管理工具.

在安装 TensorFlow 过程中要涉及安装或升级的包详见 列表

1)首先安装 pip (或 Python3 的 pip3 ):

Ubuntu/Linux 64-bit

$ sudo apt-get install python-pip python-dev

Mac OS X

$ sudo easy_install pip

2)安装 TensorFlow :

Ubuntu/Linux 64-bit, CPU only, Python 2.7:

$ sudo pip install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.8.0-cp27-none-linux_x86_64.whl

Ubuntu/Linux 64-bit, GPU enabled, Python 2.7. Requires CUDA toolkit 7.5 and CuDNN v4.# For other versions, see "Install from sources" below.

$ sudo pip install --upgrade https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.8.0-cp27-none-linux_x86_64.whl

Mac OS X, CPU only:

$ sudo easy_install --upgrade six$ sudo pip install --upgrade https://storage.googleapis.com/tensorflow/mac/tensorflow-0.8.0-py2-none-any.whl

如果是 Python3 :

Ubuntu/Linux 64-bit, CPU only, Python 3.4:

$ sudo pip3 install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.8.0-cp34-cp34m-linux_x86_64.whl

Ubuntu/Linux 64-bit, GPU enabled, Python 3.4. Requires CUDA toolkit 7.5 and CuDNN v4.# For other versions, see "Install from sources" below.

$ sudo pip3 install --upgrade https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.8.0-cp34-cp34m-linux_x86_64.whl

Mac OS X, CPU only:

$ sudo easy_install --upgrade six$ sudo pip3 install --upgrade https://storage.googleapis.com/tensorflow/mac/tensorflow-0.8.0-py3-none-any.whl

备注:如果之前安装过 TensorFlow < 0.7.1 的版本,应该先使用 pip uninstall

卸载 TensorFlow 和 protobuf ,保证获取的是一个最新 protobuf 依赖下的安装包.

之后可以测试一下.

2.基于 Docker 的安装

我们也支持通过 Docker 运行 TensorFlow. 该方式的优点是不用操心软件依赖问题.

首先, 安装 Docker. 一旦 Docker 已经启动运行, 可以通过命令启动一个容器:

$ docker run -it b.gcr.io/tensorflow/tensorflow

该命令将启动一个已经安装好 TensorFlow 及相关依赖的容器.

其它镜像

默认的 Docker 镜像只包含启动和运行 TensorFlow 所需依赖库的一个最小集. 我们额外提供了 下面的容器, 该容器同样可以通过上述 docker run

命令安装:

b.gcr.io/tensorflow/tensorflow-full

: 镜像中的 TensorFlow 是从源代码完整安装的, 包含了编译和运行 TensorFlow 所需的全部工具. 在该镜像上, 可以直接使用源代码进行实验, 而不需要再安装上述的任何依赖.

3.基于 VirtualEnv 的安装

我们推荐使用 virtualenv 创建一个隔离的容器, 来安装 TensorFlow. 这是可选的, 但是这样做能使排查安装问题变得更容易.

首先, 安装所有必备工具:

在 Linux 上:

'$ sudo apt-get install python-pip python-dev python-virtualenv'

在 Mac 上:

'$ sudo easy_install pip # 如果还没有安装 pip'

'$ sudo pip install --upgrade virtualenv'

接下来, 建立一个全新的 virtualenv 环境. 为了将环境建在 ~/tensorflow

目录下, 执行:

$ virtualenv --system-site-packages ~/tensorflow

$ cd ~/tensorflow

然后, 激活 virtualenv:

$ source bin/activate # 如果使用 bash

$ source bin/activate.csh # 如果使用 csh

(tensorflow)$ # 终端提示符应该发生变化

在 virtualenv 内, 安装 TensorFlow:

(tensorflow)$ pip install --upgrade <$url_to_binary.whl>

接下来, 使用类似命令运行 TensorFlow 程序:

(tensorflow)$ cd tensorflow/models/image/mnist

(tensorflow)$ python convolutional.py

当使用完 TensorFlow

(tensorflow)$ deactivate # 停用 virtualenv

$ # 你的命令提示符会恢复原样

4.基于 Anaconda 的安装

Anaconda 是一个集成许多第三方科学计算库的 Python 科学计算环境,Anaconda 使用 conda 作为自己的包管理工具,同时具有自己的计算环境,类似 Virtualenv.

和 Virtualenv 一样,不同 Python 工程需要的依赖包,conda 将他们存储在不同的地方。 TensorFlow 上安装的 Anaconda 不会对之前安装的 Python 包进行覆盖.

安装 Anaconda

建立一个 conda 计算环境

激活环境,使用 conda 安装 TensorFlow

安装成功后,每次使用 TensorFlow 的时候需要激活 conda 环境

安装 Anaconda :

参考 Anaconda 的下载页面的指导

建立一个 conda 计算环境名字叫tensorflow

:

Python 2.7

$ conda create -n tensorflow python=2.7

Python 3.4

$ conda create -n tensorflow python=3.4

激活tensorflow

环境,然后使用其中的 pip 安装 TensorFlow. 当使用easy_install

使用--ignore-installed

标记防止错误的产生。

$ source activate tensorflow

(tensorflow)$ # Your prompt should change

Ubuntu/Linux 64-bit, CPU only, Python 2.7:

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

Ubuntu/Linux 64-bit, GPU enabled, Python 2.7. Requires CUDA toolkit 7.5 and CuDNN v4.# For other versions, see "Install from sources" below.

(tensorflow)$ pip install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.8.0rc0-cp27-none-linux_x86_64.whl

Mac OS X, CPU only:

(tensorflow)$ pip install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/mac/tensorflow-0.8.0rc0-py2-none-any.whl

对于 Python 3.x :

$ source activate tensorflow(tensorflow)$ # Your prompt should change

Ubuntu/Linux 64-bit, CPU only, Python 3.4:

(tensorflow)$ pip install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.8.0rc0-cp34-cp34m-linux_x86_64.whl

Ubuntu/Linux 64-bit, GPU enabled, Python 3.4. Requires CUDA toolkit 7.5 and CuDNN v4.# For other versions, see "Install from sources" below.

(tensorflow)$ pip install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.8.0rc0-cp34-cp34m-linux_x86_64.whl

Mac OS X, CPU only:

(tensorflow)$ pip install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/mac/tensorflow-0.8.0rc0-py3-none-any.whl

conda 环境激活后,你可以测试

当你不用 TensorFlow 的时候,关闭环境:

(tensorflow)$ source deactivate

$ # Your prompt should change back

再次使用的时候再激活 :-)

$ source activate tensorflow

(tensorflow)$ # Your prompt should change.

Run Python programs that use TensorFlow....

When you are done using TensorFlow, deactivate the environment.

(tensorflow)$ source deactivate

尝试你的第一个 TensorFlow 程序

(可选) 启用 GPU 支持

如果你使用 pip 二进制包安装了开启 GPU 支持的 TensorFlow, 你必须确保 系统里安装了正确的 CUDA sdk 和 CUDNN 版本. 请参间 CUDA 安装教程

你还需要设置 LD_LIBRARY_PATH

和 CUDA_HOME

环境变量. 可以考虑将下面的命令 添加到 ~/.bashrc

文件中, 这样每次登陆后自动生效. 注意, 下面的命令 假定 CUDA 安装目录为 /usr/local/cuda

:

export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64"export CUDA_HOME=/usr/local/cuda

运行 TensorFlow

打开一个 python 终端:

$ 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 仓库

$ git clone --recurse-submodules https://github.com/tensorflow/tensorflow

--recurse-submodules

参数是必须得, 用于获取 TesorFlow 依赖的 protobuf 库.

Linux 安装

安装 Bazel

首先依照 教程 安装 Bazel 的依赖. 然后在 链接 中下载适合你的操作系统的最新稳定版, 最后按照下面脚本执行:

$ chmod +x PATH_TO_INSTALL.SH$ ./PATH_TO_INSTALL.SH --user

注意把 PATH_TO_INSTALL.SH

替换为你下载的安装包的文件路径.

将执行路径 output/bazel

添加到 $PATH

环境变量中.

安装其他依赖

For Python 2.7:

$ sudo apt-get install python-numpy swig python-dev python-wheel

For Python 3.x:

$ sudo apt-get install python3-numpy swig python3-dev python3-wheel

可选: 安装 CUDA (在 Linux 上开启 GPU 支持)

为了编译并运行能够使用 GPU 的 TensorFlow, 需要先安装 NVIDIA 提供的 Cuda Toolkit 7.0 和 CUDNN 6.5 V2.

TensorFlow 的 GPU 特性只支持 NVidia Compute Capability >= 3.5 的显卡. 被支持的显卡 包括但不限于:

NVidia Titan

NVidia Titan X

NVidia K20

NVidia K40

下载并安装 Cuda Toolkit 7.0

下载地址

将工具安装到诸如 /usr/local/cuda

之类的路径.

下载并安装 CUDNN Toolkit 6.5

下载地址

解压并拷贝 CUDNN 文件到 Cuda Toolkit 7.0 安装路径下. 假设 Cuda Toolkit 7.0 安装 在 /usr/local/cuda

, 执行以下命令:

tar xvzf cudnn-6.5-linux-x64-v2.tgzsudo cp cudnn-6.5-linux-x64-v2/cudnn.h /usr/local/cuda/includesudo cp cudnn-6.5-linux-x64-v2/libcudnn* /usr/local/cuda/lib64

配置 TensorFlow 的 Cuda 选项

从源码树的根路径执行:

$ ./configure

Do you wish to bulid TensorFlow with GPU support? [y/n] y

GPU support will be enabled for TensorFlowPlease specify the location where CUDA 7.0 toolkit is installed. Refer toREADME.md for more details. [default is: /usr/local/cuda]: /usr/local/cudaPlease specify the location where CUDNN 6.5 V2 library is installed. Refer toREADME.md for more details. [default is: /usr/local/cuda]: /usr/local/cudaSetting up Cuda includeSetting up Cuda lib64Setting up Cuda binSetting up Cuda nvvmConfiguration finished

这些配置将建立到系统 Cuda 库的符号链接. 每当 Cuda 库的路径发生变更时, 必须重新执行上述 步骤, 否则无法调用 bazel 编译命令.

编译目标程序, 开启 GPU 支持

从源码树的根路径执行:

$ bazel build -c opt --config=cuda //tensorflow/cc:tutorials_example_trainer

$ bazel-bin/tensorflow/cc/tutorials_example_trainer --use_gpu# 大量的输出信息.这个例子用 GPU 迭代计算一个 2x2 矩阵的主特征值 (major eigenvalue).# 最后几行输出和下面的信息类似.000009/000005 lambda = 2.000000 x = [0.894427 -0.447214] y = [1.788854 -0.894427]000006/000001 lambda = 2.000000 x = [0.894427 -0.447214] y = [1.788854 -0.894427]000009/000009 lambda = 2.000000 x = [0.894427 -0.447214] y = [1.788854 -0.894427]

注意, GPU 支持需通过编译选项 "--config=cuda" 开启.

已知问题

尽管可以在同一个源码树下编译开启 Cuda 支持和禁用 Cuda 支持的版本, 我们还是推荐在 在切换这两种不同的编译配置时, 使用 "bazel clean" 清理环境.

在执行 bazel 编译前必须先运行 configure, 否则编译会失败并提示错误信息. 未来, 我们可能考虑将 configure 步骤包含在编译过程中, 以简化整个过程, 前提是 bazel 能够提供新的特性支持这样.

Mac OS X 安装

Mac 和 Linux 需要的软件依赖完全一样, 但是安装过程区别很大. 以下链接用于帮助你 在 Mac OS X 上安装这些依赖:

Bazel

参见本网页的 Mac OS X 安装指南.

SWIG

Mac OS X 安装教程.

注意: 你需要安装PCRE, 而不是 PCRE2.

Numpy

参见安装教程.

创建 pip 包并安装

$ bazel build -c opt //tensorflow/tools/pip_package:build_pip_package$ bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg# .whl 文件的实际名字与你所使用的平台有关$ pip install /tmp/tensorflow_pkg/tensorflow-0.5.0-cp27-none-linux_x86_64.whl

训练你的第一个 TensorFlow 神经网络模型

从源代码树的根路径执行:

$ cd tensorflow/models/image/mnist

$ python convolutional.py

Succesfully downloaded train-images-idx3-ubyte.gz 9912422 bytes.Succesfully downloaded train-labels-idx1-ubyte.gz 28881 bytes.Succesfully downloaded t10k-images-idx3-ubyte.gz 1648877 bytes.Succesfully downloaded t10k-labels-idx1-ubyte.gz 4542 bytes.Extracting data/train-images-idx3-ubyte.gzExtracting data/train-labels-idx1-ubyte.gzExtracting data/t10k-images-idx3-ubyte.gzExtracting data/t10k-labels-idx1-ubyte.gzInitialized!Epoch 0.00Minibatch loss: 12.054, learning rate: 0.010000Minibatch error: 90.6%Validation error: 84.6%Epoch 0.12Minibatch loss: 3.285, learning rate: 0.010000Minibatch error: 6.2%Validation error: 7.0%......

常见问题

1.GPU 相关问题

如果在尝试运行一个 TensorFlow 程序时出现以下错误:

ImportError: libcudart.so.7.0: cannot open shared object file: No such file or directory

请确认你正确安装了 GPU 支持, 参见 相关章节.

2.在 Linux 上

如果出现错误:

... "add", "radd", ^SyntaxError: invalid syntax

解决方案: 确认正在使用的 Python 版本为 Python 2.7.

3.在 Mac OS X 上

如果出现错误:

import six.moves.copyreg as copyregImportError: No module named copyreg

解决方案: TensorFlow 使用的 protobuf 依赖 six-1.10.0

. 但是, Apple 的默认 python 环境 已经安装了 six-1.4.1

, 该版本可能很难升级. 这里提供几种方法来解决该问题:

升级全系统的 six

:

sudo easy_install -U six

通过 homebrew 安装一个隔离的 python 副本:

brew install python

4.在virtualenv

内编译或使用 TensorFlow.

如果出现错误:

import tensorflow as tfTraceback (most recent call last): File "", line 1, in File "/usr/local/lib/python2.7/site-packages/tensorflow/init.py", line 4, in from tensorflow.python import * File "/usr/local/lib/python2.7/site-packages/tensorflow/python/init.py", line 13, in from tensorflow.core.framework.graph_pb2 import *... File "/usr/local/lib/python2.7/site-packages/tensorflow/core/framework/tensor_shape_pb2.py", line 22, in serialized_pb=_b('\n,tensorflow/core/framework/tensor_shape.proto\x12\ntensorflow"d\n\x10TensorShapeProto\x12-\n\x03\x64im\x18\x02 \x03(\x0b\x32 .tensorflow.TensorShapeProto.Dim\x1a!\n\x03\x44im\x12\x0c\n\x04size\x18\x01 \x01(\x03\x12\x0c\n\x04name\x18\x02 \x01(\tb\x06proto3')TypeError: init() got an unexpected keyword argument 'syntax'

这是由于安装了冲突的 protobuf 版本引起的, TensorFlow 需要的是 protobuf 3.0.0. 当前 最好的解决方案是确保没有安装旧版本的 protobuf, 可以使用以下命令重新安装 protobuf 来解决 冲突:

brew reinstall --devel protobuf

作者:九七学姐

链接:https://www.jianshu.com/p/3ae3d929ad2c

来源:简书

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,544评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,430评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,764评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,193评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,216评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,182评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,063评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,917评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,329评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,543评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,722评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,425评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,019评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,671评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,825评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,729评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,614评论 2 353

推荐阅读更多精彩内容