2021-07-28对数据集进行训练集和测试集的分割的两种思路

本文介绍了对数据集进行训练集和测试集分割的两种方法:一是直接切分数据,通过遍历文件、随机排列并按比例分配;二是生成路径列表,将路径分别保存到文本文件中,简化数据读取过程。
摘要由CSDN通过智能技术生成

对数据集进行训练集和测试集的分割的两种思路

前言

一般来讲,测试集可以检验,用训练集训练的模型效果是否过拟合。我们得到的数据一般很少分好了训练集和测试集。这时候就需要我们手动分割训练集和测试集。

方法1:直接切分数据

要用到shutil包来复制数据。思路就是遍历目录下的所有文件,得到所有类别的存放路径。遍历每个类别,然后获得每个类别的所有图片的名称列表,并将其随机排列。然后创建存放对应数据集的文件夹,并遍历图片名称列表,按照比例(8:1:1)将名字分配给不同的集。最后拼接路径,根据路径复制图片到对应位置。代码如下:

import os
import random
import math
import shutil

def data_split(old_path):
    new_path = 'data'
    if os.path.exists('data') == 0:
        os.makedirs(new_path)
    for root_dir, sub_dirs, file in os.walk(old_path):                               # 遍历os.walk()返回的每一个三元组,内容分别放在三个变量中
        for sub_dir in sub_dirs:
            file_names = os.listdir(os.path.join(root_dir, sub_dir))                 # 遍历每个次级目录
            file_names = list(filter(lambda x: x.endswith('.jpg')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值