天池CV热身赛组队学习阶段性总结(1)
前言
这次有幸能够参加datawhale组织的天池CV热身赛组队学习活动,感觉对自己熟悉竞赛流程和学习需要掌握的竞赛技巧和AI技术都会有非常大的帮助。我之前没有任何相关比赛的经历,所以这次报名了datawhale组队学习的活动,希望在这方面有一定的成长。本篇博客对组队学习中的过程和学习内容进行阶段性总结。
对我来说本次比赛的几个新知识和难点:
新知识:
- 熟悉赛制和比赛流程;
- Docker容器技术;
- Baseline的快速实现与上分;
- 编写博客做阶段性总结;
难点:
- 个人的时间管理能力。毕竟是个上班狗,个人的时间和精力的管理成了很重要的一个部分;
熟悉赛制和比赛流程
比赛网址:
https://tianchi.aliyun.com/s/fed26b0e90c5776e6b3d61cd5912a423
天池官网提供了详细的赛制流程介绍,同时在该网址可以下载比赛中需要用到的训练数据。
比赛的baseline代码可以在github上找到相应的资源进行学习:
https://github.com/datawhalechina/team-learning-cv/tree/master/DefectDetection
datawhale在B站对比赛、baseline的代码和提分技巧进行了一定的介绍,可以观看B站的录播视频进行学习:https://www.bilibili.com/video/BV1dK4y1Q7dc/
Docker容器技术
Docker的整个生命周期有三个部分组成:镜像(image)+容器(container)+仓库(repository)
容器是由镜像实例化而来,也可以说,镜像是文件,容器是进程。容器是基于镜像创建的,即容器中的进程依赖于镜像中的文件。
Docker的镜像概念类似虚拟机的镜像,是一个只读的模板,一个独立的文件系统,包括运行容器所需的数据,可以用来创建新的容器。
Docker的镜像实际上是由一层一层的系统文件组成,这种层级的文件系统被称为Union File System。镜像可以基于Dockerfile创建,Dockerfile是一个描述文件,里面包含了若干条命令,每条命令都会对基础文件系统创建新的层级结构。
Docker利用容器来运行应用:Docker容器是由Docker镜像创建的运行实例。Docker容器类似于虚拟机,可以执行包含启动、停止、删除等。每个容器之间是相互间隔的。容器中会运行特定的应用,包含特定应用的代码及所需的依赖文件。可以把容器看做一个简易版的Linux环境和运行其中的应用程序。
Docker仓库:用来包含镜像的位置。Docker提供了一个注册服务器(register)来保存多个仓库,每个仓库又可以包含多个具有不同tag的镜像。
Docker环境配置指南
- 本地环境安装docker工具
下载Docker Desktop for Windows并安装; - 创建镜像服务
申请阿里云容器镜像服务,并创建仓库;容器镜像服务提供多地域镜像托管能力。 - 构建镜像并推送
为简化构建镜像的难度,天池已准备了常用的Python基础镜像,可直接拉取。
3.1 准备所需文件
Dockerfile
hellow_world.py
result.json
run.sh
3.2 构建镜像并推送
docker build
docker run
docker push - 提交验证运行结果
在【提交结果】中填写推送的镜像路径、用户名和密码,即可提交。
Docker环境配置指南的具体内容可以参考以下链接:
https://mp.weixin.qq.com/s/JiimSmuD3S5lSS9MmH2GJw
Baseline的快速实现和上分
目前还在处理这方面的内容,已经下载完数据和代码。