前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CTPN docker/nvidia-docker 安装

CTPN docker/nvidia-docker 安装

作者头像
bear_fish
发布2018-09-14 09:48:52
6520
发布2018-09-14 09:48:52
举报

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://cloud.tencent.com/developer/article/1338338

本文主要是记录使用docker/nvidia-docker安装深度学习图片文字识别,开发运行环境.

在做图片文字识别的,需要用到CTPN以及crnn,服务器是ubuntu16的,但是上述两种框架(github现有的)只能运行在ubuntu14上面。考虑到,发布等问题,决定使用docker在ubuntu16搭建ubuntu14 cuda7.5 cudnn3开发运行环境。

服务器系统为ubuntu16.04,GPU卡为M40,安装了CUDA7.5.

主机,以及docker信息如下:

机器的CUDA信息:

接下来对照nvidia-docker安装方法,安装nvidia-docker.

docker一般都是使用基于CPU的应用,而如果是GPU的话,就需要安装特有的硬件环境,比如需要安装nvidia driver。所以docker容器并不直接支持Nvidia GPU。为了解决这个问题,最早的处理办法是在容器内部,全部重新安装nvidia driver,然后通过设置相应的设备参数来启动container,然而这种办法是很脆弱的。因为宿主机的driver的版本必须完全匹配容器内的driver版本,这样导致docker image无法共享,很可能本地机器的不一致导致每台机器都需要去重复操作,这很大的违背了docker的设计之初。 nvidia-docker是一个可以使用GPU的docker,nvidia-docker是在docker上做了一层封装,通过nvidia-docker-plugin,然后调用到docker上,其最终实现的还是在docker的启动命令上携带一些必要的参数。

安装成功之后,安装上面的示例,我们可以看到GPU卡的信息:

下面首先安装ubuntu14以及对应的cuda7.5(需要和主机上面的CUDA一致), cudnn3,devel(可以编译使用CUDA的工具)

docker pull nvidia/cuda:7.5-cudnn3-devel-ubuntu14.04

安装成功之后:

运行容器并验证:

github上面的CTPN 的docker安装,在我的机器上面是不行的,由于要兼容CRNN,因此先对其做了修改:

FROM nvidia/cuda:7.5-cudnn3-devel-ubuntu14.04
MAINTAINER xiongyu <haluoluo@qq.com>

RUN apt-get update && apt-get install -y --no-install-recommends \
        build-essential \
        cmake \
        git \
        wget \
        zip \
        unzip \
        libatlas-base-dev \
        libboost-all-dev \
        libgflags-dev \
        libgoogle-glog-dev \
        libhdf5-serial-dev \
        libleveldb-dev \
        liblmdb-dev \
        libopencv-dev \
        libprotobuf-dev \
        libsnappy-dev \
        protobuf-compiler \
        python-dev \
        python-numpy \
        python-pip \
        python-setuptools \
        python-scipy \
        python-opencv && \
    rm -rf /var/lib/apt/lists/*

ENV CTPN_ROOT=/opt/ctpn
WORKDIR $CTPN_ROOT

RUN git clone --depth 1 https://github.com/tianzhi0549/CTPN.git
WORKDIR $CTPN_ROOT/CTPN/caffe

# Missing "packaging" package
RUN pip install --upgrade pip
RUN pip install packaging

# -i use tsinghua source for speedup install
RUN cd python && for req in $(cat requirements.txt) pydot; do pip install $req -i https://pypi.tuna.tsinghua.edu.cn/simple/; done && cd ..

WORKDIR $CTPN_ROOT/CTPN/caffe
RUN cp Makefile.config.example Makefile.config
RUN apt-get update && apt-get install -y --no-install-recommends \
    vim
RUN mkdir build && cd build && \
    cmake -DUSE_CUDNN=1 .. && \
    WITH_PYTHON_LAYER=1 make -j"$(nproc)" && make pycaffe

# Set the environment variables so that the paths are correctly configured
ENV PYCAFFE_ROOT $CTPN_ROOT/CTPN/caffe/python
ENV PYTHONPATH $PYCAFFE_ROOT:$PYTHONPATH
ENV PATH $CTPN_ROOT/CTPN/caffe/build/tools:$PYCAFFE_ROOT:$PATH
RUN echo "$CTPN_ROOT/CTPN/caffe/build/lib" >> /etc/ld.so.conf.d/caffe.conf && ldconfig

# To make sure the python layer builds - Need to figure out a cleaner way to do this.
RUN cp $CTPN_ROOT/CTPN/src/layers/* $CTPN_ROOT/CTPN/caffe/src/caffe/layers/
RUN cp $CTPN_ROOT/CTPN/src/*.py $CTPN_ROOT/CTPN/caffe/src/caffe/
RUN cp -r $CTPN_ROOT/CTPN/src/utils $CTPN_ROOT/CTPN/caffe/src/caffe/

WORKDIR $CTPN_ROOT/CTPN
RUN make

上面的docker安装文件是对原有的docker做了部分修改.

安装成功之后,挂载模型文件运行:

docker run -ti --rm \-v/data/services/xy_text_rec/CTPN/models/ctpn_trained_model.caffemodel:/opt/ctpn/CTPN/models/ctpn_trained_model.caffemodel --runtime=nvidia ctpn

最终的运行结果如下(这里只是展示没有关闭cv2的display):

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年01月21日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档