转换Cifar10数据集

Cifar10数据集不讲了吧,入门必备,下载地址: https://www.cs.toronto.edu/~kriz/cifar.html 官方提供三种形式的下载:

可以看出是不提供图片形式的下载的,需要进行数据转换,虽然可以直接读成ndarray,但是对于初学者可能读图更直观点

自己写了个转换程序(将bytes形式的文件转换为图片并分类存储):

def recover_cifar10(cifar10_dir):
    """Save cifar 10 data(only training data) to files.
    Args:
        cifar10_dir: cifar 10 dataset path(python version).

    Returns:

    """
    save_dir = './data/cifar10'

    def save_batch(path):
        with open(path, 'rb') as fo:
            batch_data = pickle.load(fo, encoding='bytes')

        X, Y, N = batch_data[b'data'], batch_data[b'labels'], batch_data[b'filenames']
        batch_size = X.shape[0]
        for x in range(0, batch_size):
            sample = X[x].reshape((3, 32, 32))
            r, g, b = sample[0], sample[1], sample[2]
            r0, g0, b0 = Image.fromarray(r), Image.fromarray(g), Image.fromarray(b)
            sample_rgb = Image.merge('RGB', (r0, g0, b0))
            sample_label = bytes.decode(label_names[Y[x]])  # image label
            sample_name = bytes.decode(N[x])

            cat_dir = join(save_dir, sample_label)
            if not os.path.exists(cat_dir):
                os.makedirs(cat_dir)

            sample_save_path = join(cat_dir, sample_name)
            sample_rgb.save(sample_save_path)

    with open(join(cifar10_dir, 'batches.meta'), 'rb') as fo:
        meta_data = pickle.load(fo, encoding='bytes')
    label_names = meta_data[b'label_names']
    for x in range(1, 6):
        path = join(cifar10_dir, 'data_batch_%s' % str(x))
        save_batch(path)

有需要的拿走,可以直接用

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏前端架构

win10通过ip地址添加打印机MFC-1919NW

715
来自专栏向治洪

jsoup详解

json相信大家都用的多,jsonp我就一直没有机会用到,但也经常看到,只知道是“用来跨域的”,一直不知道具体是个什么东西。今天总算搞明白了。下面一步步来搞清...

1879
来自专栏闻道于事

Vue.js(一)了解Vue

什么是Vue? 1.Vue.js是一个构建数据驱动的web界面的库。类似于Angularjs,在技术上,他重点集中在MVVM模式的View层,非常容易学习,非常...

34312
来自专栏web前端教室

简单粗暴,以小见大 -- 实现一个按钮的前端组件

按钮,一个button,一个div,一个a标签,都可以做成按钮。现在要把它做成一个前端组件,那前端组件是什么? 定义很多,我随便网上查一个,“指一些设计为通用性...

1837
来自专栏jianhuicode

在 hexo 中无痛使用本地图片

1 起因 在 hexo 中使用本地图片是件非常让人纠结的事情,在 markdown 里的图片地址似乎永远无法和最后生成的网页保持一致。 这些问题使得我一度不愿意...

2079
来自专栏vue学习

6.vue-router之命名路由和命名视图

① 官方文档的解释:https://router.vuejs.org/zh/guide/essentials/named-routes.html 就是在rou...

501
来自专栏IT派

Django | CoolBlog开发笔记第1课:项目分析

CoolBlog开发笔记第1课:项目分析 首先说一下CoolBlog开发笔记是我制作的《Django实战项目》系列教程基础篇的内容,使用Django来开发一个...

3624
来自专栏WindCoder

WordPress实现微博/说说/状态展示页

虽然花了半天多的时间终于实现了这个功能,但其实为了这个功能已经耗费了好几个月的时间,当初建站没多久,就想在里面发些小状态、微博、说说一类的东东,于是开始在网上百...

611
来自专栏卡少编程之旅

新主题博客诞生之路

3329
来自专栏互联网杂技

交互设计控件之按钮设计

一.主按钮和次按钮 ? 很多按钮是成对出现的,比如“确定”和“取消”。一般情况下,按钮会有主次之分,一个按钮是我们期望用户去做的,另一个按钮是在特殊情况下才去...

2765

扫码关注云+社区