转换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 条评论
登录 后参与评论

相关文章

来自专栏机器之心

教程 | 如何使用Keras、Redis、Flask和Apache把深度学习模型部署到生产环境?

94810
来自专栏Hadoop实操

Hadoop之上的模型部署 - CDSW1.4新功能模块

CDSW1.4提供了一个新的模型模块,可以让数据科学家通过REST API的方式来构建,部署和管理模型,从而提供预测。如下图所示,这个功能可以帮助数据科学家实现...

1022
来自专栏ATYUN订阅号

将Keras深度学习模型部署为Web应用程序

建立一个很酷的机器学习项目确实很不错,但如果你希望其他人能够看到你的作品怎么办呢?当然,你可以将整个项目放在GitHub上,但这只能给程序员看,如果你想给自己家...

1551
来自专栏Kubernetes

TensorFlow Serving在Kubernetes中的实践

xidianwangtao@gmail.com 关于TensorFlow Serving 下面是TensorFlow Serving的架构图: ? 关于T...

69112
来自专栏目标检测和深度学习

Github 项目推荐 | 兼容 Scikit-Learn 的 PyTorch 神经网络库 —— skorch

1272
来自专栏calvin

SSH通过SSH代理连接到内网机器

操作步骤: 1.实现本地机器到代理机器的SSH连接。 ssh ftpuser@proxyip

1663
来自专栏点滴积累

geotrellis使用(十七)使用缓冲区分析的方式解决单瓦片计算边缘值问题

Geotrellis系列文章链接地址http://www.cnblogs.com/shoufengwei/p/5619419.html 目录 前言 需求分析 ...

3116
来自专栏PaddlePaddle

【进阶篇】在不同的集群框架下完成分布式训练

编写|PaddlePaddle 排版|wangp 本文将介绍如何使用PaddlePaddle在不同的集群框架下完成分布式训练。分布式训练架构如下图所示: ? A...

3555
来自专栏人人都是极客

2.运行一个demo

在 Object Detection API 的示例代码中包含了一个训练识别宠物的 Demo,包括数据集和相应的一些代码。虽然本课程中我们会自己准备数据和脚本来...

3836
来自专栏王肖的UT

OpenGL-ES-2.0-for-Android 项目介绍

1893

扫码关注云+社区