全球人工智能技术创新大赛【热身赛一】布匹疵点智能识别:比赛全流程体验(baseline训练+Docker提交)

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 全球人工智能技术创新大赛【热身赛一】布匹疵点智能识别:比赛全流程体验(baseline训练+Docker提交)

相关链接:

天池:全球人工智能技术创新大赛【热身赛一】布匹疵点智能识别

阿里云容器镜像服务平台

datawhale学习计划以及baseline的代码下载地址

训练以及镜像构建全是在 windows10 专业版 上完成的。主要为了先完成流程,并不关心代码本身。参考着赵大佬的博客,完成了本次的比赛流程体验。于是结合着博客的主要核心内容,以及我自己遇到的坑和解决方案,完成了本篇文章。

一.完成baseline的训练

本该运行train.sh

  • 当前文件目录打开git bash
  • 输入source activate virtual_name激活你的虚拟环境
  • 输入python train.sh去运行

但是由于存在一些坑点,我们不这么做,正确的步骤是:

1.首先运行convertTrainLabel.py,当前目录生成了convertor文件夹,这是解析json文件的过程。

2.接下来运行process_data_yolo.py,当前目录生成process_data文件夹,这是数据预处理过程。

注意要生成train和val数据集,因此将process_data_yolo.py中的val替换成train再运行一次。

3.train.py 文件121行附近作如下修改

4.直接运行train.py,它提示你在weights中加入best.pt,我们可以下载预训练权重

YOLOV5预训练权重下载

在yolo.py文件中可以看到,默认使用的是yolov5s,所以下载yolov5s的预训练权重就行了,该名称best.pt放入到weight文件夹中

5.再次运行train.py,有可能会出现显存不够的情况

train.py 364行附近

修改默认批次,我直接修改成了1

6.运行train.py,终于通了

15分钟一轮,训练了8轮,感觉差不多了,就暂停了,毕竟先要完成流程,提高分数是后续的事情了。

二.镜像打包并上传到镜像仓库

2.1首先在阿里云容器服务平台创建本次比赛的镜像仓库

win10使用Docker以及在天池比赛上提交容器镜像文件

2.2准备所需的文件

天池准备的常用基础镜像

由于pytorch1.4为老版本,不能读取pytorch1.7版本的best.pt

修改

ckpt = torch.load('best.pt', map_location=device)    # 读取best.pt权重
torch.save(ckpt, 'new.pt', _use_new_zipfile_serialization=False)    # 使用旧的方式保存

创建一个文件夹(名字自己起),把除了数据集的所有文件全部copy到该目录下。

requirements不要动

run.sh 原来里面改成(因为比赛测试文件就是存这里的)

python detect.py --source ./tcdata/guangdong1_round2_testB_20191024

创建Dockerfile(无后缀),文件内容如下

# Base Images
## 从天池基础镜像构建
FROM registry.cn-shanghai.aliyuncs.com/tcc-public/pytorch:1.4-cuda10.1-py3
## 把当前文件夹里的文件构建到镜像的根目录下
ADD . /
## 指定默认工作目录为根目录(需要把 run.sh 和生成的结果文件都放在该文件夹下,提交后才能运
行)
WORKDIR /
## 镜像启动后统一执行 sh run.sh
CMD ["sh", "run.sh"]

2.3创建镜像

在该目录用powershell打开

  • 登入阿里云上自己创建的镜像仓库
  • 进行docker build -t …
  • 查看镜像id:docker images
  • 进入容器:docker run -it 你自己的镜像 /bin/bash


2.4往容器中安装必要的包

pip用镜像源 安装这三个包

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-python
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple matplotlib
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple scipy

进入python模式

python
>>>import cv2

如果出现报错(如果没有直接进入2.5保存镜像环节)

返回命令行模式

>>>exit()

进行下面步骤

docker 容器内没有vi/vim,只能通过这种方式修改成阿里源

cat > /etc/apt/sources.list << EOF
deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
EOF

接下来

apt update
apt install libgl1-mesa-glx
apt-get install -y libglib2.0-0

2.5保存镜像

1.退出但不关闭容器 ctrl+p+q

2.docker ps 查看 容器的id

注意是 容器的id 不是镜像的 id

3.将容器保存为镜像

docker commit 你的容器id  registry.cn……….(自己的仓库地址)……….:1.0

4.查看镜像

docker images

5.测试镜像

docker run 你的镜像id sh run.sh

因为tcdata是空的,所以报错也很正常

6.推送镜像

docker push  registry.cn……….(自己的仓库地址)……….:1.0

这样子的结果就是推送成功了

在比赛中提交结果,约等待半小时左右,结果就出来了。

