mini-Imagenet处理

news2025/7/31 21:30:44

由于imagenet-1k 数据集太大,在验证模型方面耗时太久,特意研究了一下mini-Imagenet,用来代替imageNet-1K数据集。

2016年google DeepMind团队从Imagnet数据集中抽取的一小部分(大小约3GB)制作了Mini-Imagenet数据集,共有100个类别,每个类别都有600张图片,共60000张(都是.jpg结尾的文件),而且图像的大小并不是固定的。

下载好的目录结构如下:

├── mini-imagenet: 数据集根目录
     ├── images: 所有的图片都存在这个文件夹中
     ├── train.csv: 对应训练集的标签文件 38400 imgs
     ├── val.csv: 对应验证集的标签文件 9600 imgs
     └── test.csv: 对应测试集的标签文件 12000 imgs

有很多博客介绍了如何基于CSV文件进行构建数据集训练,这里我主要将其修改为Imagenet-1k 原始的文件夹形式,也就是一个文件夹对应一个类,方便使用ImageFolder进行读取。

按照常用8:2的比例划分为训练集和验证集,也就是训练集48000张imgs,验证集12000imgs
出于方便,直接采用了https://blog.csdn.net/qq_37541097/article/details/113027489这个博主生成的新的CSV训练和验证划分,也就是新生成的new_train.csv,new_val.csv
这里一并提供:
https://download.csdn.net/download/xiaoxiaomo_/87156448

下边主要介绍如何根据该CSV文件划分为原始的形式:
1.根据CSV读取train/val文件到train/val文件夹
这一步会得到train、val文件夹,里边包含各自的训练文件。

import pandas as pd
import os 

#读取CSV文件,获取所有的img文件名称
test_csv = "/home/zhaogy/Workspace/Study/mini_imagenet/mini-Imagenet/new_train.csv"
data=pd.read_csv(test_csv)
#print(data,type(data))

test_filename = list(data["filename"].values)
#print(test_filename)
#print(len(test_filename))

dst = "./new_train/"  #提前创建一个新的train文件夹,将CSV对应的train img 复制到文件夹中
for i,name in enumerate(test_filename):
    imgx = os.path.join("./mini-Imagenet/images",name)
    print(f"第{i}张图片已经copy完成")
    print(imgx)
    shutil.copy(imgx,dst)

得到类似于这样的文件夹

在这里插入图片描述

  1. 创建每个类的文件夹,并移动img到该文件夹下
files = os.listdir("./new_train/") #上一步创建的文件夹
pre = "./new_train/"

for i,img in enumerate(files):

    #1. 首先遍历每个文件,创建文件夹
    #n0153282900000138.jpg
    dir_name = img.split(".")[0][:9]  #这里就是为了截取label,根据img name 前9个为label
    dir_path = pre+dir_name
    #print(dir_path)
    if not os.path.exists(dir_path):
        os.mkdir(dir_path) #创建该类文件夹

    #直接判断该文件,归类
    img_path=pre+img
    if not os.path.isdir(img_path):
        if img[:9]==dir_name:   #由于每个类包含很多img文件,判断该文件是否属于该类
            shutil.move(img_path,dir_path) #true的话,移动到该类目录

最后得到类似这样的目录
在这里插入图片描述

经过两次变换就完成了划分,实际每张图片对应的类目还是要根据1k数据集提供的json文件(如下图)去查找。
在这里插入图片描述

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

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

相关文章

TrustSVD算法进行基于矩阵分解的商品推荐 代码+数据(可作为毕设)

案例简介 (1)方法概述: 本教程包含如下内容: 从原始的数据文件中加载数据,进行训练集和测试集的切分,并对测试集进行负采样。 对数据分batch, 利用用户历史点击记录进行模型训练 结果展示 数据集:https://download.csdn.net/download/qq_38735017/87154848 (2)宏观流程图 …

Flutter高仿微信-第32篇-单聊-语音

Flutter高仿微信系列共59篇,从Flutter客户端、Kotlin客户端、Web服务器、数据库表结构、Xmpp即时通讯服务器、视频通话服务器、腾讯云服务器全面讲解。 详情请查看 效果图: 详情请参考 Flutter高仿微信-第29篇-单聊 , 这里只是提取语音聊天实…

数据治理中最常听到的名词有哪些?

开门见山,我们先来说说何为“数据治理” 数据治理就是实现数据价值的过程。通俗的理解就是让企业的数据从不可控、不可用、不好用到可控、方便易用且对业务有极大帮助的过程。 这个过程怎么实现?通过采集、传输、储存等一系列标准化流程将原本零散的数…

【网络安全】文件上传之安全狗bypass

作者名:Demo不是emo 主页面链接:主页传送门创作初心:舞台再大,你不上台,永远是观众,没人会关心你努不努力,摔的痛不痛,他们只会看你最后站在什么位置,然后羡慕或鄙夷座右…

极光推送SDK引起的内存泄露排查

发现问题 发现推送服务的老年代不断增长,部分内存无法回收 内存泄露堆栈分析 通过运维平台ark,执行了jmap进行heaphump,使用mat工具分析,发现可能存在内存泄露 发现有大量的SocksSocketImpl对象被Finalizer引用 看SocksSocke…

SolidWorks二次开发 API-SOLIDWORKS Simulation分析参数修改

今天我们来讲个小例子。 是关于SOLIDWORKS Simulation的。 先说明一点,这东西我也不熟。有问题别问我 首先,我做了一个很难的分析,条件也是很复杂,具体操作我就不说了,分析结果如下: 当然这个图和我们今天要做的事情…

