人工智能python实现-在Ubuntu上安装Keras及其依赖

A.1 安装Python科学套件
A.2 设置GPU支持
A.3 安装Theano
A.4 安装Keras

附录A 在 Ubuntu上安装   Keras及其依赖

建立深度学习工作站的过程相当复杂,本附录会详细介绍具体步骤,如下所示。

(1)安装  Python科学套件(Numpy和   SciPy),并确认安装了基础线性代数子程序(BLAS)库,这样模型才能在 CPU上快速运行。

(2)另外再安装两个软件包,  HDF5(用于保存大型的神经网络文件)和   Graphviz(用于将神经网络架构可视化)。在使用 Keras时这两个软件包很有用。

(3)安装  CUDA驱动程序和  cuDNN,确保 GPU能够运行深度学习代码。

(4)安装一个  Keras后端:TensorFlow、CNTK或   Theano。

(5)安装  Keras。

这个过程可能看起来有点麻烦。其实唯一的难点就是设置 GPU支持,其他步骤用几个命令就可以完成,只需几分钟即可。

我们假设你已经安装了全新的 Ubuntu,并配备了  NVIDIA GPU。开始之前,请确认你已经安装了pip,并确认你的包管理器是最新的。

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

Python 2与  Python 3的对比

默认情况下,Ubuntu在安装  Python包时使用  Python 2(比如python-pip)。如果你想使用 Python 3,那么应该使用python3前缀代替python。例如:

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

使用pip安装包时要记住,它默认安装的是     Python  2的包。想要安装   Python 3的包,你应该使用pip3。

$ sudo pip3 install tensorflow-gpu

A.1 安装 Python科学套件

如果你用的是 Mac,我们推荐你通过 Anaconda安装  Python科学套件。你可以在  https://www.anaconda.com/download/下载  Anaconda。注意,其中并不包含 HDF5和  Graphviz,需要手动安装。在 Ubuntu上手动安装  Python科学套件的步骤如下所示。

(1)安装  BLAS库(这里安装的是  OpenBLAS),确保你可以在 CPU上运行快速的张量运算。

$ sudo apt-get install build-essential cmake git unzip \
pkg-config libopenblas-dev liblapack-dev

(2)安装   Python科学套件:Numpy、SciPy和   Matplotlib。无论是否做深度学习,如果想要使用 Python进行任意类型的机器学习或科学计算,这一步都是必需的。

$ sudo apt-get install python-numpy python-scipy python-matplotlib python-yaml

(3)安装   HDF5。这个库最初由 NASA(美国国家航空航天局)开发,用高效的二进制格式来保存数值数据的大文件。它可以让你将 Keras模型快速高效地保存到磁盘。

$ sudo apt-get install libhdf5-serial-dev python-h5py

(4)安装   Graphviz和  pydot-ng,这两个包可以将 Keras模型可视化。它们对运行   Keras并不是必需的,所以你可以跳过这一步,在需要时再来安装这些包。安装命令如下。

$ sudo apt-get install graphviz
$ sudo pip install pydot-ng

(5)安装某些代码示例中用到的其他包。

$ sudo apt-get install python-opencv

A.2 设置 GPU支持

使用 GPU并不是绝对必要的,但我们强烈推荐使用    GPU。本书的所有代码示例都可以在笔记本电脑的 CPU上运行,但训练模型有时可能需要等待几个小时,而在一个好的     GPU上则只需要几分钟。如果你没有一块现代的 NVIDIA GPU,则可以跳过这一步,直接阅读 A.3节。

想要用 NVIDIA GPU做深度学习,需要同时安装  CUDA和  cuDNN。

  • CUDA。用于 GPU的一组驱动程序,它让  GPU能够运行底层编程语言来进行并行计算。
  • cuDNN。用于深度学习的高度优化的原语库。使用 cuDNN并在  GPU上运行时,通常可以将模型的训练速度提高 50%到  100%。

