天池比赛 Docker 解决无法读取测试集,提交成功
Docker 提交
- 一 制作 Dockerfile
- 二 制作 run.sh
- 三 制作推送镜像
- 3.1 登录 build
- 3.2 进入容器中配置环境
- 3.3 本地测试
- 3.4 推送镜像
- 四 提交
- 五 改进方法
- 1. 半监督学习
- 步骤:
- 2. 测试增强
- 3. 模型集成
一 制作 Dockerfile
FROM pytorch/pytorch:latest## 把当前文件夹里的文件构建到镜像的根目录下(.后面有空格,不能直接跟/)
ADD . /## 指定默认工作目录为根目录(需要把run.sh和生成的结果文件都放在该文件夹下,提交后才能运行)
WORKDIR /## 镜像启动后统一执行 sh run.sh
CMD ["sh", "run.sh"]
二 制作 run.sh
#!/bin/sh
CURDIR="`dirname $0`" #获取此脚本所在目录
echo $CURDIR
cd $CURDIR #切换到该脚本所在目录
python detect.py
cd ./output
cp ./result.json ../
三 制作推送镜像
进入项目文件夹内(yolov5)。
只做检测,把其他东西都删掉了。
3.1 登录 build
## docker登陆(push镜像需要登陆,服务器地址为赛事要求的,这里以上海为例):
docker login --username=你自己的用户名 registry.cn-shanghai.aliyuncs.com## 不要忘记加.
## 公网地址上述已经提到过
docker build -t 公网地址:版本号 .
3.2 进入容器中配置环境
- 查看容器 ID
docker images
- 进入容器
docker run -it XXX(image id 自己替换) /bin/bash
可以看到项目文件都已经在。
- 配置环境
# 安装 cv2 、matplotlib、scipy
pip install opencv-python
pip install matplotlib
pip install scipy
pip install pandas
pip install seaborn
最好每句后面加上 -i https://pypi.tuna.tsinghua.edu.cn/simple 来提速!
测试时出现以下错误
root@f3eafb66801d:/# python
Python 3.8.3 (default, May 19 2020, 18:47:26)
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
Traceback (most recent call last):File "<stdin>", line 1, in <module>File "/opt/conda/lib/python3.8/site-packages/cv2/__init__.py", line 5, in <module>from .cv2 import *
ImportError: libGL.so.1: cannot open shared object file: No such file or directory
>>>
解决办法:
apt update
apt install libgl1-mesa-glx
apt-get install -y libglib2.0-0
OK!
- 保存镜像
退出但不关闭容器:ctrl + P + Q
docker commit XXX(容器 id 自己替换) 公网地址:版本号
3.3 本地测试
docker run 2d4f3d7c30c5 sh run.sh
运行开会报找不到图片的错误,因为图片是提交后,所以没有问题
3.4 推送镜像
docker push 公网地址:版本号
上传成功!
四 提交
提交不成功,奇奇怪怪啊!
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 145 0 45 0 100 0 0 --:--:-- 0:02:22 --:--:-- 11
{"code":"SUCCESS","data":{"returnCode":true}}.
YOLOv5 torch 1.7.0 CPUModel Summary: 224 layers, 7091668 parameters, 0 gradients
Namespace(agnostic_nms=False, augment=False, classes=None, conf_thres=0.25, device='cpu', exist_ok=False, img_size=640, iou_thres=0.45, name='output', project='', save_conf=False, save_txt=False, source='./tcdata/guangdong1_round2_testB_20191024/201908262_de5bf60c1d3b79ad0201908262154188OK/', update=False, view_img=False, weights='best.pt')
Fusing layers...
Traceback (most recent call last):
File "detect.py", line 204, in <module>
detect()
File "detect.py", line 55, in detect
dataset = LoadImages(source, img_size=imgsz, stride=stride)
File "/utils/datasets.py", line 132, in __init__
raise Exception(f'ERROR: {p} does not exist')
Exception: ERROR: /tcdata/guangdong1_round2_testB_20191024/201908262_de5bf60c1d3b79ad0201908262154188OK does not exist
搞不清楚哎!
终于成功了,看了大佬的帖子,原来上面的测试数据集不只那两张图片,是有好多的文件夹,每个文件夹有一对图片:
- tcadta
- guangdong1_round2_testB_20191024
- xxx
- 1.jpg
- template_1.jpg
- sss
- 2.jpg
- template_2.jpg
- aaa
*…
- xxx
- guangdong1_round2_testB_20191024
再提交成功!
五 改进方法
1. 半监督学习
利用训练集训练好的模型预测测试集,将预测结果作为伪标签加入训练。
步骤:
- 预测结果:生成测试集的标签文件。
- 将标签文件和测试集按照训练集训练,生成新的权重。
- 利用新生成的权重在检测测试集。
- 根据想法再次提交。。。
2. 测试增强
。。。
3. 模型集成
。。。
天池比赛 Docker 解决无法读取测试集,提交成功相关推荐
- 天池比赛——Docker基础镜像搭建,容器导出镜像
天池Docker 文章目录 天池Docker 一. 通过基础的Dockerfile,只有python的镜像 二. 然后build构建镜像,再运行镜像进容器 三. 进入容器,安装环境 四. 退出容器, ...
- 天池比赛——docker初步尝试
天池docker 1.创建阿里云容器镜像 (dockerhub其实也行,天池的比赛应该只能用阿里云,这样也方便). 注册地址:https://cr.console.aliyun.com 1.1 注册开 ...
- k8s之wsl2+kind+docker desktop搭建kubevela测试集群
仅作为记录,不具备参考意义: 1.win10-1903+wsl2+ubuntu18+kind+docker desktop wsl2和unbuntu以及docker desttop不再赘述 第一步: ...
- 天池比赛如何使用docker提交
天池上的比赛,一般复赛阶段会让参赛选手使用docker封装好容器后,提交到线上得到结果,推理或者训练过程放在赛方提供的硬件环境下,选手一般是接触不到测试集的,更加保证了比赛的公平性. 笔者接触dock ...
- label y 训练集测试集x_Adversarial validation-对抗验证| 一种解决训练集与测试集分布不一致的方法...
导语: 马上就要五一了,祝全世界人民五一快乐!在这之前,想过好几个准备这些天可以完成的专题,比如Boosting系列在搞点最近几年的新玩意,或者开一个新专题,如心心念念的GNN/GCN(主要是又可以去 ...
- Docker提交天池比赛流程
一.安装docker 天池大赛入门与docker实践课程: https://tianchi.aliyun.com/course/351 Ubuntu20.04安装docker: https://blo ...
- 解决TensorBoard训练集和测试集指标只能分开显示的问题(基于Keras)
解决TensorBoard训练集和测试集指标只能分开显示的问题(基于Keras) 参考文章: (1)解决TensorBoard训练集和测试集指标只能分开显示的问题(基于Keras) (2)https: ...
- Docker提交天池比赛代码流程(windows10环境下)
一.Docker环境配置(以windows10为例) Docker Desktop 下载地址:https://docs.docker.com/docker-for-windows/install/ 1 ...
- 解决:测试集上每次输出的结果不相同问题
1 原因 可能在图片数据集加载时,shuffle设置为True了,需要改为False 在模型中,一些层中Dropout,Normalization等具有随机性,需要设置一下种子 没有开启net.eva ...
最新文章
- Angularjs与weui的握手
- PAT甲级1074 Reversing Linked List :[C++题解]反转链表,借用vector
- Zend Framework 自动加载类的实现方法
- qemu模拟armlinux执行目标文件系统的可执行文件
- [数字图像处理]图像去噪初步(1)--均值滤波器
- JUnit中@Test的运行顺序
- [转]GridView 72般绝技
- javascript --- 在linux上部署项目
- 避免延迟的JPA集合
- 三角形外接球万能公式_秒杀三角形问题!!三角形分角线的几个重要结论及其应用...
- 多模态AI开发套件HiLens Kit:超强算力彰显云上实力
- 4轮拿下字节Offer,面试题复盘(含答案)
- UISegmentedControl UISlider
- 网络工程师--网络安全与应用案例分析
- 浏览器兼容性及调试插件
- 冰点还原无法修改计算机时间,设置冰点还原解冻期间方法
- 【安全牛学习笔记】Kali Linux基本工具
- [POJ2352] Stars 夜空星辰 - 树状数组
- python读书心得体会范文_读书心得体会600字_关于读书的心得体会范文(3篇)
- 扶蕾wlt~学习计划——MATLATB