飞桨平台搭建PP-YOLOE模型

一、创建项目

此博客仅是运行PP-YOLOE源码,这里以变压器渗漏数据集为例COCO数据集太大了,跑不动,V100训练预估计得7天左右,即便是A100也得4天半,变压器渗漏油数据集跑一个小时左右,还可以接受,那么不墨迹直接进入手把手环节。
首先,进入百度搜索飞桨,进入云平台选择项目–>创建项目–>NoteBook
在这里插入图片描述
然后,输入项目名称,添加数据集(点击添加数据集,按需搜索即可,也可自己创建数据集)。之后点击高级配置,根据自己的需求选择合适的配置,我这里用到了PaddlePaddle2.5.0版本的框架,所以选择了BML Codelab(AI Studio没有PaddlePaddle2.5.0),之后项目框架选择PaddlePaddle2.5.0,选择项目的标签(可以根据项目选择随便选),项目描述可写。。。
在这里插入图片描述
在这里插入图片描述
之后,点击创建即可创建项目,并自动进入项目,点击启动环境即可进入项目编辑。
在这里插入图片描述

值得一提的是,点击启动环境之后,有一个选择环境的选项。百度每天会赠送算力卡8个点,基础版(无GPU)不浪费点,V100(16GB)一个小时2个点(相当于一天有4个小时免费),V100(32GB)一个小时3个点(相当于一天不到3个小时),如需更多时间或者更高级的GPU,需要开会员,花钱了,应该是一个月19.9RMB。
在这里插入图片描述

二、搭建PP-YOLOE模型

为了能多跑几个小时,保证科研的资源充分利用性,可以先用基础版启动环境,搭建模型,然后切换环境用V100甚至更好的GPU跑。
上图中点击确定后,点击进入 即可进入项目。
在这里插入图片描述
在这里插入图片描述

2.1 配置环境

输入如下程序,克隆PaddleDetection项目,因为我选的是PaddlePaddle2.5.0因此选择2.5版本项目。

%cd work/
# gitee 国内下载比较快
!git clone https://gitee.com/paddlepaddle/PaddleDetection.git -b release/2.5
# github 下载慢,需要等待很长时间
# !git clone https://github.com/PaddlePaddle/PaddleDetection.git -b release/2.5

此时程序被Clone到work文件夹下,点进去就可以看到项目。
在这里插入图片描述
然后一次输入如下的程序,配置所需要的环境和库(这里一步一步来,不要着急,一个一个运行)

#安装PaddleDetection依赖
!pip install -r /home/aistudio/work/PaddleDetection/requirements.txt
#编译安装paddledet
%cd work/PaddleDetection
!python setup.py install

#安装其他依赖
from PIL import Image  
import matplotlib.pyplot as plt
import numpy as np
import os 
import random
#测试安装是否成功,最后输出OK,说明编译安装成功
!python ppdet/modeling/tests/test_architectures.py

出现如下图片中的结果表示成功了
在这里插入图片描述
另外,还要装一个库pycocotools,后面训练会用到,不然会报错。

!pip install pycocotools

2.2 准备数据集

目前给出的数据集是VOC格式的,然而PP-YOLOE仅支持COCO数据集,因此需要将数据集进行转换,转换成COCO标准格式。
依次执行如下程序即可。注意:解压数据集时路径“data“后面要改,

#解压数据集
!unzip -oq /home/aistudio/data/data180502/oil.zip -d /home/aistudio/data/#划分数据集
#根据挂载的数据集制作制作标签文件,并进行划分
#生成train.txt和val.txt
random.seed(2020)
xml_dir  = '/home/aistudio/data/oil/Annotations'#标签文件地址
img_dir = '/home/aistudio/data/oil/JPEGImages'#图像文件地址
path_list = list()
for img in os.listdir(img_dir):img_path = os.path.join(img_dir,img)xml_path = os.path.join(xml_dir,img.replace('jpg', 'xml'))path_list.append((img_path, xml_path))
random.shuffle(path_list)
ratio = 0.8 #测试集和验证集划分比例0.8:0.2
train_f = open('/home/aistudio/data/oil/train.txt','w') #生成训练文件
val_f = open('/home/aistudio/data/oil/val.txt' ,'w')#生成验证文件for i ,content in enumerate(path_list):img, xml = contenttext = img + ' ' + xml + '\n'if i < len(path_list) * ratio:train_f.write(text)else:val_f.write(text)
train_f.close()
val_f.close()#生成标签文档
label = ['oil']#设置你想检测的类别
with open('/home/aistudio/data/oil/label_list.txt', 'w') as f:for text in label:f.write(text+'\n')

