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

简介: 本文记录作者参加天池大赛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

image.png
图1 镜像拉取结果

(2)准备文件
镜像拉取完成之后,需要准备相关的文件,并写入相关的内容。第一步得分的需要的文件包含Dockerfile、main.py、run.sh、result.json,此处result.json文件只是用于代码测试,实际操作过程中需要按照要求在容器运行过程中中创建json文件并写入信息。
image.png
图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、 提交结果
在大赛提交结果界面设置镜像路径及版本,镜像路径要选择“公网地址”,点击“提交”之后等待执行即可。
image.png
图3 得分情况

目录
相关文章
|
10天前
|
安全 持续交付 云计算
课时5:阿里云容器服务:最原生的集成Docker和云服务
阿里云容器服务以服务化形式构建容器基础设施,大幅提升开发效率,简化应用部署流程。通过Docker容器和DevOps工具(如Jenkins),实现自动化部署与迭代,优化企业内部复杂部署问题。该服务支持GPU调度、混合云架构无缝迁移,并与阿里云产品体系无缝集成,提供安全防护、网络负载均衡等多重功能支持。凭借微服务架构,帮助企业突破业务瓶颈,提高资源利用率,轻松应对海量流量。
课时5:阿里云容器服务:最原生的集成Docker和云服务
|
2月前
|
Java Linux C语言
《docker基础篇:2.Docker安装》包括前提说明、Docker的基本组成、Docker平台架构图解(架构版)、安装步骤、阿里云镜像加速、永远的HelloWorld、底层原理
《docker基础篇:2.Docker安装》包括前提说明、Docker的基本组成、Docker平台架构图解(架构版)、安装步骤、阿里云镜像加速、永远的HelloWorld、底层原理
515 90
|
3月前
|
机器学习/深度学习 传感器 运维
使用机器学习技术进行时间序列缺失数据填充:基础方法与入门案例
本文探讨了时间序列分析中数据缺失的问题,并通过实际案例展示了如何利用机器学习技术进行缺失值补充。文章构建了一个模拟的能源生产数据集,采用线性回归和决策树回归两种方法进行缺失值补充,并从统计特征、自相关性、趋势和季节性等多个维度进行了详细评估。结果显示,决策树方法在处理复杂非线性模式和保持数据局部特征方面表现更佳,而线性回归方法则适用于简单的线性趋势数据。文章最后总结了两种方法的优劣,并给出了实际应用建议。
184 7
使用机器学习技术进行时间序列缺失数据填充:基础方法与入门案例
|
4月前
|
机器学习/深度学习 数据采集
机器学习入门——使用Scikit-Learn构建分类器
机器学习入门——使用Scikit-Learn构建分类器
|
4月前
|
机器学习/深度学习 数据采集 人工智能
机器学习入门:Python与scikit-learn实战
机器学习入门:Python与scikit-learn实战
132 0
|
4月前
|
机器学习/深度学习 算法 Python
机器学习入门:理解并实现K-近邻算法
机器学习入门:理解并实现K-近邻算法
66 0
|
4月前
|
机器学习/深度学习 人工智能 自然语言处理
探索AI的奥秘:机器学习入门指南
【10月更文挑战第30天】本篇文章是一份初学者友好的机器学习入门指南,旨在帮助读者理解并开始实践机器学习。我们将介绍机器学习的基本概念,包括监督学习、无监督学习和强化学习等。我们还将提供一些实用的代码示例,以帮助读者更好地理解和应用这些概念。无论你是编程新手,还是有一定经验的开发者,这篇文章都将为你提供一个清晰的机器学习入门路径。
73 2
|
4月前
|
机器学习/深度学习 人工智能 算法
机器学习基础:使用Python和Scikit-learn入门
机器学习基础:使用Python和Scikit-learn入门
49 1
|
5月前
|
机器学习/深度学习 人工智能 算法
机器学习基础:使用Python和Scikit-learn入门
【10月更文挑战第12天】本文介绍了如何使用Python和Scikit-learn进行机器学习的基础知识和入门实践。首先概述了机器学习的基本概念,包括监督学习、无监督学习和强化学习。接着详细讲解了Python和Scikit-learn的安装、数据处理、模型训练和评估等步骤,并提供了代码示例。通过本文,读者可以掌握机器学习的基本流程,并为深入学习打下坚实基础。
51 1
|
5月前
|
机器学习/深度学习 人工智能 算法
机器学习基础:使用Python和Scikit-learn入门
本文介绍了如何使用Python和Scikit-learn进行机器学习的基础知识和实践。首先概述了机器学习的基本概念,包括监督学习、无监督学习和强化学习。接着详细讲解了Python和Scikit-learn的安装、数据处理、模型选择与训练、模型评估及交叉验证等关键步骤。通过本文,初学者可以快速上手并掌握机器学习的基本技能。
132 2