从文件夹大量图片中随机抽取图片当训练集和测试集

@TOC从文件夹大量图片中随机抽取图片当训练集和测试集

import os, random, shutil


def moveFile(fileDir):
    # pathDir = os.listdir(fileDir)
    # filenumber = len(pathDir)
    # rate = 0.001
    # picknumber = int(filenumber * rate)
    # sample = random.sample(pathDir, picknumber)
    # print(sample)
    # for name in sample:
    #     shutil.move(fileDir + name, tarDir + name)
    # return
    #
    # pathDir = os.listdir(tarDir)
    # result = os.listdir(fileDir)
    # for list in result:
    #     if list in pathDir:
    #         shutil.move(fileDir + list, newdir + list)

    hr_img = os.listdir(fileDir)
    filenumber = len(hr_img)
    picknumber = 1000
    sample = random.sample(hr_img, picknumber)


    for name in sample:
        shutil.move(fileDir + name, tarDir + name)

    result = os.listdir(tarDir)
    pathDir = os.listdir(hr_hazyDir)
    for list in result:
        if list in pathDir:
            shutil.move(hr_hazyDir + list, tarhazydir + list)


if __name__ == '__main__':
    hrdir = "sidd320/HR/" #源文件夹
    hr_hazyDir = "sidd320/HR_hazy/"#源文件夹
    tarDir = 'sidd320test/HR/' #目标文件夹
    tarhazydir = 'sidd320test/HR_hazy/'#目标文件夹
    moveFile(hrdir)
要将不同文件夹中的数据划分为训练集测试集,你可以按照以下步骤进行: 1. 遍历每个文件夹,并将文件夹路径存储在一个列表中。 2. 对于每个文件夹,可以使用随机抽样的方式将数据划分为训练集测试集。你可以自定义训练集测试集的比例,例如 80% 的数据作为训练集,20% 的数据作为测试集。 3. 对于每个文件夹,可以使用文件操作库(如Python中的`os`库)来获取文件列表。 4. 针对每个文件夹的文件列表,可以使用随机抽样的方式将文件分配到训练集测试集。你可以使用随机数生成器来生成随机索引或者使用现成的库函数,如`random.sample()`。 5. 将训练集测试集的文件路径分别存储在两个不同的列表中。 下面是一个示例代码片段,演示如何将不同文件夹中的数据划分为训练集测试集: ```python import os import random # 文件夹路径列表 folder_paths = ['folder1', 'folder2', 'folder3'] # 训练集测试集比例 train_ratio = 0.8 # 存储训练集测试集文件路径的列表 train_files = [] test_files = [] # 遍历每个文件夹 for folder_path in folder_paths: # 获取文件列表 file_list = os.listdir(folder_path) # 随机抽样,划分训练集测试集 train_size = int(len(file_list) * train_ratio) train_samples = random.sample(file_list, train_size) test_samples = list(set(file_list) - set(train_samples)) # 构建训练集测试集文件路径列表 train_files.extend([os.path.join(folder_path, file) for file in train_samples]) test_files.extend([os.path.join(folder_path, file) for file in test_samples]) # 打印训练集测试集文件路径列表 print("Train Files:") print(train_files) print("Test Files:") print(test_files) ``` 这个示例代码可以根据你的需求进行修改扩展,例如你可以添加更多的文件夹路径,调整训练集测试集的比例等。希望对你有所帮助!如果还有其他问题,请继续提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值