分割训练集与测试集数据

这篇博客介绍了如何使用Python将数据集按照90%训练集和10%测试集的比例进行划分。通过`random.shuffle`打乱目录中的图片顺序,然后按比例分配到训练集和测试集中,利用`shutil.copy`进行文件复制操作。代码适用于图像分类任务的数据预处理。
goal:将40000张数据按照9:1的比例分割为训练集与测试集
代码大致如下
C:\Users\sun\Desktop\data devide_color
该文件夹下有10个分类目录:



import random
import shutil

import cv2
import glob
import os

x = [1,2,3,4,5,6]
# random.shuffle可以随机乱序列表中的元素
random.shuffle(x)
print(x)

up_path = r"C:\Users\sun\Desktop\data devide_color"
up_newpath = r"C:\Users\sun\Desktop\data devide_color"
train_path = r"C:\Users\sun\Desktop\b_classification\classification-pytorch-main\color_datasets\train\Anomaly"
test_path = r"C:\Users\sun\Desktop\b_classification\classification-pytorch-main\color_datasets\test\Anomaly"

list = os.listdir(up_path)
for lists in list:
    path = os.path.join(up_path, lists)
    list_pisture = os.listdir(path)
    list_pisture_len = len(list_pisture)
    train_picture = list_pisture_len*0.9
    test_picture = list_pisture_len*0.1
    list_train = list_pisture[0:int(train_picture)]
    list_test = list_pisture[int(train_picture):list_pisture_len+1]

    # 该部分用于训练集的生成
    for list_trains in list_train:
        oldpath = os.path.join(path, list_trains)
        shutil.copy(oldpath,train_path)

    # 该部分用于测试集的生成
    for list_tests in list_test:
        oldpath = os.path.join(path, list_tests)
        shutil.copy(oldpath,test_path)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值