python splits dataset images into training and validation images

python splits dataset images into training and validation images

Original AID dataset, overall, without training and validation
insert image description here
splits into training and testing
insert image description here

source code

'''**************************************************************************
版本:1.0
内容:把一堆图片分成训练集合验证集,手动复制训练集,验证集通过代码移动到新的位置
时间:2022.4.4
作者:狄云
***************************************************************************'''

import os
import random
import sys
import shutil #移动图片
trainval_percent = 0.2# 这里应该是将数据集分为训练集和验证集的比例
train_percent = 0.8

src_filepath = r'./AID'
dst_train = r"./train/"
dst_val = r"./val/"

filenames=os.listdir(src_filepath)
print(filenames)
num = len(filenames)
print(num)
print("运行到行号:",sys._getframe().f_lineno)
for filename in filenames:
    print(filename)
    filename_path=src_filepath+'/'+filename
    print(filename_path)
    filename_path_images_name = os.listdir(filename_path)
    print(len(filename_path_images_name))
    num=len(filename_path_images_name)

    list=range(num)
    tv=int(num*trainval_percent)
    print("tv=",tv)
    trainval= random.sample(list,tv)
    print("trainval=",trainval)
    for i in trainval:
        trainval_name = filename_path_images_name[i]
        print("trainval_name=", trainval_name)
        trainval_name_path=filename_path+'/'+trainval_name
        trainval_name_path_1 = dst_val + filename + '/'   #目标地址
        if not os.path.exists(trainval_name_path_1):
            print('[ERROR]路径不正确: %s' % trainval_name_path_1)
            os.makedirs(trainval_name_path_1)
        trainval_name_path_new=trainval_name_path_1+trainval_name
        print("trainval_name_path=", trainval_name_path)        #源地址+图片名称
        print("trainval_name_path_new=", trainval_name_path_new)#目标地址+图片名称
        shutil.move(trainval_name_path, trainval_name_path_new)


print("结束 运行到行号:",sys._getframe().f_lineno)

final effect

insert image description here
insert image description here

Guess you like

Origin blog.csdn.net/mao_hui_fei/article/details/123947879