TensorFlow中文社区---下载与安装
转自:http://www.tensorfly.cn/tfdoc/get_started/os_setup.html
- 下载与安装
- 你可以使用我们提供的二进制包, 或者使用源代码, 安装 TensorFlow.
- 二进制安装
- TensorFlow Python API 依赖 Python 2.7 版本.
- 在 Linux 和 Mac 下最简单的安装方式, 是使用 pip 安装.
- 如果在安装过程中遇到错误, 请查阅 常见问题. 为了简化安装步骤, 建议使用 virtualenv, 教程见 这里.
- Ubuntu/Linux
- # 仅使用 CPU 的版本
- $ pip install https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.5.0-cp27-none-linux_x86_64.whl
- # 开启 GPU 支持的版本 (安装该版本的前提是已经安装了 CUDA sdk)
- $ pip install https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.5.0-cp27-none-linux_x86_64.whl
- Mac OS X
- 在 OS X 系统上, 我们推荐先安装 homebrew, 然后执行 brew install python, 以便能够使用 homebrew 中的 Python 安装 TensorFlow. 另外一种推荐的方式是在 virtualenv 中安装 TensorFlow.
- # 当前版本只支持 CPU
- $ pip install https://storage.googleapis.com/tensorflow/mac/tensorflow-0.5.0-py2-none-any.whl
- 基于 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 所需的全部工具. 在该镜像上, 可以直接使用源代码进行实验, 而不需要再安装上述的任何依赖.
- 基于 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
- $ # 你的命令提示符会恢复原样
- 尝试你的第一个 TensorFlow 程序
- (可选) 启用 GPU 支持
- 如果你使用 pip 二进制包安装了开启 GPU 支持的 TensorFlow, 你必须确保 系统里安装了正确的 CUDA sdk 和 CUDNN 版本. 请参间 CUDA 安装教程
- 你还需要设置 LD_LIBRARY_PATH 和 CUDA_HOME 环境变量. 可以考虑将下面的命令 添加到 ~/.bash_profile 文件中, 这样每次登陆后自动生效. 注意, 下面的命令 假定 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()
- >>> b = tf.constant()
- >>> print sess.run(a+b)
- >>>
- 从源码安装
- 克隆 TensorFlow 仓库
- $ git clone --recurse-submodules https://github.com/tensorflow/tensorflow
- --recurse-submodules 参数是必须得, 用于获取 TesorFlow 依赖的 protobuf 库.
- Linux 安装
- 安装 Bazel
- 首先依照 教程 安装 Bazel 的依赖. 然后使用下列命令下载和编译 Bazel 的源码:
- $ git clone https://github.com/bazelbuild/bazel.git
- $ cd bazel
- $ git checkout tags/0.1.
- $ ./compile.sh
- 上面命令中拉取的代码标签为 0.1., 兼容 Tensorflow 目前版本. bazel 的HEAD 版本 (即最新版本) 在这里可能不稳定.
- 将执行路径 output/bazel 添加到 $PATH 环境变量中.
- 安装其他依赖
- $ sudo apt-get install python-numpy swig python-dev
- 可选: 安装 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.tgz
- sudo cp cudnn-6.5-linux-x64-v2/cudnn.h /usr/local/cuda/include
- sudo cp cudnn-6.5-linux-x64-v2/libcudnn* /usr/local/cuda/lib64
- 配置 TensorFlow 的 Cuba 选项
- 从源码树的根路径执行:
- $ ./configure
- Do you wish to bulid TensorFlow with GPU support? [y/n] y
- GPU support will be enabled for TensorFlow
- Please specify the location where CUDA 7.0 toolkit is installed. Refer to
- README.md for more details. [default is: /usr/local/cuda]: /usr/local/cuda
- Please specify the location where CUDNN 6.5 V2 library is installed. Refer to
- README.md for more details. [default is: /usr/local/cuda]: /usr/local/cuda
- Setting up Cuda include
- Setting up Cuda lib64
- Setting up Cuda bin
- Setting up Cuda nvvm
- Configuration 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).
- # 最后几行输出和下面的信息类似.
- / lambda = 2.000000 x = [0.894427 -0.447214] y = [1.788854 -0.894427]
- / lambda = 2.000000 x = [0.894427 -0.447214] y = [1.788854 -0.894427]
- / 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.-cp27-none-linux_x86_64.whl
- 训练你的第一个 TensorFlow 神经网络模型
- 从源代码树的根路径执行:
- $ cd tensorflow/models/image/mnist
- $ python convolutional.py
- Succesfully downloaded train-images-idx3-ubyte.gz bytes.
- Succesfully downloaded train-labels-idx1-ubyte.gz bytes.
- Succesfully downloaded t10k-images-idx3-ubyte.gz bytes.
- Succesfully downloaded t10k-labels-idx1-ubyte.gz bytes.
- Extracting data/train-images-idx3-ubyte.gz
- Extracting data/train-labels-idx1-ubyte.gz
- Extracting data/t10k-images-idx3-ubyte.gz
- Extracting data/t10k-labels-idx1-ubyte.gz
- Initialized!
- Epoch 0.00
- Minibatch loss: 12.054, learning rate: 0.010000
- Minibatch error: 90.6%
- Validation error: 84.6%
- Epoch 0.12
- Minibatch loss: 3.285, learning rate: 0.010000
- Minibatch error: 6.2%
- Validation error: 7.0%
- ...
- ...
- 常见问题
- GPU 相关问题
- 如果在尝试运行一个 TensorFlow 程序时出现以下错误:
- ImportError: libcudart.so.7.0: cannot open shared object file: No such file or directory
- 请确认你正确安装了 GPU 支持, 参见 相关章节.
- 在 Linux 上
- 如果出现错误:
- ...
- "__add__", "__radd__",
- ^
- SyntaxError: invalid syntax
- 解决方案: 确认正在使用的 Python 版本为 Python 2.7.
- 在 Mac OS X 上
- 如果出现错误:
- import six.moves.copyreg as copyreg
- ImportError: No module named copyreg
- 解决方案: TensorFlow 使用的 protobuf 依赖 six-1.10.. 但是, Apple 的默认 python 环境 已经安装了 six-1.4., 该版本可能很难升级. 这里提供几种方法来解决该问题:
- 升级全系统的 six:
- sudo easy_install -U six
- 通过 homebrew 安装一个隔离的 python 副本:
- brew install python
- 在virtualenv 内编译或使用 TensorFlow.
- 如果出现错误:
- >>> import tensorflow as tf
- Traceback (most recent call last):
- File "<stdin>", line , in <module>
- File "/usr/local/lib/python2.7/site-packages/tensorflow/__init__.py", line , in <module>
- from tensorflow.python import *
- File "/usr/local/lib/python2.7/site-packages/tensorflow/python/__init__.py", line , in <module>
- from tensorflow.core.framework.graph_pb2 import *
- ...
- File "/usr/local/lib/python2.7/site-packages/tensorflow/core/framework/tensor_shape_pb2.py", line , in <module>
- 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.. 当前 最好的解决方案是确保没有安装旧版本的 protobuf, 可以使用以下命令重新安装 protobuf 来解决 冲突:
- brew reinstall --devel protobuf
- 原文:Download and Setup 翻译:@doc001 校对:@yangtze
TensorFlow中文社区---下载与安装的更多相关文章
- 机器学习资源汇总----来自于tensorflow中文社区
新手入门完整教程进阶指南 API中文手册精华文章TF社区 INTRODUCTION 1. 新手入门 1.1. 介绍 1.2. 下载及安装 1.3. 基本用法 2. 完整教程 2.1. 总览 2.2. ...
- erlang 中文社区 下载
http://www.cnerlang.com/download/ erlang 下载 http://www.blogjava.net/killme2008/archive/2007/06/1 ...
- go语言,golang学习笔记1 官网下载安装,中文社区,开发工具LiteIDE
go语言,golang学习笔记1 官网下载安装,中文社区,开发工具LiteIDE Go语言是谷歌2009发布的专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速 ...
- 安装Visual Studio 2013 中文社区版
Visual Studio 2013 免费了,我收到邮件后,立即从邮件的下载连接安装了 Visual Studio Community 2013 with Update 4 . 安装后几天没打开,今天 ...
- TensorFlow 中文资源全集,官方网站,安装教程,入门教程,实战项目,学习路径。
Awesome-TensorFlow-Chinese TensorFlow 中文资源全集,学习路径推荐: 官方网站,初步了解. 安装教程,安装之后跑起来. 入门教程,简单的模型学习和运行. 实战项目, ...
- Kubernetes 1.8.x 全手动安装教程----转自Kubernetes中文社区(部分内容根据实验环境做了些修改,特此感谢Kubernetes中文社区)
Kubernetes 提供了许多云端平台与操作系统的安装方式,本章将以全手动安装方式来部署,主要是学习与了解 Kubernetes 创建流程.若想要了解更多平台的部署可以参考 Picking the ...
- TensorFlow 中文资源精选,官方网站,安装教程,入门教程,实战项目,学习路径。
Awesome-TensorFlow-Chinese TensorFlow 中文资源全集,学习路径推荐: 官方网站,初步了解. 安装教程,安装之后跑起来. 入门教程,简单的模型学习和运行. 实战项目, ...
- 3D Slicer中文教程(一)—下载及安装方法
3D Slicer是用于医学图像信息学,图像处理和三维可视化的开源软件平台. 通过国家卫生研究院和全球开发人员社区的支持,二十多年来,Slicer为医生,研究人员和公众提供了免费,强大的跨平台加工工具 ...
- tensorflow下载和安装
下载以及安装 选择类型 必须选择以下类型的TensorFlow之一来安装: TensorFlow仅支持CPU支持.如果您的系统没有NVIDIA®GPU,则必须安装此版本.请注意,此版本的Tenso ...
随机推荐
- spark实战之网站日志分析
前面一篇应该算是比较详细的介绍了spark的基础知识,在了解了一些spark的知识之后相必大家对spark应该不算陌生了吧!如果你之前写过MapReduce,现在对spark也很熟悉的话我想你再也不想 ...
- 文件的特殊权限(SUID,SGID,SBIT)
文件的一般权限:r w x 对应 421 文件的特殊权限:SUID SGID SBIT对应 421 文件的隐藏权限:chattr设置隐藏权限,lsattr查看文件的隐藏权限. 文件访问控制列表: ...
- sql优化系列2
sql中索引是否会用到,进而影响查询效率. 带通配符(%)的like语句 1.不能用null作索引,任何包含null值的列都将不会被包含在索引中.即使索引有多列这样的情况下,只要这些列中有一列含有nu ...
- Redis实现之压缩列表
压缩列表 压缩列表(ziplist)是列表键和哈希键的底层实现之一,当一个列表键只包含少量列表项,并且每个列表项要嘛是整数值,要嘛是比较短的字符串,那么Redis就会使用压缩列表来做列表键的底层实现. ...
- 介绍 Active Directory 域服务 (AD DS) 虚拟化
TechNet 库 Windows Server Windows Server 2012 R2 和 Windows Server 2012 服务器角色和技术 Active Directory Acti ...
- day05_08 列表讲解、切片、内置方法
1.0 查询: a = ['wuchao','jinxing','xiaohu','sanpang','ligang'] print(a[3]) #>>>sanpang prin ...
- 区分Activity的四种加载模式【转载】
此文为转载,文章来源:http://marshal.easymorse.com/archives/2950 文章作者: Marshal's Blog 参考文章:http://blog.csdn.n ...
- Format aborted in 格式化namenode 失败的原因
[user6@das0 hadoop-0.20.203.0]$ bin/hadoop namenode -format 12/02/20 14:05:17 INFO namenode.NameNode ...
- MFC录制音频和播放音频
一.录制音频 在windows中提供了相应的API函数(waveIn这个族的函数)实现录音功能:在使用这些函数时,一定要引入相应的头文件 #include <windows.h> #inc ...
- 使用xcache加速PHP运行
XCache 是一个开源的 opcode 缓存器/优化器, 这意味着他能够提高您服务器上的 PHP 性能. 他通过把编译 PHP 后的数据缓冲到共享内存从而避免重复的编译过程, 能够直接使用缓冲区已编 ...