目录

在 Mac OS X 上安装 TensorFlow

注意:从 1.2 版本开始,在 Mac OS X 上 TensorFlow 不再支持 GPU。

首先在官网上看一下 TensorFlow 运行环境需要哪个版本的 python,目前(2018-10-6)是 Python 2.7, Python 3.4, 3.5, 3.6。我现在通过 homebrew 安装的 python 已经是3.7了,安装完后,pip找不到 TensorFlow,所以先看一下本地的环境是否符合可以少走一些弯路。

我是通过 virtualenv 安装的环境,官网也是默认用这个。virtualenv 是一个和其它 Python 项目开发隔离的虚拟 Python 环境,在同一台机器上不会干扰也不会被其它程序影响。virtualenv 安装过程中,你不仅仅安装了 TensorFlow 还有它的所有依赖包。(事实上这很简单)要开始使用 TensorFlow,你需要“启动” virtualenv 环境。总而言之,virtualenv 提供了一个安全可靠的 TensorFlow 安装和运行机制。

使用 virtualenv 安装

打开终端(一个 shell),你将在这个终端中执行随后的步骤

安装 pip

通过命令安装 virtualenv

1
2
$ pip install --upgrade virtualenv  # for Python 2.7
$ pip3 install --upgrade virtualenv # for Python 3.n

执行以下任一命令创建虚拟环境:

1
2
$ virtualenv --system-site-packages ~/tensorflow # for Python 2.7
$ virtualenv --system-site-packages -p python3 ~/tensorflow # for Python 3.n

~/tensorflow 是 virtualenv 环境的根目录,因为我这个是要给tf用的,所以就起这个名字了,可以根据个人情况更改。

执行任一命令激活虚拟环境:

1
2
$ source ~/tensorflow/bin/activate      # If using bash, sh, ksh, or zsh
$ source ~/tensorflow/bin/activate.csh  # If using csh or tcsh 

上面的 source 命令应该将提示符改成了下面这样:

1
(tensorflow)$ 

如果已经安装了 pip 8.1 或者更新的版本,执行以下任一命令在激活的虚拟环境中安装 TensorFlow 及其所有依赖:

1
2
$ pip install --upgrade tensorflow      # for Python 2.7
$ pip3 install --upgrade tensorflow     # for Python 3.n

安装完成后,验证你的安装是否工作正常。

如果要卸载 TensorFlow,执行下面的命令

1
2
$ pip uninstall tensorflow    # Python 2.7
$ pip3 uninstall tensorflow   # Python 3.n 

可选,如果安装失败了(一般是因为你使用了低于 8.1 版本的 pip),执行以下任一命令在激活的虚拟环境中安装 TensorFlow:

1
2
$ pip install --upgrade tfURL   # Python 2.7
$ pip3 install --upgrade tfURL  # Python 3.n 

tfURL 是 Tensorflow 包的 URL,准确的 tfURL 值因操作系统和 Python 版本而异,在[这里](https://www.tensorflow.org/install/pip找到和你系统相关的 tfURL 值。例如,你要在 Mac OS X 上安装 Python 3.6 对应的 Tensorflow 版本,在虚拟环境中安装 Tensorflow 就执行下面的命令:

1
$ pip3 install --upgrade https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-1.11.0-py3-none-any.whl

注意,每打开一个新的 shell 使用 TensorFlow 都必须激活虚拟环境。如果当前虚拟环境没有被激活(也就是提示符不是 tensorflow),执行以下任一命令:

1
2
$ source ~/tensorflow/bin/activate      # bash, sh, ksh, or zsh
$ source ~/tensorflow/bin/activate.csh  # csh or tcsh 

你的提示符变成下面这样说明 tensorflow 环境已经激活:

1
(tensorflow)$ 

当虚拟环境激活后,你可以在这个 shell 中运行 TensorFlow 程序。如果你不再使用 TensorFlow,可以通过下面命令退出环境:

1
(tensorflow)$ deactivate 

如果你想卸载 TensorFlow,简单地移除你创建的目录。例如:

1
 rm -r ~/tensorflow 

运行一个小的 TensorFlow 程序

在一个 shell 中执行 Python:

1
python3

在 python 交互式 shell 中输入以下小程序:

1
2
3
4
5
6
# Python

import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))

如果系统输出以下内容,你可以开始写 TensorFlow 程序了:

1
Hello, TensorFlow!

如果你不熟悉 TensorFlow,参考 Getting Started with TensorFlow

常见错误

SSE4.1

如果遇到警告

1
The TensorFlow library wasn't compiled to use SSE4.1 instructions, but these are available on your machine and could speed up CPU computations.

这个问题的出现主要是和tensorflow的安装方式有关系,使用pip安装就会出现对代码编译优化的问题,使得你电脑有SSE4.1等命令,却无法调用来加速训练,所以最好是安装时候多费点事用源码编译,能够解决这个报错提示的问题,同时也能在以后的项目中发挥本机CPU的性能进行加速训练。

如果不想编译源码可以在代码中加入

1
2
import os
os.environ['TF_CPP_MIN_LOG_LEVEL']='2'

便不会出现警告了。

注意《TensorFlow 实战》中的代码版本

应该会有人是在看《TensorFlow 实战》来学习tf的吧,注意该书的代码版本是1.0,所以安装tf版本要对应,否则一些接口可能会失效(其实第一个demo已经跑不来了)。

用一下命令或者直接在官网找1.0的URL都可以。

1
$ pip3 install tensorflow==1.0.0   # Python 3.n