猫狗图像分类-划分数据集

news2025/2/22 18:57:57

📚博客主页:knighthood2001
公众号:认知up吧 (目前正在带领大家一起提升认知,感兴趣可以来围观一下)
🎃知识星球:【认知up吧|成长|副业】介绍
❤️如遇文章付费,可先看看我公众号中是否发布免费文章❤️
🙏笔者水平有限,欢迎各位大佬指点,相互学习进步!

首先,我们的数据如下,猫和狗的图片在里面,但是没有划分过训练集和测试集。
在这里插入图片描述

运行下面这个代码,就能把数据划分。

import os
from shutil import copy
import random

def mkdir(directory):
    if not os.path.exists(directory):
        os.makedirs(directory)


# TODO 获取data文件夹下所有文件夹名(即需要分类的类名)
file_path = 'data_cat_dog'
flower_class = [cla for cla in os.listdir(file_path)]

# 创建 训练集train 文件夹,并由类名在其目录下创建5个子目录
mkdir('data/train')
for cla in flower_class:
    mkdir('data/train/' + cla)

# 创建 测试集文件夹,并由类名在其目录下创建子目录
mkdir('data/test')
for cla in flower_class:
    mkdir('data/test/' + cla)

# 划分比例,训练集 : 测试集 = 9 : 1
split_rate = 0.1

# 遍历所有类别的全部图像并按比例分成训练集和验证集
for cla in flower_class:
    cla_path = file_path + '/' + cla + '/'  # 某一类别的子目录
    images = os.listdir(cla_path)  # iamges 列表存储了该目录下所有图像的名称
    num = len(images)
    eval_index = random.sample(images, k=int(num * split_rate))  # 从images列表中随机抽取 k 个图像名称
    for index, image in enumerate(images):
        # eval_index 中保存验证集val的图像名称
        if image in eval_index:
            image_path = cla_path + image
            new_path = 'data/test/' + cla
            copy(image_path, new_path)  # 将选中的图像复制到新路径

        # 其余的图像保存在训练集train中
        else:
            image_path = cla_path + image
            new_path = 'data/train/' + cla
            copy(image_path, new_path)
        print("\r[{}] processing [{}/{}]".format(cla, index + 1, num), end="")  # processing bar
    print()

print("processing done!")

划分好的数据集如下图

在这里插入图片描述
这样数据集就划分好了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1900165.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[FreeRTOS 基础知识] 互斥量 概念

文章目录 基础知识互斥量互斥量与信号量区别优先级反转优先级继承小结 基础知识 [FreeRTOS 基础知识] 信号量 概念 互斥量 互斥量(Mutex,全称:Mutual Exclusion),在计算机科学中,是一种用于防止多个进程同…

大学教师门诊预约小程序-计算机毕业设计源码73068

摘要 在当今数字化、信息化的浪潮中,大学校园的服务管理正朝着智能化、便捷化的方向迈进。为了优化大学教师的医疗体验,提升门诊预约的效率和便捷性,我们基于Spring Boot框架设计并实现了一款大学教师门诊预约小程序。该小程序不仅提供了传统…

压测工具---Ultron

压测工具:Ultron 类型:接口级和全链路 接口级 对于接口级别的压测我们可以进行 http接口压测、thrift压测、redis压测、kafka压测、DDMQ压测、MySQL压测等,选对对应的业务线、选择好压测执行的时间和轮数就可以执行压测操作了 全链路 对…

SAP PS学习笔记01 - PS概述,创建Project和WBS

本章开始学习PS(Project System)。 1,PS的概述 PS(Project System)是SAP企业资源规划系统中的一个关键模块,主要用于项目管理。 它提供了一个全面的框架来规划、控制和执行项目,涵盖了从项目启…

游戏AI的创造思路-技术基础-强化学习(1)

我们“强化”一下机器的“学习”,让机器变得更强~~~~ 目录 1. 强化学习的定义 2. 发展历史 3. 强化学习的基本概念和函数 3.1. 基本概念和函数 3.1.1. 基本概念和函数 3.1.2. Q函数 3.1.2.1. 定义与作用 3.1.2.2. 数学表示 3.1.2.3. 更新规则 3.1.2.4. 算…

3D Web轻量化平台HOOPS Web Platform的功能与应用分析

随着3D技术在多个行业的广泛应用,对于3D模型轻量化的需求日益增长。HOOPS Web Platform作为一个先进的3D模型轻量化平台,为开发人员提供了一整套工具来构建和部署基于Web的工程应用程序。本文将分析HOOPS Web Platform的核心功能和它在不同领域的应用情况…

