【T宝客户项目解决过程】01-模型训练

1 项目需求描述

博主自己开了一家T宝店,有一个客户有这个需求:有一大堆图像,大概有10多万张图,都是比较小尺寸的图。各种类型都有,我们想要通过将不同类型发图像进行分开,如何实现呢?

2 思路

可以通过训练模型,将图像通过模型预测,来进行筛选图像。比如:我们先训练第一个图像分类模型:卡通/猫。将每一个图像都使用模型预测下,如果预测为卡通或者猫的得分比较大,那么,我们就认为这个图像就是卡通或者猫,就把它从原始文件夹中拿出来,放到预测结果的这个类别的文件夹中。

3 步骤

3.1 图像准备

先从这么多图像中,筛选出卡通图,猫图各自100多张。用于训练。整理数据格式为:

3.2 环境准备

要进行模型训练,我们就需要在windows上配置训练的环境。这里,我们仍使用yolo11进行训练。环境准备过程如下:

3.2.1 环境创建

之前,我们都是使用conda创建环境,这次我们换一种方案,uv。

首先,在桌面上新建一个文件夹TB_Pro-Clas-Cat-Cartoon,然后打开Pycharm选择项目路径。配置环境如下(如果不会配置,可以参考Pycharm配置uv环境):

然后点击创建,进入如下界面:

3.2.2 安装ultralytics

使用如下命令安装ultralytics:

uv pip install ultralytics

3.2.3 克隆仓库

使用如下命令,注意,最好提前打开科学上网,这样下载速度会更快!

git clone https://github.com/ultralytics/ultralytics.git

现在,我们查看一下目录,就会看到如下结果:

3.3 划分数据集

然后,为了训练模型,我们需要将数据集整理为下面的格式:

包含训练集、测试集和验证集,按类别分文件夹存储。

📁 data-train/
├── 📁 train/
│ ├── 📁 catroon/
│ └── 📁 cat/
├── 📁 test/
│ ├── 📁 catroon/
│ └── 📁 cat/
└── 📁 val/ (可选,本次项目,我们不划分)

3.4 开始训练

3.4.1 下载模型

从官网直接下载到的模型:

模型尺寸
(像素)
acc
top1
acc
top5
速度
CPU ONNX
(毫秒)
速度
T4TensorRT10
(ms)
params
(M)
FLOPs
(B) at 224
YOLO11n-cls22470.089.45.0 ± 0.31.1 ± 0.01.60.5
YOLO11s-cls22475.492.77.9 ± 0.21.3 ± 0.05.51.6
YOLO11m-cls22477.393.917.2 ± 0.42.0 ± 0.010.45.0
YOLO11l-cls22478.394.323.2 ± 0.32.8 ± 0.012.96.2
YOLO11x-cls22479.594.941.4 ± 0.93.8 ± 0.028.413.7

为了得到更高的准确率,我们使用YOLO11x-cls。下载后就会得到:

我们可以将这个文件挪到ultralytics文件夹内!

3.4.2 编写训练代码

新建一个train-code.py文件。

并编写训练代码如下:

from ultralytics import YOLO# Load a model
## yolo11x-cls.pt这个模型是从官网直接下载到的模型
model = YOLO("yolo11x-cls.pt") # Train the model
results = model.train(data="data-train", epochs=100, imgsz=224)

然后,在pycharm终端,cd到ultralytics文件夹,运行py文件,就开始训练模型啦!

经过漫长的等待(等待时间取决于你的电脑显卡配置),终于训练完成啦!

然后,我们在路径下,就会看到模型文件:

至此,模型训练就结束啦!

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

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

相关文章

如何在中将网络改为桥接模式并配置固定IP地址

在使用服务器搭建虚拟机的过程中,我们发现有许多场景需要将虚拟机的网络配置为桥接模式,并为其设置固定的IP地址。为了帮助大家更高效地进行网络配置,提升虚拟机的连接稳定性和管理便捷性,我们总结了这篇指南,介绍如何…

强化学习 - 基于策略的Reinforce算法

