全部图片数据集划分8:2数据集,python代码

划分数据集是指全部的数据集,之后划分成train占8份,test占两份,
划分之后是每一类下面都有一个train和test文件
在这里插入图片描述
首先,新建一个空文件,子目录下把每一类的文件夹复制,新建代码python

import os
# i 用来计算文件数量,k 用来计算新建文件夹的数量
i = 0
k = 0
#  想保存到的根路径
save_dir = r'C:\Users\Administrator\Desktop\project\256_ObjectCategories_New5'
#  如果目录不存在,则创建
if not os.path.isdir(save_dir):
    os.makedirs(save_dir)

复制完成之后,再在每一个类别文件下用代码新建train和test文件,之后再从源文件随机选取8份放在train里面,2份放在test里面。
python代码为:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# 将一个文件夹下图片按比例分在两个文件夹下,比例改0.8这个值即可
import random
from shutil import copy2
# -*- coding: utf-8 -*-
import os
dirs=(os.listdir("256_ObjectCategories"))
wenjianName = "256_ObjectCategories_New6"
for dir in dirs:
    print(dir)

    trainfiles = os.listdir('C:\\Users\\Administrator\\Desktop\\project\\256_ObjectCategories\\'+dir)#(图片文件夹)
    # print(trainfiles)
    num_train = len(trainfiles)
    # print( "num_train: " + str(num_train) )
    index_list = list(range(num_train))
    # print(index_list)
    random.shuffle(index_list)
    num = 0
    trainDir = 'C:\\Users\\Administrator\\Desktop\\project\\'+wenjianName+'\\train\\'+dir+''#(将图片文件夹中的8份放在这个文件夹下)
    testDir = 'C:\\Users\\Administrator\\Desktop\\project\\'+wenjianName+'\\test\\'+dir+''#(将图片文件夹中的2份放在这个文件夹下)
    for i in index_list:
        # fileName = os.path.join('C:\\Users\\Administrator\\Desktop\\project\\256_ObjectCategories', trainfiles[i])
        fileName = ('C:\\Users\\Administrator\\Desktop\\project\\256_ObjectCategories\\'+dir+"\\"+trainfiles[i])
        # print(fileName+"000000000000000")
        if num < num_train*0.8:
            print(str(fileName))
            copy2(fileName, trainDir)
        else:
            copy2(fileName, testDir)
        num += 1

有空改该目录格式,我这边的新建文件是:256_ObjectCategories_New6

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值