YOLOv8训练MaskData数据集-贝塔的学习日记

1.将下载好的数据集放在yolo的路径下,放在其他地方也可以,训练时候可以用绝对路径指定

数据集的文件夹如下图所示

这里有三个文件分别是test、train、valid,以及我们数据集的配置文件data.yaml

这里的data.yaml文件非常简单,分别是训练集的路径和验证集的路径,以及两个分类,分类名称

2.我们要激活我们的虚拟环境,在对应的环境下运行

conda activate yolov5

我之前创建的环境名是yolov5相关依赖都安装完毕

3.执行训练命令

#解释一下这条命令
#yolo的目标检测训练,data=是指定训练集所在的路径,数据集在其他地方可以使用绝对路径,绝对路径不会出错建议使用
#model=是指定我们所用模型的配置文件
#pretrained是指定一个预训练模型帮我们训练
#epochs是训练的轮次,这里小一点20轮更快出结果
#batch是每次取出来的图片,就是一次往GPU哪里塞多少张图片了。决定了显存占用大小,默认是16
#lr0是学习率,resume是恢复训练,workers是指数据装载时cpu所使用的线程数,默认为8
#因为我的笔记性能很差,大家可以根据自己情况调整参数大小
yolo detect train data=D:\VehicleDetection\ultralytics-main\datasets\MaskDataSet\data.yaml model=ultralytics/models/v8/yolov8n.yaml pretrai
ned=yolov8n.pt epochs=20 batch=2 lr0=0.01 resume=True workers=1

开始后会打印一些我们的设备信息,以及参数值

这里就开始训练了,上面有训练结果保存的路径runs\detect\train21就是保存结果的地方

在最后10轮时会出现,Closing dataloader mosaic,是yolo中的一个方法,如果在这里报错的话,可以将close_mosaic=0。

Mosaic数据增强方法是YOLOV4论文中提出来的,主要思想是将四张图片进行随机裁剪,再拼接到一张图上作为训练数据。这样做的好处是丰富了图片的背景,并且四张图片拼接在一起变相地提高了batch_size,在进行batch normalization的时候也会计算四张图片,所以对本身batch_size不是很依赖,单块GPU就可以训练YOLOV4

3.训练结果

恭喜已经顺利的跑起来了yolov8的模型,研究生小白重于破门而入,后续的学习笔记我也会整理在这里,不经是帮助自己整理知识点,也希望我的学习过程可以帮助到你

see you~

好的,以下是一段Java代码示例,用于将数据库中的敏感数据进行脱敏显示。 ```java import java.sql.*; public class DataMasking { public static void main(String[] args) { try { // 连接数据库 Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password"); // 查询用户表中的敏感数据 String query = "SELECT name, id_number, phone_number FROM user"; PreparedStatement stmt = conn.prepareStatement(query); ResultSet rs = stmt.executeQuery(); // 遍历查询结果集 while (rs.next()) { // 对每个用户的数据进行脱敏处理 String name = maskData(rs.getString("name"), 1, 1); String idNumber = maskData(rs.getString("id_number"), 6, 4); String phoneNumber = maskData(rs.getString("phone_number"), 3, 4); // 输出脱敏后的数据 System.out.println("Name: " + name); System.out.println("ID Number: " + idNumber); System.out.println("Phone Number: " + phoneNumber); } // 关闭数据库连接 rs.close(); stmt.close(); conn.close(); } catch (SQLException e) { e.printStackTrace(); } } // 定义脱敏方法,使用星号替换指定位置的字符 private static String maskData(String data, int start, int end) { if (data == null || data.length() == 0) { return ""; } if (start < 0 || end > data.length() || start > end) { return data; } int maskLength = end - start; if (maskLength == 0) { return data; } StringBuilder sb = new StringBuilder(data); for (int i = start; i < end; i++) { sb.setCharAt(i, '*'); } return sb.toString(); } } ``` 在上述示例中,我们使用了 Java 的 JDBC API 来连接数据库并进行查询操作。对于查询结果中的每个敏感数据,我们都使用 `maskData` 方法进行脱敏处理。该方法接收三个参数:需要脱敏的数据、需要脱敏的起始位置和需要脱敏的结束位置。在方法内部,我们使用 StringBuilder 对象将需要脱敏的数据转换为可变字符串,然后使用循环将指定位置的字符替换为星号,最后返回脱敏后的字符串。 需要注意的是,这只是一种简单的数据脱敏方法,实际上还需要根据具体的业务场景和安全要求来选择更加严格的脱敏方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值