转换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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 前端开发经验总结_前端开发实训总结报告

    前端开发经验总结_前端开发实训总结报告一、前端开发经验总结开发前与产品经理/UI对接需要注意:配色,字体,弹框/消息提示,响应式操作,设备屏幕比例,间距,是否多个主题,icon或者svg图标给出方式,图片大小,表格表单等等组件,页面注释便于理解和记录。最好有设计规范先出来再开始设计。开发前与后端对接需要注意:是否具有需求文档,返回的状态处理,容错处理,接口提交类型(get、post等)能否统一设置,参数类型设置,能否合理安排工期,能否又便捷的接口呈现方式(借用工具还是文档标注)。选择框架要慎重。搭框架包括:状态管理,网络管理,样式处理

    2022年8月30日
    0
  • matlab中画柱状图的函数_科学柱状图怎么画

    matlab中画柱状图的函数_科学柱状图怎么画论文中需要画图进行比较,感觉还是matlab画起来比较方便,先把自己画的图及matlab代码放上。y=[300311;390425;312321;250185;550535;420432;410520;];b=bar(y);gridon;ch=get(b,’children’);set(gca,’XTickLabel’,{‘0′,’1′,’2′,’3’,’…

    2022年10月19日
    0
  • python优势有哪些?[通俗易懂]

    python优势有哪些?[通俗易懂]ol是英文orderedlist的缩写,翻译为中文是有序列表。有序列表是一种强调排列顺序的列表,使用标签定义,内部可以嵌套多个 标签。例如网页中常见的歌曲排行榜、游戏排行榜等都可以通过有序列表来定义。定义有序列表的基本语法格式如下: 列表项1 列表项2 列表项3 ……   在上面的语法中, 标签用于定义有序列表, 为具体的列表项,和无序列表类似,每对中 也至少应包含一对 。   在有序列表中,除了type属性之外,还可以为 定义start属..

    2022年10月5日
    1
  • 蓝桥杯单片机必备知识—–(7)温度传感器整数和浮点数

    蓝桥杯单片机必备知识—–(7)温度传感器整数和浮点数

    2021年4月12日
    139
  • DHCP简单配置-CISCO

    DHCP简单配置-CISCO

    2021年8月1日
    52
  • vue报错:Navigation cancelled from “/userIndex“ to “/blank/login“ with a new navigati

    vue报错:Navigation cancelled from “/userIndex“ to “/blank/login“ with a new navigati最近在弄一个vue项目时碰到这么一个报错,查了下资料,记录一下:这个错误是vue-router的内部错误,是因为没有进行catch处理,导致的编程式导航跳转问题,往同一个地址跳转时,会报错。解决方法如下:在路由文件中进行配置:router/index.jsimportVuefrom’vue’importRouterfrom’vue-router’Vue.use(Router)//解决报错constoriginalPush=Router.prototype.pushco

    2022年7月26日
    25

发表回复

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

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