Python 把标注文件Annotations.txt按7:2:1数量比例分配给train集,val集,test集,其中单个样本随机分配

博客演示了如何使用Python将Annotations.txt文件中的样本以7:2:1的比例随机分配到训练集、验证集和测试集中,以备进行yolov3的训练、验证和测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 先测试把100个数字0-99个,按7:2:1数量比例分配给a集,b集,c集,其中单个样本随机分配

import random

totalnum = 100
t1 = totalnum*0.1
t2 = totalnum*0.2
t3 = totalnum*0.7
a = set()
b = set()
c = set()

while(len(a)<t1):
    x = random.randint(0,totalnum)
    if x not in a:
       a.add(x)

while(len(b)<t2):
    x = random.randint(0,totalnum)
    if x in a:
       continue
    if x not in b:
       b.add(x)

for x in range(totalnum):
    if x in a or x in b:
       continue
    else:
       c.add(x)

print "a = ",a,len(a)
print "b = ",b,len(b)
print "c = ",c,len(c)

wu@wu-X555LF:~$ python random_test.py
a =  set([44, 42, 12, 46, 15, 49, 19, 20, 14, 59]) 10
b =  set([35, 36, 86, 39, 8, 9, 75, 76, 13, 77, 29, 24, 78, 3, 53, 22, 88, 68, 93, 7]) 20
c =  set([0, 1, 2, 4, 5, 6, 10, 11, 16, 17, 18, 21, 23, 25, 26, 27, 28, 30, 31, 32, 33, 34, 37, 38, 40

实验任务: 1)构建无人机目标检测数据集样本数量为 300,其中 280 作为训练,20 作为测试; 2)搭建 yolo v8 目标检测网络; 3)构建整个 yolo v8 无人机目标检测工程,包括 ⚫ 网络代码,如 model.py ⚫ 数据集代码,包括数据集的读取和预处理,如 dataset.py ⚫ 数据增强代码,如 transforms.py ⚫ 损失函数代码,如 loss.py ⚫ 优化器、学习率策略代码,如 optimizer.py ⚫ 训练代码,如 train.py ⚫ 模型评估(mAP 代码,如 evaluate.py ⚫ 模型推理测试代码(输入是包含无人机的图片,输出是可视化无人 机的检测矩形框),如 infer.py ⚫ 其他部分代码(坐标解析等部分代码),如 utils.py 4)利用训练数据对模型进行训练,保存最佳模型的权重为 bestModel.pth。 5)利用训练好的模型对测试进行测试,计算相关评测指标如 mAP,并在 测试图像上标记出无人机的预测框 目录如下 Drone-Test/ ├── images/ # 存放300张无人机图片(.jpg) ├── labels/ # 存放标注文件(.txt),与图片同名 ├── model.py # YOLOv8模型定义 ├── dataset.py # 数据集加载与预处理 ├── transforms.py # 数据增强 ├── loss.py # 损失函数 ├── optimizer.py # 优化器配置 ├── train.py # 训练脚本 ├── evaluate.py # 模型评估(mAP计算) ├── infer.py # 推理与可视化 └── utils.py # 工具函数(坐标转换/NMS等)
最新发布
07-09
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值