转换Cifar10数据集

转换Cifar10数据集Cifar10数据集不讲了吧,入门必备,下载地址:https://www.cs.toronto.edu/~kriz/cifar.html官方提供三种形式的下载:可以看出是不提供图片形式的下载的,需要进行数据转换,虽然可以直接读成ndarray,但是对于初学者可能读图更直观点自己写了个转换程序(将bytes形式的文件转换为图片并分类存储):defrecover_cifar10(cifar10_

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

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

转换Cifar10数据集

可以看出是不提供图片形式的下载的,需要进行数据转换,虽然可以直接读成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)

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

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

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/152107.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • QT——开发入门简介

    QT——开发入门简介1、你了解Qt吗?Qt是一种基于C++的跨平台图形用户界面应用程序开发框架。如何跨平台?上到服务器上位机,下到嵌入式GUI,上天入地无所不能。Qt最早是由1991年由QtCompany开发,但是到2008年,QtCompany科技被诺基亚公司收购,是的,就是拥有着我们很多情怀的诺基亚。但在2012年,Qt又被Digia收购。等到了2014年,跨平台集成开发环境QtCreator3.1….

    2022年5月17日
    33
  • JavaWeb-过滤器Filter学习(四)敏感词过滤实例

    JavaWeb-过滤器Filter学习(四)敏感词过滤实例通过Filter来实现留言板的敏感词过滤…思路很简单,我们这里的敏感词是直接先放进去的,实际项目中,肯定是存在数据库中。在Filter过滤器中,我们先拿到用户提交的留言,如果出现了敏感词,我们就用*号来替换。代码演示:index.jsp:<%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%><%@taglibur

    2022年5月27日
    35
  • TCP和UDP的特点_TCP和UDP位于

    TCP和UDP的特点_TCP和UDP位于原文链接:https://www.jianshu.com/p/ef1811b3b44eOSI参考模型和TCP/IP协议群1.TCP/IP协议群的具体含义从字面意义上讲,有人可能会认为TCP/IP是指TCP和IP两种协议.实际生活中有时也确实就是指这两种协议.然而在很多情况下,它只是利用IP进行通信时所必须用到的协议群的统称.具体来说,IP或ICMP,TCP或U…

    2022年9月20日
    4
  • AIRFLow_overflow百度百科

    AIRFLow_overflow百度百科1、什么是AirflowAirflow是一个Airbnb的Workflow开源项目,使用Python编写实现的任务管理、调度、监控工作流平台。Airflow是基于DAG(有向无环图)的任务管理系统,可以简单理解为是高级版的crontab,但是它解决了crontab无法解决的任务依赖问题。与crontab相比Airflow可以方便查看任务的执行状况(执行是否成功、执行时间、执行依赖等),可追踪任务历史执行情况,任务执行失败时可以收到邮件通知,查看错误日志。2、Airflow与同类产品的

    2025年8月6日
    3
  • 一文详解MOS管驱动电路的核心设计「建议收藏」

    一文详解MOS管驱动电路的核心设计「建议收藏」MOS管电子产品生产中不可或缺的重要保护器件,在手机、笔记本电脑、蓝牙耳机等都有MOS管的身影,可以这样说,有便携式电子产品的地方一定有MOS管的存在,究竟为何MOS管能在竞争激烈的电子行业中脱颖而出,我觉的最主要的原因莫过于MOS管绝佳的性能,如简化驱动电路、自适应能力强、抗干扰能力强等性能使得MOS管崛起的速度快,今天我们要说的是MOS管在驱动电路中的核心设计,为何能让MOS管在竞争如此激烈的…

    2022年6月19日
    31
  • ViewPager滑动事件OnPageChangeListener

    ViewPager滑动事件OnPageChangeListener使用ViewPager控件的时候,需要实现OnPageChangeListener接口,而OnPageChangeListener这个接口时必须实现三个方法:onPageScrollStateChanged,onPageScrolled,onPageSelected方法。

    2022年7月22日
    15

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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