为什么要用docker来搭建环境?docker的好处我就不列举了,官网和各种教程上都有。我就谈谈我用过之后的感受吧。

docker就是把运维工作工程化,运用docker可以在几分钟内完成服务器甚至集群环境的部署,可以方便的对环境进行隔离、封装、保存、迁移,非常灵活和高效,对服务器资源的利用率也有极大的提升,也难怪docker会迅速在全世界风靡起来。

另外,Keras的源码中专门提供了一个docker文件夹来为我们简化环境的搭建,所以为什么要辜负Keras项目组的一片好心呢?

安装前一定要检查硬件配置要求,不然配置过程会相当坎坷。硬件达不到要求的话,还是老老实实地安装吧。Ubuntu是Nvidia官方以及绝大多数深度学习框架默认开发环境,用其他系统可能会出现更多的问题,所以这里以Ubuntu16.04 TLS系统为例。

更新和升级软件包

sudo apt update;
sudo apt upgrade

安装运算加速

sudo apt install -y libopenblas-dev liblapack-dev libatlas-base-dev

快速安装docker

如果服务器不在国内,建议去掉 –mirror Aliyun,国内用阿里的源会提高下载速度,但是可能会出问题。

curl -fsSL get.docker.com -o get-docker.sh;
sudo sh get-docker.sh --mirror Aliyun

下载keras源码

cd your-project-path
git clone https://github.com/keras-team/keras.git

cd keras/docker
make help

正常情况下会打印下图的说明: 正常结果 我操作的时候遇到了下面这种情况, 异常结果 按提示安装make即可:

apt install make

启动Docker容器

官方用docker和Makefile简化了环境的搭建和docker的启动命令,我们只需要用很简短的make命令就可以完成复杂的操作。

构建容器并启动Jupyter Notebook

make notebook

构建容器并启动iPython shell

make ipython

构建容器并启动bash

make bash

切换Theano和TensorFlow

make notebook BACKEND=theano
make notebook BACKEND=tensorflow

为外部数据集挂载数据卷

make DATA=~/mydata

打印所有make命令的说明

make help