思路:
- 在特定路径下创建train,val的文件夹
- 用列表放数据集下种类的名称
- 根据上面的列表,分别在train和val路径下创建class类别名称的文件夹
- 划分数据集比例:计算特定类别class的数据集图片数量,采用random.samples抽取出验证集的图片名称,这些名称是以列表保存的
- 遍历每一张图片,并判断是否在验证集的列表名称中,如果是,则复制copy到验证级特定种类的路径下,否则就复制到训练集特定种类的路径下
import os
from shutil import copy
import random
### 该脚本与file_path同级
file_path = 'flower_data' # 文件路径
data_path = 'flower_data/flower_photos' # 数据路径
def mkfile(file_dir):
if not os.path.exists(file_dir):
os.mkdir(file_dir)
return file_dir
file = 'flower_data/flower_photos'
# 获取数据集上每个种类的名字
flow_class = [cla for cla in os.listdir(data_path) if '.txt' not in cla]
# 在flower_data创建train文件夹
train_dir = mkfile(file_path+ '/' +"train")
# 在train文件夹下创建每一个种类的文件夹
for cla in flow_class:
mkfile(train_dir +