【台前调度】使用指南:如何打开和关闭iPadOS 16台前调度

【台前调度】可以说是iPadOS 16系统最实用的功能之一。它拥有崭新的多任务处理能力,能自动管理App和视窗,使多个任务窗口能够快速又简单地切换。 但是不少小伙伴更新iPadOS 16后还不知道怎么使用台前调度功能。如何开启使用和关闭iPadOS台前调度&#xf…

[附源码]SSM计算机毕业设计旅游管理系统JAVA

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

苹果手机之间怎么传音乐,怎么把音乐传到苹果手机上

很多人喜欢在自己的苹果手机中下载各种音乐,并且会将音乐传输到其他地方,苹果手机之间怎么传音乐?在此处获取将iphone里的音乐传输到电脑和iphone的解决方案。 一、iPhone如何传输音乐到电脑? 方法1:通过iTunes将iPho…

黑马瑞吉外卖之购物车功能开发(添加购物车和购物车数据展示)

黑马瑞吉外卖之购物车功能前端界面分析后台购物车功能逻辑实现前端界面分析 当我们点击选择规格的时候,数据参数item会传入按钮绑定的方法中 我们点击到这个按钮的时候,那么就会绑定到这个方法。这个方法会将数据给这个窗体中的数据项赋值。这个diaglo…

【linux】【platform[1]】简述device和driver几种匹配方式

文章目录0.env10. 简述20. 测试源码1. driver2. device2.1 方式一:DTS2.2 方式二:ACPI2.3 方式三:id table2.4 方式四:NAME3. 测试log0.env ARM 32bit linux4.4.6010. 简述 主要讲述了几种device和driver匹配的方式以及demo框架文…

82055-94-5|N3-PEG-N3|Azide-PEG-Azide|叠氮PEG叠氮可修饰蛋白质

可用来修饰蛋白质、多肽以及其他材料的叠氮-PEG-叠氮,其英文名为N3-PEG-N3或Azide-PEG-Azide,它所属分类为Azide PEG。 该peg试剂的分子量均可定制,有:叠氮-PEG-叠氮 2000、叠氮peg叠氮 1000、叠氮-聚乙二醇-叠氮 5000、N3-PEG-N…

天宇优配|国产海上风电装备大突破,行业复合增速将超3

在全球加紧应对气候变化以及能源供应严重的布景下,海优势电工业面对历史性开展机会。 全球单机容量最劲风电机组下线 据央视新闻,近日,我国自主研制的16兆瓦海优势电机组在福建三峡海优势电世界工业园下线。单机容量16兆瓦海优势电机组&…

MCE 抗乳腺癌化合物库上线丨靶向乳腺癌知多少?

乳腺癌是全世界女性最常见的恶性肿瘤,世界卫生组织 (WHO) 数据显示,全球每年大约有 210 万女性受乳腺癌影响,乳腺癌死亡率在女性肿瘤中居于首位。 认识乳腺癌 ■ 什么是乳腺癌? 乳腺癌 (Breast cancer) 是一种具有多种亚型的异质…

PG::Ha-natraj

nmap -Pn -p- -T4 --min-rate1000 192.168.134.80 nmap -Pn -p 22,80 -sCV 192.168.134.80 查看80端口的页面 未发现可利用的信息,对路径进行爆破 在/console目录下发现file.php 测试发现有本地文件包含 未发现别的利用方式,结合之前做过的靶机&am…

JAVA多线程2_Lock

文章目录一、ReentrantLock类1.使用ReentrantLock2.使用ReentrantLock实现多对多3.公平锁与非公平锁4.ReentrantLock类其他方法的使用二、ReentrantReadWriteLock类1.读读共享2.写写互斥3.读写互斥4.写读互斥总结一、ReentrantLock类 1.使用ReentrantLock 创建reentrantlock.s…

【计算机毕业设计】36.网易购商城购物平台源码

一、系统截图(需要演示视频可以私聊 摘 要 本毕业设计的内容是设计并且实现一个基于JSP技术的网易购购物平台。它是在Windows下,以MYSQL为数据库开发平台,Tomcat网络信息服务作为应用服务器。网易购购物平台的功能已基本实现,主…

sqli-labs/Less-62

欢迎界面提示我们一共由130次机会 而且还是以id作为注入点 每次重置都会随机分配表名、字段名、表格数据 首先判断注入类型 输入id1 and 12 回显如下 说明不属于数字型 接着输入1 回显如下 没有回显 说明注入点带有单引号 佐证一下吧 输入1-- 回显如下 说明不是纯粹的单引号…

【Redis技术探索】「高可用架构模式」哨兵(sentinel)模式实现主从故障互切换模式详解

哨兵(sentinel)模式实现主从故障互切换模式详解Redis的多种模式Redis单机模式Redis单机模式的优点Redis单机模式的缺点Redis主从复制旧版本配置新版本配置查看主节点信息主从模式的优点主从复制的弊端Redis哨兵模式分析哨兵结构组成哨兵模式的主从切换Re…

ROS-TCP-Connector and ROS-TCP-Endpoint

Unity官方提供了和ROS交互的接口:ROS-TCP-Connector and ROS-TCP-Endpoint。有了这两个Unity就能够更好的和真实机器人做交互。两个接口的实现基于ROS#、ros_bridge,所以基本上以后用这个就可以了。 源码如下:   ROS-TCP-Endpoint&#xff…