docker封装程序并提交云端

参考链接:
docker封装深度学习框架链接: link.

安装nvidia-docker
在深度学习中,如果要使docker中的代码能够在GPU的环境下运行,需要安装nvidia-docker。链接: link.

//常用docker指令链接: [link](https://blog.csdn.net/Michel4Liu/article/details/80889977).
//查看所有镜像
docker images
//查看所有容器
docker ps -a
//停止所有容器
docker stop $(docker ps -a -q)
//删除所有容器
docker rm $(docker ps -a -q)
//删除镜像
docker rmi [镜像ID]
//exit后重启容器
docker start [容器ID]

编写Dockerfile(安装环境、将可执行文件拷进去、映射路径)

封装镜像

采用Dockerfile封装(未采用)

需要用到docker run生成容器自启动的程序,需要用到Dockerfile自启动文件(参考添加链接描述)
由于提交说明当中说道在提交测试的时候会启动如下命令

docker run -d -v /home/iecas/fyc/docker/tmp/images/:/input_path -v /home/iecas/fyc/docker/tmp/out:/output_path aircas/detections:v0.1

由Dockerfile封装nvidia-docker镜像如下

//由Dockerfile封装nvidia-docker镜像
docker build -f $PATH/Dockerfile.one -t aircas/detections:v0.2 .

docker commit指令修改已经封装好的镜像

考虑到不同的模型需要的环境有所不同,通过Dockerfile文件进行环境封装费时费力,因此采用docker commit指令修改CMD参数,以达到以下3个目的:
1.修改WORKDIR说明:制定容器启动时的工作路径/workspace
2.修改CMD:commit修改CMD,CMD说明

注:无法实现.sh文件,会报路径下无法找到该sh文件的错误,有待后续研究。

将配置好的容器环境提交镜像,设置Dockerfile中的CMD,运行该镜像时自动运行 python xx.py指令,同时进入docker中的工作路径/workspace(xx.py需要放在该路径下)

docker commit --change='CMD ["python","main_test.py"]' --change='WORKDIR /workspace' [容器ID] bit_cs:v2

测试镜像

安装NVIDIA-docker链接: link.

//从镜像创建容器
docker run -d -v /home/green/dataset/data_voc/docker_input:/input_path -v /home/green/dataset/data_voc/docker_output:/output_path [镜像ID]

nvidia-docker run -it -v /home/green/dataset/data_voc/Val/Image:/input_path -v /home/green/dataset/data_voc/docker_output:/output_path [镜像ID]

//在本地pycharm调试
nvidia-docker run -it -p 127.0.0.1:8080:22 -v /home/green/dataset/data_voc/docker_input:/input_path -v /home/green/dataset/data_voc/docker_output:/output_path [镜像ID]

docker中使用gpu需要更改daemon.jason参考: link.

注:本次提交将预测线程改为单线程运行(所使用的docker镜像使用多线程会报错,还没找到原因)。

提交docker镜像

将docker提交到aliyun

参见链接:https://blog.csdn.net/u010739551/article/details/81536503

替换自启动程序

需要保存未设置自启动程序的镜像作为母本,在此基础上替换程序。
——————————————————————————————————————————
8月11日更新:
上传步骤:

  1. docker images查看镜像,依据tag为basic的镜像创建容器
nvidia-docker run -it -v /本地存放测试集图片路径:/input_path -v /本地输出测试结果路径:/output_path [镜像ID]
  1. 将新版程序替换至
/本地存放测试集图片路径

并验证事是否正常生成结果
测试数据(19张图片):
/home/green/Project/ZKXT_2020/albumentations-yyt/test_for_result/image
单通道结果图存放在:./result_single
计算MIOU:
程序路径:/home/green/Project/ZKXT_2020/Submit/0819-BIT_CS/lib/metrics/ade20k_evaluator.py,修改单通道结果图所在路径以及gt图所在路径,输出FWIOU,MIOU。

  1. 修改CMD和启动文件
docker commit --change='CMD ["python","main_test.py"]' --change='WORKDIR /workspace' [容器ID] bit_cs:v2
  1. 上传至aliyun

你可能感兴趣的:(docker封装程序并提交云端)