机器学习之阿里云天池大赛—Docker入门

最近阿里云天池大赛增加了Docker的项目,也有不少项目开始尝试使用Docker跑机器学习模型,本文结合官方手把手教程,重点说明容易踩坑的地方,后续将完成全部赛题要求,关于题目中gpu部分暂时忽略。
1、安装docker
Docker安装部分建议按照大赛教程直接安装即可,建议gpu支持暂时不安装,先实现基础入门,完成赛题第一步的要求,能够得分即可。
2、创建镜像仓库
在阿里云容器服务控制台,创建镜像仓库,一定记住开通容器服务时设置的密码,登录阿里云Docker Registry时需要使用,注意大赛要求镜像区域选择华南1(深圳)。
容器创建完成后可以登录登录阿里云Docker Registry,具体命令可以在镜像仓库管理界面找到。
3、构建镜像并推送
(1)拉取基础镜像
天池准备了常用的python基础镜像,可以直接拉取使用,暂时不用自行构建镜像。

docker pull registry.cn-shanghai.aliyuncs.com/tcc-public/python:3

机器学习之阿里云天池大赛—Docker入门
图1 镜像拉取结果

(2)准备文件
镜像拉取完成之后,需要准备相关的文件,并写入相关的内容。第一步得分的需要的文件包含Dockerfile、main.py、run.sh、result.json,此处result.json文件只是用于代码测试,实际操作过程中需要按照要求在容器运行过程中中创建json文件并写入信息。
机器学习之阿里云天池大赛—Docker入门
图2 所需文件

Dockerfile文件

#Dockerfile
#文件参考教程
# Base Images 
## 从天池基础镜像构建(from的base img 根据自己的需要更换,建议使用天池open list镜像链接:https://tianchi.aliyun.com/forum/postDetail?postId=67720) 
FROM registry.cn-shanghai.aliyuncs.com/tcc-public/python:3
##安装python依赖包 
#RUN pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple 
## 把当前文件夹里的文件构建到镜像的根目录下,并设置为默认工作目录 
ADD . /
WORKDIR /
## 镜像启动后统一执行 sh run.sh 
CMD ["sh", "run.sh"]

python文件,名称可自定义,只需可run.sh中执行的文件对应即可

#main.py 
import json
#print("Hello Word")
data = json.dumps({'Q1': 'Hello world', 'Q2': 0, 'Q3':[]},indent=4, separators=(','))
f = open('result.json', 'w')
f.write(data)
f.close()
注意:写入result.json文件的内容中必须包含Q2和Q3的内容,可以为空,如果只包含Q1会报错“Bad input file”

run.sh文件

#bin/bash
python3 main.py

(3)构建镜像并推送
前面已经登录阿里云Docker Registry,此处只需构建并推送即可,注意版本!

#构建
sudo docker build -t registry.cn-shenzhen.aliyuncs.com/xiaohu001/dockerlearn01:0.11 .
#推送
sudo docker push  registry.cn-shenzhen.aliyuncs.com/xiaohu001/dockerlearn01:0.11

4、 提交结果
在大赛提交结果界面设置镜像路径及版本,镜像路径要选择“公网地址”,点击“提交”之后等待执行即可。
机器学习之阿里云天池大赛—Docker入门
图3 得分情况

上一篇:机器学习之阿里云天池大赛--Docker入门(二)


下一篇:pmon长期持有cache buffers chains导致实例hang住一例