将以下python脚本放置到数据集源文件中,执行即可。然后得到的数据格式就是ImageFolder可读的形式了(划分了train和val文件夹,并且每个文件夹下都有#classes个以label命名的文件夹)

CIFAR-10

import pickle
import numpy as np
import os
import cv2def unpickle(file):with open(file, 'rb') as fo:dict = pickle.load(fo, encoding='bytes')return dictloc_1 = './train'
loc_2 = './val'
if not os.path.exists(loc_1):os.mkdir(loc_1)
if not os.path.exists(loc_2):os.mkdir(loc_2)def unzip():meta = unpickle('batches.meta')label_names = meta[b'label_names']for i in label_names:dir1 = loc_1 + '/' + i.decode()dir2 = loc_2 + '/' + i.decode()if not os.path.exists(dir1):os.mkdir(dir1)if not os.path.exists(dir2):os.mkdir(dir2)for i in range(1,6):data_name = 'data_batch_' + str(i)data = unpickle(data_name)for j in range (10000):img = np.reshape(data[b'data'][j], (3, 32, 32))img = np.transpose(img, (1, 2, 0))label = label_names[data[b'labels'][j]].decode()img_name = label + '_' + str(i*10000 + j) + '.jpg'img_save_path = loc_1 + '/' + label + '/' + img_namecv2.imwrite(img_save_path, img)print(data_name + ' finished')test_data = unpickle('test_batch')for i in range (10000):img = np.reshape(test_data[b'data'][i], (3, 32, 32))img = np.transpose(img, (1, 2, 0))label = label_names[test_data[b'labels'][i]].decode()img_name = label + '_' + str(i) + '.jpg'img_save_path = loc_2 + '/' + label + '/' + img_namecv2.imwrite(img_save_path, img)print('test_batch finished')if __name__ == '__main__':unzip()

转化前:

转化后:

CIFAR-100

import pickle
import numpy as np
import os
import cv2def unpickle(file):with open(file, 'rb') as fo:dict = pickle.load(fo, encoding='bytes')  # encoding='latin1'return dict loc_1 = './train'
loc_2 = './val'
if not os.path.exists(loc_1):os.mkdir(loc_1)
if not os.path.exists(loc_2):os.mkdir(loc_2)def unzip():meta = unpickle('meta')print(meta.keys())label_names = meta[b'fine_label_names']for i in label_names:dir1 = loc_1 + '/' + i.decode()dir2 = loc_2 + '/' + i.decode()if not os.path.exists(dir1):os.mkdir(dir1)if not os.path.exists(dir2):os.mkdir(dir2)i = 1data_name = 'train'data = unpickle(data_name)for j in range (50000):img = np.reshape(data[b'data'][j], (3, 32, 32))img = np.transpose(img, (1, 2, 0))label = label_names[data[b'fine_labels'][j]].decode()img_name = label + '_' + str(i * 10000 + j) + '.jpg'img_save_path = loc_1 + '/' + label + '/' + img_namecv2.imwrite(img_save_path, img)print(data_name + ' finished')test_data = unpickle('test')for i in range (10000):img = np.reshape(test_data[b'data'][i], (3, 32, 32))img = np.transpose(img, (1, 2, 0))label = label_names[test_data[b'fine_labels'][i]].decode()img_name = label + '_' + str(i) + '.jpg'img_save_path = loc_2 + '/' + label + '/' + img_namecv2.imwrite(img_save_path, img)print('test_batch finished')if __name__ == '__main__':unzip()

转化前:

转化后:

将CIFAR-10和CIFAR-100数据集处理成“标签文件夹”形式(ImageFolder可读)相关推荐

  1. Windows 10下删除鲁大师卸载后的残留文件夹

    Windows 10下删除鲁大师卸载后的残留文件夹 解决思路 打开鲁大师卸载后的残留文件夹(即名为LaDaShi的文件夹),尝试删除某个.dll文件后出现提示失败,其显示在Hardware Prote ...

  2. 【脚本】交通标志数据集 清华Tinghua100K 标签文件 .json 解析内容

    文章目录 交通标志数据集 清华Tinghua100K 标签文件 .json 解析内容 1. 数据集链接: 2. 标注文件 .json 解析: 交通标志数据集 清华Tinghua100K 标签文件 .j ...

  3. Windows 10 下 转移MySQL 8.0的数据库文件夹

    Windows 10 下 转移MySQL 8.0的数据库文件夹 随着数据的不断导入,MySQL中的数据越来越多,所占据的存储空间也越来越大.默认安装MySQL时,其会将数据库文件放到默认目录 C:Pr ...

  4. Windows 10系统中,如何重命名用户文件夹

    免责声明 该方法不适用于所有情况,可能导致数据丢失.计算机无法重启等问题,请提前保护好数据! 背景 许多Windows用户总是喜欢将文件放在用户文件夹(C:\Users\username)下,但有时候 ...

  5. Windows 10 下 转移MySQL 8.0的数据库文件夹(靠谱版)

    随着数据的不断导入,MySQL中的数据越来越多,所占据的存储空间也越来越大.默认安装MySQL时,其会将数据库文件放到默认目录 C:\ProgramData\MySQL\MySQL Server 8. ...

  6. Visdrone2019数据集.txt标签文件转换为voc格式.XML标签文件

    最近有同学问是否有Visdrone数据集的xml文件,由于本人之前训练数据的时候没有保存xml文件,所以无法共享. 为了解决这个问题,重新写了转换代码并贴出,供大家共同学习使用.(文末附上数据下载网盘 ...

  7. 数据集转换成LMDB格式

    文章来源https://www.cnblogs.com/dengshunge/p/10841108.html略加修改和补充. 介绍两种LMDB格式数据集的生成,一种是自己的数据集,一种是下载wider ...

  8. 介绍一种导入文件夹中图片数据集的方法

    如果你有一个文件夹,里面有很多图片数据,而label就是图片的名称,图片排列杂乱无章,这时候导入数据可能显得略微棘手,可以用下面方法尝试试试看. 这里要使用imutils包,如果没有的话,可以通过pi ...

  9. c++如何获取文件时间_如何在Windows 10上获取文件或文件夹的所有权

    要访问Windows 10上的任何文件或文件夹,你必须具有相应的权限.遗憾的是,如果你没有编辑某些文件和文件夹的权限,则可能会出现某些问题,这时你必须对该文件夹或文件取得所有权. 要想取得某个文件夹的 ...

最新文章

  1. agent proxy comparison
  2. matlab 层次聚类
  3. Gym - 101986F Pizza Delivery(最短路+DAG必经边)
  4. excel怎么更改坐标轴刻度_如何用excel制作帕累托图
  5. javaweb基础 - Servlet
  6. 计算机算法设计与分析 工作安排问题
  7. 2011年12月1日学习内容总结
  8. bat中的start
  9. Java 容器源码分析之 TreeMap
  10. android 基站 变化,(转)android定位之基站定位
  11. arcgis 计算面积
  12. C#,数值计算,矩阵的行列式(Determinant)、伴随矩阵(Adjoint)与逆矩阵(Inverse)的算法与源代码
  13. MySQL Cluster 集群部署
  14. 【uniapp小程序】uploadFile文件上传
  15. c语言 一个数组奇数左边 偶数右边,C语言设计实验报告(第七次)
  16. 标志寄存器——标志位
  17. 在虚拟机关机时,提示Ubuntu-Unattended upgrade in progress during shutdown, please don‘t turn off
  18. 没有sln文件怎么打开
  19. Python编程:itertools库排列组合
  20. java高频面试题-设计模式

热门文章

  1. [Revit教程]斑马:对于方案建筑师,学习BIM的流程和角度?#S011
  2. 如何优化产品标题和要点
  3. 《Adobe Photoshop CS6中文版经典教程(彩色版)》—第2课2.8节使用仿制图章工具修复特定区域...
  4. Win32窗口编程C++
  5. Win32编程一:Windows应用程序
  6. 电子、计算机、嵌入式、单片机、程序员专业常用英语词汇
  7. 从 51 到 ARM, 这路怎么走?
  8. CDH中yarn的动态资源池的相关配置
  9. 小而美的博客网站-导入本地教程
  10. 他来了他来了,他带着c语言基础知识走来了