时间序列预测(1):Docker提交预测结果

本文详细介绍了如何在阿里云天池大数据竞赛中利用Docker提交时间序列预测模型的结果。内容涵盖Linux、Mac和Windows环境下Docker的安装,阿里云Docker镜像服务的开通,以及构建和推送镜像的步骤。通过示例代码展示了Dockerfile、hello_world.py和run.sh文件的编写,最终成功提交并验证预测结果。
摘要由CSDN通过智能技术生成

时间序列预测(1):Docker提交预测结果

本文主要记录在阿里天池大数据竞赛中使用docker提交建模结果过程中的注意事项及一些关键步骤。

一、安装docker环境

docker目前提供了windows、mac、Linux等多个平台的安装包,mac和Linux下的安装相对比较容易,直接用命令行安装即可。

Linux下安装docker

利用daocloud提供的一键安装脚本安装docker

curl -sSL https://get.daocloud.io/docker | sh

卸载docker:

# centos
sudo yum remove docker \
docker-common \
container-selinux \
docker-selinux \
docker-engine

# Ubuntu
sudo apt-get remove docker docker-engine

卸载Docker后,/var/lib/docker/目录下会保留原Docker的镜像,网络,存储卷等文件. 如果需要全新安装Docker,需要删除/var/lib/docker/目录

rm -fr /var/lib/docker/

Mac下安装docker

https://get.daocloud.io/docker-install/mac

Windows下安装docker

源生的windows版的docker响应比较慢,所以推荐在WSL2下的Ubuntu中安装Docker。具体操作步骤可以参考这篇文章:Win10 WSL2 安装Docker

注意:在WSL下安装docker,首先需要安装Linux子系统,目前Ubuntu的Linux子系统支持最好,所以暂时选择ubuntu 20.04作为win10上的子系统,安装时一定要将Linux子系统升级成v2版本,因为v1版本中安装的docker只是一个客户端,真正起作用的还是Windows下安装的docker。

二、开通阿里云docker镜像服务

首先在阿里云容器镜像服务
免费开通镜像托管,由于本次练习任务是由天池大数据竞赛提供的,所以需要将仓库地域选择上海。建议设置私有仓库,并一定牢记仓库密码,后续提交需要使用。

开通后进入镜像仓库

image

切换标签页到命名空间,创建地址唯一的命名空间

enter image description here

根据任务/比赛要求选择对应的地域(本次练习选择 上海),其他的按照自己需求选择或填写。

enter image description here

选择代码源为本地仓库,灵活度大,完成创建。

enter image description here

点击管理,可查看仓库的基本信息,以及登录、拉取、推送等简单操作的指南。

enter image description here

详情页如下,有基本的操作命令,仓库地址一般使用公网地址即可。

enter image description here

三、构建镜像并提交建模结果

1. 登录阿里云Docker Registry

$ sudo docker login --username=<阿里云账号> registry.cn-shanghai.aliyuncs.com

#用于登录的用户名为阿里云账号全名,密码为开通服务时设置的密码。

#您可以在访问凭证页面修改凭证密码。

2. 准备构建镜像所需代码

目录及文件结构如下:

├── tianchi_submit_demo
│   ├── Dockerfile
│   ├── hello_world.py
│   └── run.sh

Dockerfile文件内容如下:

# Base Images
## 从天池基础镜像构建
FROM registry.cn-shanghai.aliyuncs.com/tcc-public/python:3

## 把当前文件夹里的文件构建到镜像的根目录下
ADD . /

## 指定默认工作目录为根目录(需要把run.sh和生成的结果文件都放在该文件夹下,提交后才能运行)
WORKDIR /

## 镜像启动后统一执行 sh run.sh
CMD ["sh", "run.sh"]

hello_world.py文件内容如下:

import json
#%%
hello = "Hello world"
print(hello)

# %%
with open('/tcdata/num_list.csv', 'r') as f:
    r1 = f.readlines()

# %%
num_list = [int(r.replace('\n','')) for r in r1]
print(num_list)

# %%
sum_result = 0
for n in num_list:
    sum_result = sum_result + n
print(sum_result)

# %%
sorted_list = sorted(num_list,reverse=True)
print(sorted_list[:10])

# %%
data = {"Q1":hello, "Q2":sum_result, "Q3":sorted_list[:10]}
data_dumps = json.dumps(data, sort_keys=True, indent=4, separators=(',', ': '))
print(data_dumps)

#%%
with open('./result.json', 'w') as f:
    f.write(data_dumps)

run.sh文件内容如下:

python hello_world.py

3. 构建并推送镜像

# 构建镜像
docker build -t registry.cn-shanghai.aliyuncs.com/datawhale_learning/test_for_tianchi_submit:1.0 .

# 推送镜像
docker push registry.cn-shanghai.aliyuncs.com/datawhale_learning/test_for_tianchi_submit:1.0

4. 提交验证结果

  1. 首先进入到竞赛【提交结果】页面,并配置镜像路径,与之前推送的镜像路径一致,即:

image

  1. 提交镜像,等待运行结果,即:

image

  1. 可以看到,一共有三次提交结果,三次的提交日志分别为:

image

image

image3


【参考资料】

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值