最终生成的数据集文件夹目录为
在这里插入图片描述

使用x2coco.py将voc格式的数据集转换成coco数据集 只需要将这四个参数指定成上面生成的标签文件即可

voc_anno_dir 总的标注文件

voc_anno_list 训练数据集文件列表

voc_label_list 标签文件

voc_out_name 输出的coco文件路径

!python tools/x2coco.py \--dataset_type voc \--voc_anno_dir /home/aistudio/data/oil/Annotations \--voc_anno_list /home/aistudio/data/oil/train.txt \--voc_label_list /home/aistudio/data/oil/label_list.txt \--voc_out_name /home/aistudio/data/oil/train.json
!python tools/x2coco.py \--dataset_type voc \--voc_anno_dir /home/aistudio/data/oil/Annotations \--voc_anno_list /home/aistudio/data/oil/val.txt \--voc_label_list /home/aistudio/data/oil/label_list.txt \--voc_out_name /home/aistudio/data/oil/valid.json
!mkdir oil
%cd oil
!mkdir images &&mkdir annotations
!mv /home/aistudio/data/oil/train.json /home/aistudio/work/PaddleDetection/oil/annotations
!mv /home/aistudio/data/oil/valid.json /home/aistudio/work/PaddleDetection/oil/annotations
!cp -r /home/aistudio/data/oil/JPEGImages/* /home/aistudio/work/PaddleDetection/oil/images/
%cd ..

这个是标准的COCO数据集格式
在这里插入图片描述

2.3 训练模型

在这就可以切换环境了,切换到V10032GB的,切记,切记,切记,不要在项目里切换,也有可能是我电脑太辣鸡了,切换不过来,我的失败了很多次,先停止环境再重新启动。
在这里插入图片描述

首先查看PP-YOLOE使用的配置文件PaddleDetection/configs/ppyoloe/ppyoloe_crn_l_300e_coco.yml 可以看到依赖的相关配置文件如下图所示:
注意:这里将预训练权重换成coco数据集上的预训练权重,更多预训练权重
点击链接进入选择配置文件的config找到预训练权重,将其复制进去即可。(就一行)

在这里插入图片描述

在这里插入图片描述

具体的配置文件修改情况以及说明情况,请转至基于PaddleDetection的绝缘子的缺陷检测查看
另外,值得注意的是,coco_detection.yml的配置修改(位置是PaddleDetection/configs/datasets/coco_detection.yml),否则加载数据集失败,无法训练。
在这里插入图片描述
然后,输入程序开始训练。建议用第二条指令,可以边训练边评估,开启可视化。

#** 注意: ** 使用默认配置训练需要设置--amp以避免显存溢出.
#!python tools/train.py -c configs/ppyoloe/ppyoloe_crn_l_300e_coco.yml --amp
#或者运行下面这条指令,边训练边评估,开启可视化
!python tools/train.py -c configs/ppyoloe/ppyoloe_crn_l_300e_coco.yml --amp --eval --use_vdl=True --vdl_log_dir="output"

训练完是这样的。
在这里插入图片描述

3.4 评估模型

python -u work/PaddleDetection/tools/eval.py -c work/PaddleDetection/configs/ppyoloe/ppyoloe_crn_l_300e_coco.yml  \
-o weights=/home/aistudio/output/ppyoloe_crn_l_300e_coco/best_model.pdparams

点击可视化–>设置logdir下面的添加,找到work/PaddleDetection/output,点击确定即可
在这里插入图片描述
之后点击启动VisualDL服务,再点击进入VisualDL,在弹出网页的左上角点击标量数据。
在这里插入图片描述
就可以看到各种可视化的图,起会跟着训练的过程随时更新。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/162201.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络安全应急响应工具(系统痕迹采集)-FireKylin

文章目录 网络安全应急响应工具(系统痕迹采集)-FireKylin1.FireKylin介绍【v1.4.0】 2021-12-20【v1.0.1】 2021-08-09 2.客户端界面Agent支持的操作系统FireKylinAgent界面使用方式比较传统方式与FireKylin比较无法可达目标的场景应用对比 3.使用教程设置语言Agent配置&#x…

一文1800字解读性能指标与性能分析

性能测试监控关键指标: 1、系统指标:与⽤户场景与需求直接相关的指标 2、服务器资源指标:硬件服务器的资源使⽤情况的指标 3、JAVA应⽤ : JAVA应⽤程序在运⾏时的各项指标 4、数据库:数据库服务器运⾏时需要监控的指标 5、压测机资源指标:测试机在模拟⽤户负载时的资源使⽤…

Sui浏览器现支持查看已验证的Move源代码

Sui浏览器现在包含了Sui框架包的源代码视图&#xff0c;这是一个备受欢迎的功能。这个新的“已验证源代码&#xff08;Source Verified&#xff09;”选项卡位于现有的“字节码&#xff08;Bytecode&#xff09;”选项卡旁边&#xff0c;使开发人员可以点击查看以下包的源代码&…

Matlab论文插图绘制模板第124期—三维气泡图

在之前的文章中&#xff0c;分享了很多Matlab气泡图的绘制模板&#xff1a; 进一步&#xff0c;再来分享一下三维气泡图。 先来看一下成品效果&#xff1a; 特别提示&#xff1a;本期内容『数据代码』已上传资源群中&#xff0c;加群的朋友请自行下载。有需要的朋友可以关注同…

HarmonyOS 数据管理与应用数据持久化(二)

通过键值型数据库实现数据持久化 场景介绍 键值型数据库存储键值对形式的数据&#xff0c;当需要存储的数据没有复杂的关系模型&#xff0c;比如存储商品名称及对应价格、员工工号及今日是否已出勤等&#xff0c;由于数据复杂度低&#xff0c;更容易兼容不同数据库版本和设备…

VERT900 Antenna

782773-01 VERT900 Vertical Antenna (824-960 MHz, 1710-1990 MHz) Dualband Includes one VERT900 824 to 960 MHz, 1710 to 1990 MHz Quad-band Cellular/PCS and ISM Band omni-directional vertical antenna, at 3dBi Gain.

【LeetCode周赛】LeetCode第370场周赛

目录 找到冠军 I找到冠军 II在树上执行操作以后得到的最大分数平衡子序列的最大和 找到冠军 I 一场比赛中共有 n 支队伍&#xff0c;按从 0 到 n - 1 编号。 给你一个下标从 0 开始、大小为 n * n 的二维布尔矩阵 grid 。对于满足 0 < i, j < n - 1 且 i ! j 的所有 i, …

保障效率与可用,分析Kafka的消费者组与Rebalance机制

系列文章目录 上手第一关&#xff0c;手把手教你安装kafka与可视化工具kafka-eagle Kafka是什么&#xff0c;以及如何使用SpringBoot对接Kafka 架构必备能力——kafka的选型对比及应用场景 Kafka存取原理与实现分析&#xff0c;打破面试难关 防止消息丢失与消息重复——Kafka可…

mysql 全文检索 demo

mysql5.6.7之后开始支持中文全文检索一直没用过&#xff0c;这次试试。 创建表 CREATE TABLE articles (id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,title VARCHAR (200),body TEXT,FULLTEXT (title, body) WITH PARSER ngram ) ENGINE INNODB DEFAULT CHARSETut…

享搭低代码平台:快速构建符合需求的进销存管理系统应用

本文介绍了享搭低代码平台如何赋予用户快速构建进销存管理系统应用的能力。通过在应用商店安装费用进销存管理模板&#xff0c;并通过拖拽方式对模板进行自定义扩充&#xff0c;用户可以快速搭建符合自身需求的进销存管理系统&#xff0c;从而提高管理效率和优化运营。 介绍低代…

Bash 4关联数组:错误“声明:-A:无效选项”

Bash 4 associative arrays: error “declare: -A: invalid option” 就是bash版本太低 1.先确定现在的版本 bash -version 我的就是版本太低 升级新版本bash4.2 即可 升级步骤 1.下载bash-4.2wget http://ftp.gnu.org/gnu/bash/bash-4.2.tar.gz 2. 下载完成解压 tar -zxvf…

SQL注入之Sqli-labs第二关

本次注入sql-labs的第二关 1.进入第二关后&#xff0c;我们可以看到英语 please input the id as parameter with numeric value&#xff0c;请输入ID作为参数和数值。首先我们可以判断出这是一个GET请求作为注入点的题目&#xff0c;那么我们就需要去URL上拼接ID的值&#xff…