ORB 特征点提取

FAST关键点 选取像素p,假设它的亮度为Ip; . 设置一个阈值T(比如Ip的20%); 以像素p为中心,选取半径为3的圆上的16个像素点; 假如选取的圆上,有连续的N个点的亮度大于IpT或小于…

CSS position属性之relative和absolute

目录 1 参考文章2 五个属性值3 position:static4 position:relative(相对)5 position:absolute(绝对) 1 参考文章 https://blog.csdn.net/lalala_dxf/article/details/123566909 https://blog.csdn.net/WangMinGirl/article/deta…

【C语言】字符函数和字符串函数的介绍和模拟实现

介绍处理字符和字符串的库函数的使用和注意事项 求字符串长度 strlen 长度不受限制的字符串函数 strcpy strcat strcmp 长度受限制的字符串函数介绍 strncpy strncat strncmp 0. 前言 C语言中对字符和字符串的处理很是频繁,但是C语言本身是没有字符串类型的&am…

实现沉浸式体验的秘诀:深入了解折幕投影技术!

在当今多媒体技术的浪潮中,投影技术已蜕变成为超越传统内容展示范畴的非凡工具,它深度融合了互动性与沉浸感,成为连接观众与虚拟世界的桥梁。折幕投影技术,作为这一领域的璀璨明珠,更是以其独特而神奇的手法&#xff0…

超过GPT-4V,国产开源多模态大模型来了!支持视频理解/超高分辨率图片理解/多轮对话...

扫码领取享50优惠!随时可用,先到先得! 大家好,开源多模态大模型真的是每天都在疯狂的涌现,今天分享一个国产大模型 InternLM-XComposer-2.5 中文名:浦语灵笔2.5 仅使用 7B LLM 后端就达到了 GPT-4V 级别的能…

第一百四十五节 Java数据类型教程 - Java字符串类型

Java数据类型教程 - Java字符串类型 零个或多个字符的序列称为字符串。 在Java程序中,字符串由java.lang.String类的对象表示。 String类是不可变的。 String对象的内容在创建后无法修改。 String类有两个伴随类,java.lang.StringBuilder和java.lang.…

独立开发者系列(20)——扫码登录

(1)网页端的安全登录设计 很多大型网站都有登录限制。这里以一个案例作为例子完整解析。理解安全的登录设计方式,无论对于以后做自动化,自动登录网站,获取数据,还是自己开发月租类型的系统非常有用。当前一…

在AvaotaA1全志T527开发板上使用AvaotaOS 部署 Docker 服务

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。 准备…

高考选专业,兴趣与就业前景该如何平衡?

从高考结束的那一刻开始,有些家长和学生就已经变得焦虑了,因为他们不知道成绩出来的时候学生应该如何填报志愿,也不知道选择什么样的专业,毕竟大学里面的专业丰富多彩,如何选择确实是一门学问,而对于学生们…

8分钟带你快速了解Connector/Catalog API的核心设计

引言 在现代大数据应用中,数据集成和同步成为企业数据管理的关键环节。随着数据源和数据库的多样化,如何高效地进行数据集成成为企业面临的重要挑战。 Apache SeaTunnel 作为一款开源的数据集成工具,致力于解决这一问题。本文将详细介绍 Sea…

小酌消烦暑|人间正清欢

小暑是二十四节气之第十一个节气。暑,是炎热的意思,小暑为小热,还不十分热。小暑虽不是一年中最炎热的时节,但紧接着就是一年中最热的节气大暑,民间有"小暑大暑,上蒸下煮"之说。中国多地自小暑起…

w3wp.exe 中发生未处理的 Microsoft ,NETFramework 异常。

🏆本文收录于「Bug调优」专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&…

Net5.5G,全球运营商的AI之翼

2024年,什么是全球运营商最关注的机遇?人工智能应该是当之无愧的第一答案。 根据市场研究机构Omdia发布的数据报告显示,人工智能在电信运营商向科技公司转型的过程中发挥关键作用,多数领先电信运营商都在加强人工智能的能力建设&a…

STL vector 手写--迭代器设计思想、空间配置器思想!两个面试题

STL空间配置器 空间配置器的核心功能就是把对象的内存开辟和对象构造的过程分解开,对象析构和内存释放的过程分解开,因此空间配置器主要提供了以下四个函数: 空间配置器的函数功能allocate负责开辟内存deallocate负责释放内存construct负责…