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
        *…

再提交成功!

五 改进方法

1. 半监督学习

利用训练集训练好的模型预测测试集,将预测结果作为伪标签加入训练。

步骤:

  • 预测结果:生成测试集的标签文件。
  • 将标签文件和测试集按照训练集训练,生成新的权重。
  • 利用新生成的权重在检测测试集。
  • 根据想法再次提交。。。

2. 测试增强

。。。

3. 模型集成

。。。

天池比赛 Docker 解决无法读取测试集,提交成功相关推荐

  1. 天池比赛——Docker基础镜像搭建,容器导出镜像

    天池Docker 文章目录 天池Docker 一. 通过基础的Dockerfile,只有python的镜像 二. 然后build构建镜像,再运行镜像进容器 三. 进入容器,安装环境 四. 退出容器, ...

  2. 天池比赛——docker初步尝试

    天池docker 1.创建阿里云容器镜像 (dockerhub其实也行,天池的比赛应该只能用阿里云,这样也方便). 注册地址:https://cr.console.aliyun.com 1.1 注册开 ...

  3. k8s之wsl2+kind+docker desktop搭建kubevela测试集群

    仅作为记录,不具备参考意义: 1.win10-1903+wsl2+ubuntu18+kind+docker desktop wsl2和unbuntu以及docker desttop不再赘述 第一步: ...

  4. 天池比赛如何使用docker提交

    天池上的比赛,一般复赛阶段会让参赛选手使用docker封装好容器后,提交到线上得到结果,推理或者训练过程放在赛方提供的硬件环境下,选手一般是接触不到测试集的,更加保证了比赛的公平性. 笔者接触dock ...

  5. label y 训练集测试集x_Adversarial validation-对抗验证| 一种解决训练集与测试集分布不一致的方法...

    导语: 马上就要五一了,祝全世界人民五一快乐!在这之前,想过好几个准备这些天可以完成的专题,比如Boosting系列在搞点最近几年的新玩意,或者开一个新专题,如心心念念的GNN/GCN(主要是又可以去 ...

  6. Docker提交天池比赛流程

    一.安装docker 天池大赛入门与docker实践课程: https://tianchi.aliyun.com/course/351 Ubuntu20.04安装docker: https://blo ...

  7. 解决TensorBoard训练集和测试集指标只能分开显示的问题(基于Keras)

    解决TensorBoard训练集和测试集指标只能分开显示的问题(基于Keras) 参考文章: (1)解决TensorBoard训练集和测试集指标只能分开显示的问题(基于Keras) (2)https: ...

  8. Docker提交天池比赛代码流程(windows10环境下)

    一.Docker环境配置(以windows10为例) Docker Desktop 下载地址:https://docs.docker.com/docker-for-windows/install/ 1 ...

  9. 解决:测试集上每次输出的结果不相同问题

    1 原因 可能在图片数据集加载时,shuffle设置为True了,需要改为False 在模型中,一些层中Dropout,Normalization等具有随机性,需要设置一下种子 没有开启net.eva ...

最新文章

  1. Angularjs与weui的握手
  2. PAT甲级1074 Reversing Linked List :[C++题解]反转链表,借用vector
  3. Zend Framework 自动加载类的实现方法
  4. qemu模拟armlinux执行目标文件系统的可执行文件
  5. [数字图像处理]图像去噪初步(1)--均值滤波器
  6. JUnit中@Test的运行顺序
  7. [转]GridView 72般绝技
  8. javascript --- 在linux上部署项目
  9. 避免延迟的JPA集合
  10. 三角形外接球万能公式_秒杀三角形问题!!三角形分角线的几个重要结论及其应用...
  11. 多模态AI开发套件HiLens Kit:超强算力彰显云上实力
  12. 4轮拿下字节Offer,面试题复盘(含答案)
  13. UISegmentedControl UISlider
  14. 网络工程师--网络安全与应用案例分析
  15. 浏览器兼容性及调试插件
  16. 冰点还原无法修改计算机时间,设置冰点还原解冻期间方法
  17. 【安全牛学习笔记】Kali Linux基本工具
  18. [POJ2352] Stars 夜空星辰 - 树状数组
  19. python读书心得体会范文_读书心得体会600字_关于读书的心得体会范文(3篇)
  20. 扶蕾wlt~学习计划——MATLATB

热门文章

  1. springboot 之 SpringBoot指定额外需要扫描的包
  2. Qt实现一个简单的编译器(软件生成器)
  3. JAVA经典算法40题(供面试所用)
  4. 不会哄女朋友?来,教你爬搞笑图片
  5. Java-彩票游戏例题
  6. 1064 朋友数 (C++)
  7. API Gateway/API 网关(三) - Kong的使用 - 限流rate limiting(redis)
  8. 在Oracle中,什么是物理读和逻辑读?
  9. layui 改写 table 排序,填加中文按照拼音排序
  10. 悲伤时唱首歌:《暗恋桃花源》剧评