根据官方给出的guangdong2_data_list.txt中的链接下载好
第一步,处理数据。
python convertTrainLabel.py
python process_data_yolo.py
注意process_data_yolo.py只能转换val数据集,所以将代码中的val都改成train来转换train数据集。
第二步,训练网络。
下载预训练权重yolo5s.pt,链接点我。将其放置在weights文件夹下,更改名字为best.pt。
注意将train代码中的第120行代码进行更改。
# 更改前
if model.state_dict()[k].shape == v.shape}
# 更改后
if k in model.state_dict() and model.state_dict()[k].shape == v.shape}
最后进行模型训练。
python train.py
由于pytorch版本不匹配,在项目文件夹内新建一个changckpt.py文件用于权重文件编码方式的转换。(高版本选用)
import torch
from utils import torch_utils
device = torch_utils.select_device('0')
ckpt = torch.load('./weights/best.pt',map_location=device) # 读取best.pt权重
torch.save(ckpt, './weights/new.pt', _use_new_zipfile_serialization=False) # 使用旧的方式保存
更改run.sh文件,原本为空。
detect.py为识别模型运行文件 --source 后面接的是测试集。
python detect.py --source ./tcdata/guangdong1_round2_testB_20191024
容器是直接运行于操作系统内核之上的隔离沙箱,由于不需要安装操作系统,所以其具有轻量化的特点。但是由于运行于内核之上,Docker只能运行于Linux系统之上。
Docker是一个能够将应用程序自动载入容器中的开源软件,是在已经运行的 Linux 下制造了一个隔离的文件环境。
仓库 | 储存镜像的地方 |
---|---|
镜像 | 类似存在硬盘的应用程序 |
容器 | 程序运行起来 |
Dockerfile | 通过Dockerfile构建镜像 |
tar文件 | 镜像可以打包成tar文件 |
Windows环境(本地端)下Docker环境配置问题记录
配置教程
docker run hello-world
docker login --username=****** your_registry_url(容器镜像地址)
docker build -t registry.cn-********:1.0 .
# docker build -t 镜像仓库:版本号 构建镜像仓库路径(不可省略)
构建镜像过程中出现问题:
构建镜像必须先登录云
Dockerfile和位于同一路径下
命令行需要在文件夹路径打开
查看镜像的IMAGE ID
docker images
进入镜像
docker run -it 28e45ec06cc7 /bin/bash
pytorch拉取基本镜像时已经装了(拉取操作在Docker中实现)
安装其他需要的库文件
pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install scipy -i https://pypi.tuna.tsinghua.edu.cn/simple
保存镜像(将容器保存到镜像中)
ctrl+P+Q推出root
docker commit 550dfb0a761f registry.cn-shenzhen.aliyuncs.com/yiyuchen/tianchi_demo:1.0
docker commit 容器ID 镜像仓库地址:1.0