划分数据集是指全部的数据集,之后划分成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