国内TensorFlow Docker部署指南:GPU版支持

docker基础教程: https://legacy.gitbook.com/book/yeasy/docker_practice/details,通过这个教程可以了解docker基本概念


为什么使用docker?

避免复杂的环境的配置,比如cuda。

而在ubuntu上运行docker tensorflow-gpu镜像,仅仅需要安装nvidia驱动即可,幸运的是一般通过软件更新器(software & updates→ Additional Drivers)即可顺利安装显卡驱动,用Linux命令也可以顺利安装.


1.下载镜像

docker tensorflow的镜像官网为 https://hub.docker.com/r/tensorflow/tensorflow/,首先按照官方教程安装nvidia-docker2,之后的tensorflow-gpu镜像都需要nvidia-docker来启动,或者docker run --runtime=nvidia,当然这样就足够用了,如果你想用docker取代nvidia-docker可以修改/etc/docker/daemon.json为如下所示,即在第一行加入"default-runtime": "nvidia",这样就可以直接用docker取代nvidia-docker了。

登录后复制

{
    "default-runtime": "nvidia",
    "runtimes": {
        "nvidia": {
            "path": "/usr/bin/nvidia-container-runtime",
            "runtimeArgs": []
        }
    }
}

安装配置成功之后选择Tags标签可以看到不同tag的tensorflow镜像,官方实例代码选择的tag为latest-gpu的镜像,可以根据自己的需要下载镜像,博主选择的是1.8.0-devel-gpu-py3的镜像,这个镜像包含tensorflow-gpu=1.8.0版本,并且包含bazel等开发环境可以编译tensorflow的源代码。即此镜像既可以用于训练模型,又可以用来学习tensorflow源码。执行:



登录后复制

docker pull tensorflow/tensorflow:1.8.0-devel-gpu-py3

下载成功后执行:


登录后复制

docker images

可以查看下载的镜像,如下图所示:

tensorflow docker 国内 tensorflow docker gpu_文件名

可以看到有一个TAG名为1.8.0-devel-gpu-py3的镜像,证明下载成功。




2.启动容器

如果在前面配置了"default-runtime": "nvidia",那么执行:

登录后复制

docker run   --rm -it -v /home/zzh/:/root/tensorflow --name zzh tensorflow/tensorflow:1.8.0-devel-gpu-py3

没有配置则可以执行:

登录后复制

nvidia-docker run --rm -it -v /home/zzh/:/root/tensorflow --name zzh tensorflow/tensorflow:1.8.0-devel-gpu-py3


或者执行:

登录后复制

docker run --runtime=nvidia --rm -it -v /home/zzh/:/root/tensorflow 
--name zzh tensorflow/tensorflow:1.8.0-devel-gpu-py3

其中docker run的参数含义如下:

1)--rm        退出容器清除数据

2)-it           启动交互式终端

3)-v           挂在目录

4)--name  容器名称

具体细节参考官方文档:https://docs.docker.com/engine/reference/run/



3.在容器中训练cifar10

cifar10教程: https://www.tensorflow.org/tutorials/deep_cnn

在本机某一路径下创建好项目,执行脚本后可以看到训练的速度,如下图所示:

tensorflow docker 国内 tensorflow docker gpu_docker_02

可以看到,step 0到200的时间是13.52秒。

将这个目录挂在到容器中,在容器中训练,速度如下图所示:

tensorflow docker 国内 tensorflow docker gpu_docker_03

可以看到,step 0到200的时间是12.39秒(快了的原因是容器中的是tensorflow1.8,而本机由于cuda版本的原因安装的是tensorflow1.4)



4.其他docker常用命令

1)通过[docker  commit  CONTAINER_ID   newImageName]保存对镜像的修改,CONTAINER_ID可以通过docker ps查

2)通过[docker save -o  文件名  镜像名] 将镜像存储至磁盘,例如docker save -o  tensorflow.tar      tensorflow/tensorflow:1.8.0-devel-gpu-py3

3)通过[docker load  --input  文件名] 从磁盘导入镜像,例如docker load  --input  tensorflow.tar

4)容器一旦退出里面的信息就都会被清除,若不想保存修改又不想丢失信息,那么可以CTRL+P+Q让容器在后台运行,然后通过docker attach CONTAINER_ID重新连接进容器

免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空