如何快将数据集划分为trainval(Python3代码模板)

Posted K同学啊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何快将数据集划分为trainval(Python3代码模板)相关的知识,希望对你有一定的参考价值。

🔥本文 GitHub https://github.com/kzbkzb/Python-AI 已收录

作者:K同学啊
本代码不仅适用于两类别,更适用于任意类别数

import os, random, shutil

def moveFile(fileDir,tarDir_train,tarDir_val):
        pathDir = os.listdir(fileDir)    #取图片的原始路径
        filenumber=len(pathDir)
        
        rate=0.2                        #自定义抽取图片的比例,比方说100张抽10张,那就是0.1
        picknumber   = int(filenumber*rate) #按照rate比例从文件夹中取一定数量图片
        sample_val   = random.sample(pathDir, picknumber)  #随机选取picknumber数量的样本图片

        for name in sample_val:
            shutil.move(fileDir+name, tarDir_val+name)
        for name in os.listdir(fileDir):
            shutil.move(fileDir+name, tarDir_train+name)
            
if __name__ == '__main__':
    filePath = "./1-cat-dog-raw/"    #源图片文件夹路径
    
    train_fileDir = filePath + "train/"
    val_fileDir   = filePath + "val/"
    
    for oneDir in os.listdir(filePath): 
        onefileDir = filePath + oneDir + "/"
        onetarDir_train = train_fileDir+oneDir+"/"  # A的二级目录
        onetarDir_val  = val_fileDir+oneDir+"/"   # B的二级目录
        print(onefileDir)
        print(onetarDir_train)
        print(onetarDir_val,end="\\n\\n")
        
        # 判断文件夹是否存在,不存在则创建
        if not os.path.exists(onetarDir_train):
            os.makedirs(onetarDir_train)
        if not os.path.exists(onetarDir_val):
            os.makedirs(onetarDir_val)
        
        moveFile(onefileDir,onetarDir_train,onetarDir_val)
        
        # 删除原文件夹(这个时候文件夹应该是已经空了的)
        os.removedirs(onefileDir)

以上是关于如何快将数据集划分为trainval(Python3代码模板)的主要内容,如果未能解决你的问题,请参考以下文章

如何利用python将txt文件划分训练集和测试集

如何利用python将txt文件划分训练集和测试集

如何将数据集划分为训练集和测试集?

深度学习篇之数据集划分方法-附代码python详细注释

使用python划分数据集

如何把数据集划分成训练集和测试集