制作自己的python版本的类CIFAR10数据集「建议收藏」

制作自己的python版本的类CIFAR10数据集「建议收藏」之前发布的仿照CIFAR10数据集格式,制作自己的数据集(C++版本),得到一些网友的关注,并且不断有网友在评论区或者私信里询问,怎样制作python版本的。趁着下午有点闲时间,把制作方法整理发布在这里,希望对大家有所帮助。

大家好,又见面了,我是你们的朋友全栈君。




本系列文章由
@yhl_leo
出品,转载请注明出处。


文章链接:
http://blog.csdn.net/yhl_leo/article/details/71357097



之前发布的仿照CIFAR10数据集格式,制作自己的数据集 (C++版本),得到一些网友的关注,并且不断有网友在评论区或者私信里询问,怎样制作python版本的。趁着下午有点闲时间,把制作方法整理发布在这里,希望对大家有所帮助。

源码地址GitHub: yhlleo/cifar10Dataset

关于python 版本的CIFAR10的数据格式,官网上已经介绍:

data – a 10000×3072 numpy array of uint8s. Each row of the array stores a 32×32 colour image. The first 1024 entries contain the red channel values, the next 1024 the green, and the final 1024 the blue. The image is stored in row-major order, so that the first 32 entries of the array are the red channel values of the first row of the image.
labels – a list of 10000 numbers in the range 0-9. The number at index i indicates the label of the ith image in the array data.

因此,想要制作自己的数据集,只需要把data, label准备好就可以,另外,我们可以读取cifar10存储好的文件,查看其数据格式,以data_batch_1为例(可以通过cifar10_read.py读取):

{
  
  'data': array([[ 59,  43,  50, ..., 140,  84,  72],
       [154, 126, 105, ..., 139, 142, 144],
       [255, 253, 253, ...,  83,  83,  84],
       ..., 
       [ 71,  60,  74, ...,  68,  69,  68],
       [250, 254, 211, ..., 215, 255, 254],
       [ 62,  61,  60, ..., 130, 130, 131]], dtype=uint8), 
'labels': [6, 9, 9, 4, 1, 1, 2, 7, 8, 3, 4, 7, 7, 2, 9, 9, 9, 3, 2, 6, 4, 3, 6, 6, 2, 6, 3, 5, 4, 0, 0, 9, 1, 3, 4, 0, 3, 7, 3, 3, 5, 2, 2, 7, 1, 1, 1, 2, 2, 0, 9, 5, 7, 9, 2, 2, 5, 2, 4, 3, 1, 1, 8, 2, 1, 1, 4, 9, 7, 8, 5, 9, 6, 7, 3, 1, 9, 0, 3, 1, 3, 5, 4, 5, 7, 7,  ... , 9, 8, 9, 4, 4, 7, 1, 0, 4, 3, 6, 3, 9, 8, 3, 6, 8, 3, 6, 6, 2, 6, 7, 3, 0, 0, 0, 2, 5, 1, 2, 9, 2, 2, 1, 6, 3, 9, 1, 1, 5], 
'batch_label': 'training batch 1 of 5', 
'filenames': ['leptodactylus_pentadactylus_s_000004.png', 'camion_s_000148.png', 'tipper_truck_s_001250.png', ... , 'truck_s_000036.png', 'car_s_002296.png', 'estate_car_s_001433.png', 'cur_s_000170.png']}

很明显,python版本存储成了一个dict,其中key包括:

  • data, 存放图像数据文件,是一个nx3072的数组;
  • labels, 存放图像对应的label,是一个nx1的数组;
  • batch_label, 说明信息;
  • filenames, 文件名列表。

详细的代码内容,可以查看实现代码,另外demo.py中提供了测试数据,这里把读取的文件结果输出:

{
  
  'data': array([[255, 255, 255, ..., 255, 255, 255],
       [255, 255, 255, ..., 255, 255, 255]], dtype=uint8), 
'label': [0, 1], 
'batch_label': 'training batch 0 of 1', 
'filenames': ['a.png', 'b.png']}

跟官方数据的输出格式一致,虽然没有训练测试,但是理论上应该没问题,大家在测试的过程中,如果遇到问题,欢迎指出。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/152066.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(2)


相关推荐

  • IntelliJ IDEA汉化解决方案教程

    IntelliJ IDEA汉化解决方案教程多了不说,少了不唠,直接上操作图:IntelliJIDEA中文汉化包下载传送门:点我下载汉化包  复制粘贴汉化包到安装IntelliJIDEA的lib目录下   …

  • ARIMA_如何确定arima模型的阶数

    ARIMA_如何确定arima模型的阶数1 总体介绍在以下主题中,我们将回顾有助于分析时间序列数据的技术,即遵循非随机顺序的测量序列。与在大多数其他统计数据的上下文中讨论的随机观测样本的分析不同,时间序列的分析基于数据文件中的连

  • 懒惰的 initialize 方法

    懒惰的 initialize 方法

  • matlab中wavedec2,Matlab中wavedec使用學習及詳解

    matlab中wavedec2,Matlab中wavedec使用學習及詳解最近在使用對ECG訊號進行小波係數的提取,所以用到了wavedec這個matlab中内置函數。然後盡心學習,發現還挺高深,不是我學到的衹是一點皮毛,因爲要對一段波形進行特徵提取,所以我要看哪個小波係數最能代表波形特徵,然後進行保留。我使用的是:[C,L]=WAVEDEC(X,N,’wname’)這個會返回信號X在levelN(小波分解級數)的小波分解係數。輸出爲兩部分,第一部分C爲小波分解係…

  • laravel5.6 调用第三方类库

    laravel5.6 调用第三方类库

  • pycharm代码规范工具flake8

    pycharm代码规范工具flake8文章目录代码规范一、flake8是什么?二、使用步骤1.引入库2.读入数据总结代码规范随着计算机语言的发展,代码规范是我们写代码时更应该注意的东西,在我们使用pycharm进行代码编写时,我们可以借用pycharm工具flake8进行代码规范检查,从而使代码规范符合标准要求。代码规范可以减少bug,有助于代码审查,降低维护成本,更重要的是在大型项目中,大家使用一套共同的代码标准,这更能够提升团队间的合作效率。一、flake8是什么?Flake8是一款辅助检测Python代码是否规范的工具

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号