美文网首页
数据集自动划分(代码)

数据集自动划分(代码)

作者: 做个有追求的咸鱼 | 来源:发表于2023-04-08 18:12 被阅读0次

在你自己项目里面创建一个新的py文件,命名你随意。

import os

import shutil

import random

random.seed(0)

def split_data(file_path,xml_path, new_file_path, train_rate, val_rate, test_rate):

    each_class_image = []

    each_class_label = []

    for image in os.listdir(file_path):

        each_class_image.append(image)

    for label in os.listdir(xml_path):

        each_class_label.append(label)

    data=list(zip(each_class_image,each_class_label))

    total = len(each_class_image)

    random.shuffle(data)

    each_class_image,each_class_label=zip(*data)

    train_images = each_class_image[0:int(train_rate * total)]

    val_images = each_class_image[int(train_rate * total):int((train_rate + val_rate) * total)]

    test_images = each_class_image[int((train_rate + val_rate) * total):]

    train_labels = each_class_label[0:int(train_rate * total)]

    val_labels = each_class_label[int(train_rate * total):int((train_rate + val_rate) * total)]

    test_labels = each_class_label[int((train_rate + val_rate) * total):]

    for image in train_images:

        print(image)

        old_path = file_path + '/' + image

        new_path1 = new_file_path + '/' + 'train' + '/' + 'images'

        if not os.path.exists(new_path1):

            os.makedirs(new_path1)

        new_path = new_path1 + '/' + image

        shutil.copy(old_path, new_path)

    for label in train_labels:

        print(label)

        old_path = xml_path + '/' + label

        new_path1 = new_file_path + '/' + 'train' + '/' + 'labels'

        if not os.path.exists(new_path1):

            os.makedirs(new_path1)

        new_path = new_path1 + '/' + label

        shutil.copy(old_path, new_path)

    for image in val_images:

        old_path = file_path + '/' + image

        new_path1 = new_file_path + '/' + 'val' + '/' + 'images'

        if not os.path.exists(new_path1):

            os.makedirs(new_path1)

        new_path = new_path1 + '/' + image

        shutil.copy(old_path, new_path)

    for label in val_labels:

        old_path = xml_path + '/' + label

        new_path1 = new_file_path + '/' + 'val' + '/' + 'labels'

        if not os.path.exists(new_path1):

            os.makedirs(new_path1)

        new_path = new_path1 + '/' + label

        shutil.copy(old_path, new_path)

    for image in test_images:

        old_path = file_path + '/' + image

        new_path1 = new_file_path + '/' + 'test' + '/' + 'images'

        if not os.path.exists(new_path1):

            os.makedirs(new_path1)

        new_path = new_path1 + '/' + image

        shutil.copy(old_path, new_path)

    for label in test_labels:

        old_path = xml_path + '/' + label

        new_path1 = new_file_path + '/' + 'test' + '/' + 'labels'

        if not os.path.exists(new_path1):

            os.makedirs(new_path1)

        new_path = new_path1 + '/' + label

        shutil.copy(old_path, new_path)

if __name__ == '__main__':

    file_path = "D:/Files/dataSet/drone_images"

    xml_path = 'D:/Files/dataSet/drone_labels'

    new_file_path = "D:/Files/dataSet/droneData"

    split_data(file_path,xml_path, new_file_path, train_rate=0.6, val_rate=0.2, test_rate=0.2)  #数据集划分6:2:2


以上代码参考的:

(55条消息) 【yolov5】将标注好的数据集进行划分(附完整可运行python代码)_yolov5数据集划分_freezing?的博客-CSDN博客

上面代码改一下file_path 、xml_path 、new_file_path 就可以运行了。

直接划分了数据集  很方便!

显示这样则划分成功

相关文章

  • sklearn数据集的获取与划分

    划分数据集 获取sklearn本地的数据集 描述iris数据集 从网络获取数据集 网络获取 划分训练集和测试集 数...

  • 决策树(二)

    划分数据集 分类算法除了需要测量信息熵,还需要划分数据集,度量花费数据集的熵,以便判断当前是否正确地划分了数据集。...

  • 2018-04-25 第五周

    本周任务:按照标准的数据集划分,即训练集:2 测试集:1的比例划分数据,测试模型效果。 首先,划分...

  • 为什么要划分训练集、验证集和测试集

    一般来说机器学习的数据集都会被划分成三个个子集训练集,验证集和测试集。 我们拿到的数据集通常都是由人工或者半自动化...

  • 机器学习常用代码

    数据清洗时,将dataframe文本转化为数值。 划分测试集与训练集(3:7) 基础的机器学习代码,查看得分

  • 数据集的划分&更改评估指标

    数据集划分为 训练集 开发集(交叉验证集) 测试集,最大化团队效率。 如何划分 将所有的数据随机洗牌,放入交叉验证...

  • 数据集划分

    常用方法:(1)简单分离训练集和测试集,(2)K折交叉验证分离1.最简单分离测试集和测试集:train_test_...

  • 数据集划分

    看了几个大佬的数据集划分总觉得有些可能是后期进行过修改的,于是决定先用最简单的数据集划分方式,如下图: (修改:所...

  • 决策树算法

    原理 通过选择最好的特征来划分数据集,对数据子集继续划分,直到数据子集中是相同的类别;划分数据集的特征可以通过计算...

  • 02 使用 scikit-learn 的 kNN 分类算法实现鸢

    代码 运行结果 需要注意的地方 读取的数据集如果y标签是数字,需要做映射: 划分数据集:X训,X测,y训,y测 ...

网友评论

      本文标题:数据集自动划分(代码)

      本文链接:https://www.haomeiwen.com/subject/wplvddtx.html