docker tensorflow_06911.4.0GPU环境下CDSW运行TensorFlow案例

作者:李继武

文档编写目的

介绍如何在CDSW中安装集成CUDA9.2版本的tensorflow模块,以及在GPU环境下运行tensorflow案例。代码参考上一篇文章《0690-TensorFlow之车牌识别案例》,CDSW的GPU的支持与CUDA编译参考之前的文章《如何在CDSW中使用GPU运行深度学习》和《0490-如何为GPU环境编译CUDA9.2的TensorFlow1.8与1.12》。

CDSW配置

要在cdsw中运用GPU,首先需要将GPU资源交给CDSW管理

1. 打开Cloudera Manager中CDSW的配置

搜索gpu,设置以下属性:

NVIDIA_GPU_ENABLE:设为TRUE,开启CDSW对GPU的支持。

NVIDIA_LIBRARY_PATH:NVIDIA驱动程序库的完整路径。

4750ac790cd7c252d2ebcfba88374304.png

2. 重启CDSW

1a39f20e46179b7c41fa5355d42feb1b.png

3. 查看CDSW的UI界面

可以看到CDSW已经可以使用GPU资源

99a50e5147c6634ffc756810d6c1b59d.png

(上图中使用0GPU2G内存2GPU开启了一个SESSION)

定制镜像

创建一个工程之后,在容器内安装自编译的tensorflow模块时,会遇到无法安装一些依赖的问题:

37d14a04da0e9c4dba938e4bfbf8e867.png

因此,需要定制镜像。

1. 登录CDSW平台查看使用的基础镜像名称

点击“Admin”

e94e79ff528c50b044043fd70cb05ceb.png

点击“engine”,查看基础镜像名称

a5b40bf8cf5ca858968b91a7d21b8bb0.png

上图标注部分即为CDSW的基础镜像(docker.repository.cloudera/cdsw/engine:5)由Docker的Repository和Tag组成。

2. 命令行查看CDSW基础镜像:

sudo docker images

73a0ec662c80a9ab8da69c373441beeb.png

3. 使用下面命令启动容器

sudo docker run -it --network=

4. 安装模块

将tensorflow安装包及相关依赖包从宿主机中拉取到容器内:

:/root/tensorflow-

e8d1bebc3a2c3ae9b557ecc5f4569f37.png

查看tensorflow-1.8.0中的内容如下,包含tensorflow模块安装包及相关依赖包,以及案例中需要用到的image模块。

b3c3a9d88e8061e04914c1ee600540d4.png

各依赖包的安装顺序,已经整理在了两个脚本之中,如上图中的install_tensorflow_1_8.sh以及install_image.sh中,直接运行这两个脚本即可。

sh 

e33b484151bffa1f5c5e21d8d7deb085.png

b884e1c2994b2f795e1a435c40a431a8.png

脚本如下:

install_tensorflow_1.8.sh:

#!/bin/bash

install_image.sh

#!/bin/bash

5. 导入驱动依赖库

GPU版的tensorflow在使用时需要导入驱动相关的依赖包,比如libcuda.so.1,libcusovel.so.9.2等,因此,需要将宿主机中相关的库拉取到容器当中,拉取的依赖有两个,一是/usr/local/cuda9.2/lib64,二是/usr/lib64/nvidia

先拉取/usr/local/cuda9.2

:/usr/local/cuda9.

当CDSW启动容器时,容器中的LD_LIBRARY_PATH默认包含/usr/local/cuda/lib64,因此,此处做一个软连接:

local/cuda9.2  /usr/

8dc72c7329be0c93d9758d81ed17e71c.png

再将/usr/lib64/nvidia下的文件全部拉取也放在/usr/local/cuda/lib64下

:/usr/lib64/nvidia/*  /usr/local/cuda/lib64/

17f2c127327f0e2fac3c6539a059360c.png

6.  保存镜像

此时不要退出上述打开的镜像,再开一个连接窗口,连接到宿主机,使用下面命令查看:

docker ps | more

1c88e8978360b41a02a6c04bbd856efd.png

记住这个container ID

再使用下面命令保存容器为新的镜像:

docker 

b9487c5d4b45c08f20811f93dc478712.png

至此,镜像已经定制完成,可在CDSW使用该镜像来启动容器了。

配置定制镜像

1. 登录CDSW平台,点击“Admin”

e94e79ff528c50b044043fd70cb05ceb.png

点击“engine”,在下图中位置添加定制的镜像

34a04388029127d6f543f646a6322e49.png

验证镜像

1. 打开一个session

94075854289e7f528f1297d01bf713e4.png

点击“configure”,选择自定制的镜像:

a2eaa6d1bf50b3811f5870ad361a007d.png

返回上一步,选择python2,以及资源中加选2GPU。

01f406f64a3d5ab0e8c9141371ec0dde.png

点击“launce Session”,启动session。

2. 上传案例代码及数据集。

11841d0d9d8864ad193a6920ad3a690a.png

3. 在交互窗口使用下面命令运行案例

python 

8f47b278589cb59a97a68175835dc161.png

可以看到,正常训练完成

2a5d786950917c73eb1dc83538da4dc4.png

使用下方的命令进行预测:

python 

deca628996090bbe5ef66af9d1e31367.png

从上述结果可以看出,可以正常运行,并且已正常识别出GPU,从下面的GPU使用率中,可以看到tensorflow调用了GPU进行运算:

63d7889990e4029d68fe24cff188856a.png

训练城市代号:

python 

07cdadd9a1cdeb9b4730fb7e879427ca.png

预测城市:

python 

cf3c84fc23c750456a4577f549350417.png

训练车牌编号:

python 

7170a70e89943634b99dc9fbf9d93e17.png

预测车牌编号:

python 

c5517df43bc31b3d3c280e1a13c6d4c1.png

从上述预测结果来看,预测准确。

5f8d2078bfb1702f4c24cfdde942bade.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值