首页 > 其他分享 >切分数据集到train-val-test文件夹

切分数据集到train-val-test文件夹

时间:2024-01-20 21:35:35浏览次数:28  
标签:集到 val train file test dir size

import os  
import random  
import shutil  
  
def split_data(source_dir, train_dir, val_dir, test_dir):  
    # 确保目标文件夹存在  
    os.makedirs(train_dir, exist_ok=True)  
    os.makedirs(val_dir, exist_ok=True)  
    os.makedirs(test_dir, exist_ok=True)  
  
    # 列出源文件夹中的所有文件  
    files = os.listdir(source_dir)  
    total_files = len(files)  
  
    # 计算每个子集的大小  
    train_size = int(total_files * 0.6)  
    val_size = int(total_files * 0.2)  
    test_size = total_files - train_size - val_size  
  
    # 随机打乱文件列表  
    random.shuffle(files)  
  
    # 将文件分配到各个子集  
    for file in files:  
        file_path = os.path.join(source_dir, file)  
        if train_size > 0:  
            shutil.copy2(file_path, os.path.join(train_dir, file))  
            train_size -= 1  
        elif val_size > 0:  
            shutil.copy2(file_path, os.path.join(val_dir, file))  
            val_size -= 1  
        else:  
            shutil.copy2(file_path, os.path.join(test_dir, file))  
            test_size -= 1

if __name__ == "__main__":  
    source_dir = "frog_dataset"  # 替换为源文件夹的路径  
    train_dir = "./data/train/"  # 替换为训练文件夹的路径  
    val_dir = "./data/val/"  # 替换为验证文件夹的路径  
    test_dir = "./data/test/"  # 替换为测试文件夹的路径  
  
    split_data(source_dir, train_dir, val_dir, test_dir)

 

标签:集到,val,train,file,test,dir,size
From: https://www.cnblogs.com/cupleo/p/17977164

相关文章

  • P4747 [CERC2017] Intrinsic Interval 题解
    题目链接:IntrinsicInterval讲讲析合树如何解决这种问题,其实这题很接近析合树的板题的应用。增量法进行析合树建树时,需要用ST表预处理出\(max\)和\(min\)以便\(O(1)\)查询极差,然后线段树去维护\([l,r]\)上的极差减区间端点做差即\(diff-(r-l)\),当这玩意等于\(0\)时......
  • std::declval 元函数
    declval用于非求值上下文中declval原形:template<typename_Tp>autodeclval()noexcept->decltype(__declval<_Tp>(0)){static_assert(__declval_protector<_Tp>::__stop, "declval()mustnotbeused!");return__declval&l......
  • AT_codefestival_2016_final_b
    根据题意,很容易得知要使得它们的最大值最小,就要从最小的\(1\)开始用。转化一下题意,不难发现,我们只需求出最小的\(k\),使得\[\\sum_{i=1}^ki\\gen\]于是思路便产生了:对\(1\),\(2\),\(3\),⋯\(k\)求和,直到上述式子成立。可以很容易地看出来一个规律:\[(\\sum_{i=1}^ki\)......
  • spring--@Autowired @Qualifier @Resource @Value 四者的区别
    @Autowired,@Qualifier,@Resource,和@Value是Spring框架中用于依赖注入的注解,它们各有特点和用途:@Autowired:@Autowired注解用于自动装配Spring容器中的bean。它默认按类型(byType)进行依赖注入。当存在多个同类型的bean时,它可以和@Qualifier注解一起使用,以指定注入......
  • 1683. Invalid Tweets
    主要思想就是寻找一个函数,能够计算字符的数量。介绍一下CHAR_LENGTH(string),用于计算字符数量(包括空格)。SELECTtweet_idFROMtweetsWHERECHAR_LENGTH(content)>15;另一个常用的函数LENGTH(str)在这个问题中也适用,因为列content只包含英文字符,没有特殊字符。否则,L......
  • 利用topologySpreadConstraints使多个Pod在节点之间均衡调度
    在ingress-nginx部署时有个需求,就是3个节点单个节点需要至少跑3个实例。这需求有点像异地多活时,每个区域至少要跑2实例一样,不同之处是一个是节点级别,一个是区域级别。deployment在副本数多的时候虽然可以让调度器大致上的平均调度,但是当遇到个别节点压力大的时候会降低调度score......
  • 利用topologySpreadConstraints使多个Pod在节点之间均衡调度
    在ingress-nginx部署时有个需求,就是3个节点单个节点需要至少跑3个实例。这需求有点像异地多活时,每个区域至少要跑2实例一样,不同之处是一个是节点级别,一个是区域级别。deployment在副本数多的时候虽然可以让调度器大致上的平均调度,但是当遇到个别节点压力大的时候会降低调度score......
  • Avalonia TemplatedControl (模板控件)
    在ava中的模板控件相当于wpf中的自定义控件在下面示例中,将绘制一个文本框和一个按钮,用来组合一个搜索控件在app.axaml中加入样式<Application.Styles><FluentTheme/><StyleIncludeSource="/TemplatedControl1.axaml"/></Application.Styles>引入并使用xmlns......
  • Avalonia UserControl
    ava中的用户控件和wpf中的作用一致一般用来制作页面新建一个页面<UserControl...><StackPanelHorizontalAlignment="Center"VerticalAlignment="Center"><TextBlockText="这是一个用户控件"/><ButtonName="btn1&qu......
  • IC验证中$test$plusargs(),$value$plusargs()怎么用?有什么坑?
    各位朋友,在SystemVerilog中有两个函数作用很大,他们是:$test$plusargs(string)$value$plusargs(user_string,variable) 01 怎么用?相信从这首诗中大家已经很清楚的知道这两个函数什么作用了!没错!我们在仿真运行过程中可以“+”很多的命令字符串,而这两个函数就是与这些......