如何将数据集标签按照指定比例划分 - Python 代码示例
可以使用Python的文件操作函数来实现将数据集标签划分的任务。下面是一个示例代码,可以将指定文件夹中的标签文件按照划分比例拷贝到对应的目标文件夹中:
import os
import random
import shutil
# 源标签文件夹路径
labels_folder = 'labels'
# 目标训练集标签文件夹路径
train_labels_folder = 'train_labels'
# 目标验证集标签文件夹路径
val_labels_folder = 'val_labels'
# 目标测试集标签文件夹路径
test_labels_folder = 'test_labels'
# 划分比例
train_ratio = 0.8
val_ratio = 0.1
test_ratio = 0.1
# 获取所有标签文件名
labels = os.listdir(labels_folder)
# 打乱标签文件顺序
random.shuffle(labels)
# 计算划分数量
num_data = len(labels)
num_train = int(num_data * train_ratio)
num_val = int(num_data * val_ratio)
num_test = num_data - num_train - num_val
# 创建目标文件夹
os.makedirs(train_labels_folder, exist_ok=True)
os.makedirs(val_labels_folder, exist_ok=True)
os.makedirs(test_labels_folder, exist_ok=True)
# 将标签文件按比例拷贝到目标文件夹
for i, label in enumerate(labels):
src_path = os.path.join(labels_folder, label)
if i < num_train:
dst_path = os.path.join(train_labels_folder, label)
elif i < num_train + num_val:
dst_path = os.path.join(val_labels_folder, label)
else:
dst_path = os.path.join(test_labels_folder, label)
shutil.copy(src_path, dst_path)
请根据实际情况修改文件夹路径和划分比例。上述代码将源标签文件夹中的标签文件按照8:1:1的比例拷贝到对应的训练集、验证集和测试集标签文件夹中。
原文地址: https://www.cveoy.top/t/topic/phXl 著作权归作者所有。请勿转载和采集!