🎯 REINFORCE 策略梯度算法推导(完整) 1. 目标函数定义 我们希望最大化策略的期望回报: J ( θ ) E τ ∼ π θ [ R ( τ ) ] J(\theta) \mathbb{E}_{\tau \sim \pi_\theta} \left[ R(\tau) \right] J(θ)Eτ∼πθ​​[R(τ…

Windows Sever Core安装及常用命令

一、Windows Sever Core 在安装 Windows Server 的过程中,可以选择“Server Core”(核心安装)这种没有图形用户界面(GUI)的安装方式。这种模式下,Windows Server 主要通过命令行或远程管理进行配置和维护&…

Java 单元测试实战:以“两数之和”为例,讲透测试思维

🌟Java 单元测试实战:以“两数之和”为例,讲透测试思维 在 Java 开发中,单元测试不仅是验证功能正确的手段,更是衡量开发者是否具备“测试思维”的标志。今天我们通过一个最简单的功能——“两数之和”来系统讲解如何…

Bootstrap 5学习教程,从入门到精通,Bootstrap 5 提示框(Tooltips) 语法知识点及案例(21)

Bootstrap 5 提示框(Tooltips) 语法知识点及案例 一、提示框语法知识点 1. 基本概念 提示框(Tooltips)是当用户悬停在元素上时显示的小浮动标签,用于提供额外信息。 2. 核心属性 data-bs-toggle"tooltip" - 标识元素为提示框触发器title - 提示框显示…

设计模式实战指南:从源码解析到Java后端架构的艺术

🎯 设计模式实战指南:从源码解析到Java后端架构的艺术 概述 本文档基于设计模式分类,详细介绍Java后端开发中各种设计模式的实际应用场景,结合Spring、MyBatis、Redis等主流框架的源码分析,帮助开发者深入理解设计模…

Python Arrow 库详解:更智能的日期时间处理

1. 安装与基本用法 安装 Arrow pip install arrow基本使用示例 import arrow# 获取当前时间 now arrow.now() print(now) # 输出: 2023-07-15T14:30:45.12345608:00# 创建特定时间 dt arrow.get(2023-07-15 14:30:00, YYYY-MM-DD HH:mm:ss) print(dt) # 输出: 2023-07-15T…

大家电破渠道困局,小家电攻用户体验,云徙有何解法?

中国家电行业正经历深刻转型。 自2018年市场规模触及8400亿顶峰后,行业从增量竞争转向存量博弈。与此同时,线上渠道在2023年首次以58%的占比超越线下,其中扫地机器人等小家电品类线上渗透率突破90%。消费需求也在同步重构——从家庭场景向个…

DMDPC多副本数据分布测试

需求:测试建表和插入数据是否会根据分布列进行自动分发。 验证方法:1)准备基础环境:创建用户和表空间。2)创建数据分布测试表,并插入数据。3)查询指定分区数据,验证数据分布情况。 …

Qt/C++开发监控GB28181系统/rtp解包/jrtplib库的使用/同时支持udp和tcp被动和主动三种方式解包

一、前言说明 通过sip协议仅仅是交互,音视频数据的收发最终并不是通过sip传输的,而是通过将数据打包成rtp的格式再通过udp或者tcp通信的,sip协议仅仅是告知对方待会要往哪里发数据,是udp还是tcp。由于数据都是rtp包格式&#xff…

集群聊天服务器---muduo库的使用

使用 C 和 muduo 网络库来实现一个简单的聊天服务器和客户端。 服务器端: class chatServer { public:// 初始化TcpServerchatServer(muduo::net::EventLoop *loop,const muduo::net::InetAddress &listenAddr): _server(loop, listenAddr, "chatServer&…

关于Net Core Web API 项目测试 数据库模拟的两种不同方法 DC_week 6

1.关系型数据库 插件:Microsoft.EntityFrameworkCore.InMemory Microsoft.EntityFrameworkCore.InMemory 是一个用于测试的“临时内存数据库”,让你在不连接真实数据库的情况下,测试 EF Core 的功能。 使用时就是用具体这个框架里面已经…

如何获取 vscode 的 vsix 离线插件安装包

1、搜索所需要的插件 Extensions for Visual Studio family of products | Visual Studio Marketplace网址 2、点击 Repository 跳转到对应的 git 仓库 3、在 git 仓库依次选择 main , Tags, View all tags 4、选择你想下载的版本,并点击 downloads 5、往下滑动&…

ULS23 挑战:用于计算机断层扫描中 3D 通用病变分割的基准模型及基准数据集|文献速递-深度学习医疗AI最新文献

Title 题目 The ULS23 challenge: A baseline model and benchmark dataset for 3D universal lesion segmentation in computed tomography ULS23 挑战:用于计算机断层扫描中 3D 通用病变分割的基准模型及基准数据集 01 文献速递介绍 每年进行的CT检查数量持续…

WebSocket 端点 vs Spring Bean

在websocket端点中注入业务service时,不能像普通的springbean一样通过Autowired或Resource注解进行注入。主要原因是websocket端点与spring容器中的bean的生命周期管理容器不同。 WebSocket 端点(ServerEndpoint)和 Spring Bean 的生命周期存…

MySQL8:jdbc插入数据后获取自增ID

pom文件&#xff1a; <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"&…

MyBatis(Web后端开发第二期)

p.s.这是萌新自己自学总结的笔记&#xff0c;如果想学习得更透彻的话还是请去看大佬的讲解 目录 JDBC、数据库连接池、lombok日志输出SQL注入数据封装XML映射文件动态SQL<if><where><set><foreach><sql><include> 配置文件 Mybatis是是一…

Angular1--Hello

最近有个小错误&#xff0c;因为最近还是在看thingsboard&#xff0c;最近终于看到前端的代码&#xff0c;突然发现怎么全是ts的文件&#xff0c;仔细一看原来并不是之前认为的AngularJS&#xff0c;而是Angular。。。我tm真的无语了&#xff0c;又要去重新学。。。 Angular的…

什么是redission看门狗机制

Redisson 的看门狗机制(Watchdog Mechanism)是其实现可重入分布式锁时的一个核心特性,主要用于解决业务逻辑执行时间超过锁的过期时间(leaseTime)而导致锁提前释放,进而引发数据不一致的问题。它是一个自动的锁续期机制。 🔍 核心问题:为什么需要看门狗? 分布式锁的…

黑马程序员苍穹外卖DAY1

1. 前端页面能正常显示但无法登录&#xff08;一直转圈圈&#xff09; 找到下面路径的dev.yml port一定要跟自己本机的保持一致&#xff0c;&#xff0c;username和password也一定是自己主机的用户名和密码&#xff0c;不然连不上。 登录界面的密码为数据库表的密码&#xff0…