1.2 安装TensorFlow
针对多种不同的操作系统,TensorFlow提供了几种不同且便捷的安装方式和操作方式。基础安装仅仅支持CPU,而更高级的安装通过将计算推送到单个显卡甚至是多个显卡上,以调动更大的计算力。建议首先从基本的CPU安装开始,更复杂的GPU和CUDA安装将会在第12章中讨论。
即使是基础的CPU安装,TensorFlow也提供了多种选项,如下所示。
- 基础的Python pip安装。
- 通过Virtualenv实现的隔离Python安装。
- 通过Docker实现的基于容器的完全隔离安装。
推荐使用通过Virtualenv实现的隔离Python安装,但我们的示例将采用基础的Python pip安装,以有助于你关注任务的关键点,即搭建并运行TensorFlow。
在Linux和macOS系统中,TensorFlow可在Python 2.7和Python 3.5版本下正常工作,而在Windows系统中,则只能在Python 3.5.x或Python 3.6.x版本下使用TensorFlow。在Windows系统中运行一个Linux虚拟机,如Ubuntu虚拟机,我们也可以在Python 2.7环境下使用TensorFlow。然而,在虚拟机中,无法使用支持GPU的TensorFlow。在TensorFlow 1.2版本中,TensorFlow未提供macOS系统下的GPU支持。因此,如果你想在macOS系统中使用支持GPU的TensorFlow,那么必须从源码进行编译(这超出了本章的讨论范围),否则,仍然可以使用TensorFlow 1.0或TensorFlow 1.1版本,它们提供了macOS下的GPU支持。此外,Linux和Windows用户也可以使用支持CPU和GPU的TensorFlow。
1.2.1 Ubuntu安装
Ubuntu是运行TensorFlow最好的Linux发行版之一。强烈建议读者使用Ubuntu虚拟机,尤其是想要使用GPU时。我们将在Ubuntu终端上完成大部分的工作。下面,首先通过以下命令来安装python-pip和python-dev。
sudo apt-get install python-pip python-dev
安装成功界面如图1-1所示。
图1-1
如果发现缺失软件包,那么可以通过以下命令进行修正。
sudo apt-get update --fix-missing
然后,就可以继续安装python-pip和python -dev了。
现在,准备安装TensorFlow。我们将安装仅支持CPU的TensorFlow。
通过以下命令启动支持CPU的TensorFlow的安装。
sudo pip install tensorflow
安装成功界面如图1-2所示。
图1-2
1.2.2 macOS安装
如果你使用Python,那么你很可能已经拥有了Python包安装器pip
。但是,如果尚未安装pip
,那么可以使用命令easy_install pip
轻松地安装它。你可能会注意到,我们实际执行的命令是sudo easy_install pip
,之所以需要使用前缀sudo
,是因为此安装需要管理权限。
假设你已经有了基本的软件包安装器easy_install
,如果没有,那么可以从Python官网下载并安装它。安装成功将会显示图1-3所示的结果。
图1-3
接下来,安装six
包。
sudo easy_install --upgrade six
安装成功界面如图1-4所示。
图1-4
TensorFlow的安装仅仅需要满足这两个先决条件,现在可以安装核心平台TensorFlow了。此处,将使用前面提到的pip
包安装器,并且可以直接从谷歌网站下载安装TensorFlow。在本书编写之际,TensorFlow的最新版本是v1.3,但是你可以将其修改成想使用的最新版本。
sudo pip install tensorflow
pip安装器将自动收集所有其他所需的依赖项。在该软件安装完全结束之前,你可以看到每个下载项和安装过程信息。
安装成功界面如图1-5所示。
图1-5
至此,你就可以跳到第2章开始训练并运行你的第一个模型了。
如果macOS X用户希望完全隔离这些安装,那么可以使用虚拟机来代替,正如在1.2.3节中所描述的那样。
1.2.3 Windows安装
正如前面提到的,在Windows系统中,TensorFlow无法正常工作于Python 2.7环境。在本节中,我们将指导你在Python 3.5环境下安装TensorFlow。如果想在Python 2.7环境下使用TensorFlow,需要创建一个Linux虚拟机。
首先,需要安装64位版本的Python 3.5.x或Python 3.6.x,下载地址为Python官网。
请确保下载的是64位版本的Python,其中安装文件的名称中包含amd64,例如python-3.6.2-amd64.exe。Python 3.6.2的安装步骤如图1-6所示。
图1-6
选择Add Python 3.6 to PATH并单击Install Now。安装过程结束时将会显示图1-7所示的画面。
图1-7
单击Disable path length limit,然后单击Close完成Python的安装。打开Windows菜单下的Windows PowerShell应用,通过下面的命令安装仅支持CPU的TensorFlow版本。
pip3 install tensorflow
安装过程如图1-8所示。
图1-8
安装结果如图1-9所示。
图1-9
现在你可以在Windows系统中,Python 3.5.x或3.6.x环境下使用TensorFlow了。
接下来将介绍如何创建一个Linux虚拟机,以实现在Python 2.7环境下使用TensorFlow。如果你不需要Python 2.7,那么可以直接跳到1.2.5节。推荐使用免费的VirtualBox系统,可在VirtualBox官网获得。在本书编写之际(2017年),VirtualBox最新的稳定版本是v5.0.14。成功安装后,你可以运行Oracle VM VirtualBox Manager控制面板,如图1-10所示。
图1-10
1.2.4 创建虚拟机
Linux有很多不同风格的发行版,但TensorFlow文档中提到最多的是Ubuntu,我们也将使用Ubuntu Linux。你可以使用任何风格的Linux,但是应该意识到这一点,即不同风格的Linux发行版之间,以及每种发行版的不同版本之间都存在着细微的差别。大多数的差异是良性的,但是有些可能会影响TensorFlow的安装,甚至是影响TensorFlow的使用。
即使在选择了Ubuntu之后,也存在很多不同的版本和配置。你可以在Ubuntu官网上看到这些信息。
我们将安装Ubuntu 14.04.4 LTS(请确保下载适合你计算机的版本)。标记了x86的版本设计为在32位机器上运行,而标记了x64的版本则设计为运行于64位机器上。大多数现代机器都是64位的,所以如果你不确定,那就选择后者。
我们利用一个ISO文件进行安装,该文件本质上等同于一个安装光盘。Ubuntu 14.04.4 LTS的ISO文件是ubuntu-gnome-14.04-desktop-amd64.iso。
下载ISO安装文件之后,我们将创建一个虚拟机,并使用ISO文件在虚拟机上安装Ubuntu Linux。
在Oracle VM VirtualBox Manager上创建虚拟机相当简单,但是需要重点注意其默认选项,因为默认选项并不足以运行TensorFlow。在安装过程中,将会看到接下来的8个界面,最后,它将提示你提供安装文件,该文件正是前面所下载的ISO文件。
首先,设置操作系统的类型,并配置分配给虚拟机的随机存储器(RAM)。
1.注意,我们选择了一个64位的安装,因为我们的Ubuntu镜像是64位的。如果需要,你可以选择使用32位镜像,如图1-11所示。
图1-11
2.为该虚拟机分配多少内存取决于你的机器有多少内存。在图1-12所示的截图中,我们将把一半的RAM(8GB)分配给虚拟机。需要记住的是,只有运行虚拟机时才会使用这些内存,所以我们可以自由分配内存,我们至少可以分配4 GB的内存。
图1-12
3.虚拟机还需要一个硬盘。我们将创建一个虚拟硬盘(Virtual Hard Disk,VHD),如图1-13所示。
图1-13
4.选择虚拟机的硬盘类型,即磁盘镜像(VirtualBox Disk Image,VDI),如图1-14所示。
图1-14
5.接下来,选择为VHD(虚拟硬盘)分配多少空间,如图1-15所示。这一点很重要,因为我们很快就会使用庞大的数据集。
图1-15
6.TensorFlow和典型的TensorFlow应用程序有一系列的依赖包,例如NumPy、SciPy和pandas。除此以外我们的练习也将下载大型数据集,这些都将用于训练模型。因此,我们为虚拟硬盘分配12 GB的空间,如图1-16所示。
图1-16
7.虚拟机设置好之后,它将出现在左边的虚拟机列表中。选中它并单击Start按钮,如图1-17所示。这相当于启动了机器。
图1-17
8.当机器第一次启动时,我们需向其提供安装光盘,即前面下载的Ubuntu ISO,如图1-18所示。
图1-18
按照安装说明操作,你将拥有一个完整的可供使用的Ubuntu Linux虚拟机。在此之后,可以按照1.2.1节的内容进行操作。
1.2.5 测试安装
本节将使用TensorFlow来执行一个简单的数学运算,以测试安装效果。
首先,在Linux或macOS系统中打开终端,或者在Windows中打开Windows PowerShell。
然后通过以下命令运行Python来使用TensorFlow。
python
在Python shell中输入以下程序:
import tensorflow as tf
a = tf.constant(1.0)
b = tf.constant(2.0)
c = a + b
sess = tf.Session()
print(sess.run(c))
运行结果如图1-19所示,最后输出计算结果3.0。
图1-19