相关实践学习
通过容器镜像仓库与容器服务快速部署spring-hello应用
本教程主要讲述如何将本地Java代码程序上传并在云端以容器化的构建、传输和运行。
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。 &nbsp; &nbsp; 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
2天前
|
机器学习/深度学习 人工智能 自然语言处理
【深度学习】Python之人工智能应用篇——音频生成技术
音频生成是指根据所输入的数据合成对应的声音波形的过程,主要包括根据文本合成语音(text-to-speech)、进行不同语言之间的语音转换、根据视觉内容(图像或视频)进行语音描述,以及生成旋律、音乐等。它涵盖了声音结构中的音素、音节、音位、语素等基本单位的预测和组合,通过频谱逼近或波形逼近的合成策略来实现音频的生成。 音频生成技术的发展主要依赖于深度学习模型,如循环神经网络(RNN)、长短时记忆网络(LSTM)、Transformer等。这些模型通过学习大量的音频数据,能够自动生成与人类发音相似甚至超越人类水平的音频内容。近年来,随着大规模预训练模型的流行,如GPT系列模型、BERT、T5等,
12 7
【深度学习】Python之人工智能应用篇——音频生成技术
|
2天前
|
机器学习/深度学习 人工智能 算法
【深度学习】python之人工智能应用篇——图像生成技术(二)
图像生成是计算机视觉和计算机图形学领域的一个重要研究方向,它指的是通过计算机算法和技术生成或合成图像的过程。随着深度学习、生成模型等技术的发展,图像生成领域取得了显著的进步,并在多个应用场景中发挥着重要作用。
15 9
|
2天前
|
机器学习/深度学习 人工智能 自然语言处理
【自然语言处理】python之人工智能应用篇——文本生成技术
文本生成是指使用自然语言处理技术,基于给定的上下文或主题自动生成人类可读的文本。这种技术可以应用于各种领域,如自动写作、聊天机器人、新闻生成、广告文案创作等。
19 8
|
2天前
|
机器学习/深度学习 人工智能 运维
智能运维:未来趋势下的自动化与人工智能融合
【8月更文挑战第18天】 在数字化浪潮中,智能运维(AIOps)作为一股不可逆转的力量,正逐步改写传统运维的脚本。本文将探讨AIOps的核心要素、实施路径和面临的挑战,同时分享个人从新手到专家的心路历程,旨在启发读者思考如何在这一领域内持续成长并作出贡献。
13 6
|
2天前
|
机器学习/深度学习 人工智能 自然语言处理
【图像生成技术】人工智能在医疗健康领域的应用实例:图像生成技术的革新实践
在当今医疗健康的前沿阵地,人工智能(AI)技术正以前所未有的速度重塑着医疗服务的面貌,其中图像生成技术尤其在提升诊断精度、优化治疗策略及增强医疗教育方面展现出了巨大潜力。以下将通过一个简化的示例,展示如何利用深度学习模型,特别是生成对抗网络(GANs),来生成医学图像,并讨论其在实际医疗场景中的应用价值。
14 6
|
2天前
|
机器学习/深度学习 人工智能 自然语言处理
【机器学习】python之人工智能应用篇--代码生成技术
代码生成技术是人工智能与软件工程交叉领域的一项重要技术,它利用机器学习、自然语言处理和其他AI算法自动编写或辅助编写计算机程序代码。这一技术旨在提高编程效率、降低错误率,并帮助非专业开发者快速实现功能。以下是代码生成技术的概述及其典型应用场景。
16 6
|
2天前
|
机器学习/深度学习 人工智能 搜索推荐
【图像生成技术】人工智能在广告营销的革新:图像生成技术的应用与实践代码示例
随着人工智能技术的飞速发展,广告营销行业迎来了前所未有的变革。图像生成技术,作为AI领域的一颗璀璨明星,正被广泛应用于创造个性化、高吸引力的产品展示图、海报乃至宣传视频,以精准对接目标受众,显著提升广告的转化率和整体营销效果。本文将深入探讨这一技术的应用场景,并通过一个简单的代码示例,展示如何利用深度学习框架TensorFlow来实现创意图像的自动生成。
13 4
|
2天前
|
传感器 机器学习/深度学习 人工智能
人工智能中的Agent技术解析
【8月更文挑战第18天】总之,Agent作为人工智能领域的重要分支,将在未来发挥更加重要的作用。随着技术的不断进步和应用场景的不断拓展,Agent技术将为我们带来更加智能、便捷和高效的生活体验。
|
2天前
|
机器学习/深度学习 人工智能 自然语言处理
【人工智能】python之人工智能应用篇--数字人生成技术
数字人生成技术是基于人工智能技术和计算机图形学技术创建的虚拟人物形象的技术。该技术能够模拟人类的外貌、声音、动作和交流能力,为多个领域带来创新的应用可能性。数字人的本质是将所有信息(数字和文字)通过数字处理(如计算机视觉、语音识别等)再进行表达的过程,形成具有人类形态和行为的数字产物。 数字人的生成涉及到多种技术,如3D重建技术,使用三维扫描仪扫描人的外观、五官等,并通过3D模型重建三维人;虚拟直播技术,使用计算机技术生成人物或实体,并且可以实时直播、录制;数字人体数据集技术,利用数据构建数字人模型以及训练虚拟现实引擎等
11 4
|
2天前
|
机器学习/深度学习 人工智能 自然语言处理
【深度学习】python之人工智能应用篇——视频生成技术
视频生成技术是一种基于深度学习和机器学习的先进技术,它使得计算机能够根据给定的文本、图像、视频等单模态或多模态数据,自动生成符合描述的、高保真的视频内容。这种技术主要依赖于深度学习模型,如生成对抗网络(GAN)、自回归模型(Auto-regressive Model)、扩散模型(Diffusion Model)等。其中,GAN由两个神经网络组成:一个生成器用于生成逼真的图像或视频,另一个判别器用于判断生成的图像或视频是否真实。通过不断的对抗学习,生成器和判别器共同优化,以产生更高质量的视频。
10 2