极简深度学习平台构建指南

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Allocator/article/details/80700942

背景

我们在train一个深度学习模型的时候常常需要特别强大的计算力(即便这个模型结构比较简单). 而选择个人电脑进行training也是一件相当耗时的事情. 毕竟不是所有的公司和个人都有强悍的进行深度学习模型训练的GPU计算资源(笑~). 在当前的情况下, 笔者手上只有一个强大的云计算平台可以使用, 但是目前还不能够使用GPU进行训练. 于是退而求其次, 充分利用其CPU和内存资源进行模型训练. 于是想到构建这样一个deep learning 的docker image. 这样只需要进行一次环境的构建(build第一个docker image)后, 在其他的Linux平台上面都可使用这个深度学习环境, 十分方便.

准备工作

首先笔者在Cloud上面申请了一台Centos7.x系统的Instance. 然后是安装docker. 在Centos7.x 上面安装docker(docker官方文档)只需要使用指令yum install -y docker 即可, 记得把docker service 设置为开机启动即可. 编程语言方面选择python 版本选择3.5.x 因为目前tensorflowpython 3.5.x 支持是最好的. 运行python 的平台选择anaconda . 它已经包含了很多机器学习相关的库, 不再需要我们再一步步去安装一些基础得库(比如numpy, pandas, sklearn 等). 深度学习框架选择tensorFlow 作为backend . 顶层开发框架选择keras . 到此准备工作完毕.

构建过程

笔者已经完成了构建镜像的dockerfile 因此只需要进入在Instance上面dockerfile目录下运行docker build -t XXXX . 即可完成镜像的构建.dockerfile 如下:

# deeplearning base image
FROM centos
MAINTAINER *youraccount*

# version control
ENV DL_BASE_VERSION_CTL 14/6/2018 11:10:00

# set env
ENV ANACONDA_HOME /usr/local/anaconda3

# install basic software vim
RUN yum install -y vim

# install anaconda3 py3.5.x
RUN yum install -y wget
RUN yum install -y bzip2
RUN mkdir -p /home/download
RUN cd /home/download
RUN wget https://repo.continuum.io/archive/Anaconda3-4.2.0-Linux-x86_64.sh
RUN chmod 755 ./Anaconda3-4.2.0-Linux-x86_64.sh
RUN ./Anaconda3-4.2.0-Linux-x86_64.sh -b -p /usr/local/anaconda3
RUN rm -rf /home/download/*

# create link
RUN ln -s $ANACONDA_HOME/bin/python /usr/bin/python3
RUN ln -s $ANACONDA_HOME/bin/pip /usr/bin/pip3
RUN ln -s $ANACONDA_HOME/bin/conda /usr/bin/conda

# install tensorflow with cpu
RUN pip3 install --upgrade --ignore-installed tensorflow

# install keras 
RUN conda install -y keras

然后只需要执行docker build -t={imagename} . 即可完成镜像的构建.
然后使用该镜像启动容器的脚本如下:

echo 'start the dlimage container'
docker run \
-it \
--name=dlcontainer \
-h dlcontainer \
-v /home/dldir:/home/dldir \
{yourimage} \
/bin/bash

在这个地方, 我在启动容器的时候建立一个挂载卷完成容器中的目录与Instance上的存放训练数据以及程序的目录的映射, 这样上传在宿主机器上的数据以及程序可以直接在容器内访问到. 最后的容器启动指令/bin/bash 可以改为python3 XXX/XXX/yourcode.py 那么启动容器的时候就能够直接train模型了.
整个构建好的image已经放在dockehub上面了(dlimage). 喜欢的同学可以pull下来玩一玩.相关的项目的github地址为dlimage.

总结

由于目前手上没有”廉价”的GPU环境可以使用, 当前构建的镜像只能够使用CPU和内存资源去train模型. 当云平台支持GPU进行运算的时候, 我会第一时间更新, 推出支持GPU计算的docker dlimage.

猜你喜欢

转载自blog.csdn.net/Allocator/article/details/80700942