图⽚数据集划分为训练集、测试集、验证集原博⽂:.
亲测有⽤
颜色歌儿歌主要是⽤于天池学习项⽬:.
# -*- coding: utf-8 -*-
"""
将数据集划分为训练集,验证集,测试集
"""
import os
import random
import shutil
# 创建保存图像的⽂件夹
def makedir(new_dir):
if not ists(new_dir):
os.makedirs(new_dir)
random.ed(1)# 随机种⼦
# 1.确定原图像数据集路径
datat_dir ="D:/test2021/train_val_test0811/"##原始数据集路径
# 2.确定数据集划分后保存的路径
split_dir ="D:/test2021/after0811/"##划分后保存路径
train_dir = os.path.join(split_dir,"train")百日冲刺口号
槲蕨的功效与作用
valid_dir = os.path.join(split_dir,"val")四有教师心得体会
test_dir = os.path.join(split_dir,"test")
# 3.确定将数据集划分为训练集,验证集,测试集的⽐例
train_pct =0.9
valid_pct =0.1
test_pct =0学习背景图片
# 4.划分
for root, dirs, files in os.walk(datat_dir):
燕窝炖雪梨for sub_dir in dirs:# 遍历0,1,2,3,4,5...9⽂件夹
imgs = os.listdir(os.path.join(root, sub_dir))# 展⽰⽬标⽂件夹下所有的⽂件名
imgs =list(filter(lambda x: x.endswith('.png'), imgs))# 取到所有以.png结尾的⽂件,如果改了图⽚格式,这⾥需要修改 random.shuffle(imgs)# 乱序图⽚路径
img_count =len(imgs)# 计算图⽚数量
train_point =int(img_count * train_pct)# 0:train_pct
valid_point =int(img_count *(train_pct + valid_pct))# train_pct:valid_pct
for i in range(img_count):
if i < train_point:# 保存0-train_point的图⽚到训练集
out_dir = os.path.join(train_dir, sub_dir)
elif i < valid_point:# 保存train_point-valid_point的图⽚到验证集
out_dir = os.path.join(valid_dir, sub_dir)
语文卷el:# 保存valid_point-结束的图⽚到测试集
out_dir = os.path.join(test_dir, sub_dir)
makedir(out_dir)# 创建⽂件夹
target_path = os.path.join(out_dir, imgs[i])# 指定⽬标保存路径
src_path = os.path.join(datat_dir, sub_dir, imgs[i])#指定⽬标原图像路径
print('Class:{}, train:{}, valid:{}, test:{}'.format(sub_dir, train_point, valid_point-train_point,
img_count-valid_point))
Jupyter Notebook 程序执⾏结果:活力的英语