TensorFlow依赖于特定版本的   CUDA和  cuDNN库。写作本书时,它使用的是   CUDA 8和cuDNN 6。请查阅 TensorFlow网站,上面详细说明了当前推荐的版本。

请按照以下步骤操作。

(1)下载   CUDA。对于 Ubuntu(以及其他 Linux版本),NVIDIA提供了现成的安装包,可以在 https://developer.nvidia.com/cuda-downloads下载。

$ wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_9.0.176-1_amd64.deb

(2)安装   CUDA。最简单的安装方法就是对这个包使用 Ubuntu的apt命令。这样就可以在程序更新时使用apt轻松安装更新。

$ sudo dpkg -i cuda-repo-ubuntu1604_9.0.176-1_amd64.deb
$ sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/ x86_64/7fa2af80.pub
$ sudo apt-get update
$ sudo apt-get install cuda-8-0

(3)安装  cuDNN。

①注册一个免费的  NVIDIA开发者账号(遗憾的是,想要下载   cuDNN,这一步是必需的),然后在 https://developer.NVIDIA.com/cudnn下载  cuDNN(选择与 TensorFlow兼容的 cuDNN版本)。与  CUDA一样,NVIDIA也提供了用于不同  Linux版本的软件包,我们将使用针对 Ubuntu  16.04的版本。注意,如果你用的是   EC2实例,那么是无法将 cuDNN存档直接下载到实例中的,你需要将其下载到本地计算机上,然后再利用scp命令将其上传到  EC2实例中。

②安装 cuDNN。

$ sudo dpkg -i dpkg -i libcudnn6*.deb

(4)安装  TensorFlow。

①无论是否支持  GPU,都可以使用 pip从 PyPI安装   TensorFlow。安装不支持 GPU的TensorFlow的命令如下。

$ sudo pip install tensorflow

②安装支持 GPU的  TensorFlow的命令如下。

$ sudo pip install tensorflow-gpu

A.3 安装 Theano(可选)

你已经安装了  TensorFlow,所以无须安装   Theano即可运行   Keras代码。但构建   Keras模型时,在 TensorFlow和  Theano之间来回切换有时会很有用。

Theano也可以从  PyPI安装。

$ sudo pip install theano

如果你有 GPU,那么应该配置 Theano来使用  GPU。你可以用下面这个命令创建一个  Theano配置文件。

nano ~/.theanorc

然后,将下列配置写入这个文件。

[global]
floatX = float32
device = gpu0

[nvcc]
fastmath = True

A.4 安装  Keras

可以从 PyPI安装 Keras。

$ sudo pip install keras

或者也可以从 GitHub安装  Keras。这么做的话,就可以访问   keras/examples文件夹,里面包含许多示例脚本供你学习。

$ git clone https://github.com/fchollet/keras
$ cd keras
$ sudo python setup.py install

现在你可以尝试运行一个 Keras脚本,比如这个 MNIST示例。

python examples/mnist_cnn.py

注意,完整运行这个示例可能需要几分钟。因此,在确认   Keras可以正常运行之后,你可以随时强制退出(按 Ctrl-C)。

运行 Keras至少一次之后,就可以在   ~/.keras/keras.json找到  Keras的配置文件。你可以编辑这个文件,选择运行  Keras的后端:tensorflow、theano或cntk。你的配置文件应该是这样的。

{
    "image_data_format": "channels_last",
    "epsilon": 1e-07,
    "floatx": "float32",
    "backend": "tensorflow"
}

运行 examples/mnist_cnn.py这个  Keras脚本时,你可以在另一个   shell窗口中监控   GPU利用率。

$ watch -n 5 NVIDIA-smi -a --display=utilization

一切安装完成,恭喜你!现在可以开始构建深度学习应用了。

作者:

喜欢围棋和编程。

 
发布于 分类 编程标签

发表评论

电子邮件地址不会被公开。