将以下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. WaitForSingleObject和WaitForMultipleObjects用法
  2. mysql 分表原理_MYSQL 分表原理(转)
  3. Numpy与Pandas基础
  4. 谷歌官方扩展UI组件---SlideTabLayout
  5. 网络设备Web登录检测工具device-phamer
  6. android屏幕适配的目的,Android 不同分辨率下屏幕适配的实战方案与经验总结
  7. 【正一专栏】西班牙国家德比不再激情四射可更让人不舍
  8. 一起学nRF51xx 23 -  s130蓝牙API介绍
  9. linux学习笔记(5)
  10. WinAPI: waveInMessage - 向波形输入设备发送一条消息
  11. 如何提升大规模Transformer的训练效果?Primer给出答案
  12. 服务器双cpu性能强不,双CPU的电脑用起来,性能和功耗都是原来的两倍?
  13. 图像特征提取之Haar特征
  14. 微软Win10最新补丁KB5017380更新了什么?
  15. python编程 个人所得税计算器
  16. uni-app微信公众号(4)——地址管理页面
  17. 【CISSP备考笔记】第2章:资产安全
  18. Sql Server 2008 R2 清理内存的三种方法
  19. 如何查看mysql警告信息_查看MySQL的警告信息
  20. 伊斯坦布尔的流浪 (一)

热门文章

  1. 小蔡电脑助手3.0新版全新发布上线啦~欢迎大家下载使用哦~
  2. PowerShell远程重启IIS和Service
  3. 深受程序员鄙视的外行语录
  4. AA@有理系数多项式@整系数多项式@本原多项式@有理多项式可约问题
  5. 2023富士极影汇年度盛典在上海举行 呈现摄影界的创新与发展
  6. Python游戏编程入门第二课
  7. 印度小胖告诉你,计算机专业想去银行,你的简历应该是什么样子?
  8. 内网渗透测试理论学习之第四篇内网渗透域的横向移动
  9. 数字彩虹雨java代码_canvas实现爱心和彩虹雨效果
  10. CDH中yarn的动态资源池的相关配置