博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CIFAR-10和python读取
阅读量:6310 次
发布时间:2019-06-22

本文共 1945 字,大约阅读时间需要 6 分钟。

1、CIFAR-10,是一个用于做图像分类研究的数据集。

  • 由60000个图片组成
  • 6万个图片中,5万张用于训练,1万张用于测试
  • 每个图片是32x32像素
  • 所有图片可以分成10类
  • 每个图片都有一个标签,标记属于哪一个类
  • 测试集中一个类对应1000张图
  • 训练集中将5万张图分为5份
  • 类之间的图片是互斥的,不存在类别重叠的情况

 

下图展示了具体的分类, 

 

2、 数据集加载:

CIFAR-10提供了三个版本的数据格式:python,matlab,二进制 。

这里以python的加载为例,参考

 

from __future__ import print_functionfrom six.moves import cPickle as pickleimport numpy as npimport osfrom scipy.misc import imreadimport platform#读取文件def load_pickle(f):    version = platform.python_version_tuple() # 取python版本号    if version[0] == '2':        return  pickle.load(f) # pickle.load, 反序列化为python的数据类型    elif version[0] == '3':        return  pickle.load(f, encoding='latin1')    raise ValueError("invalid python version: {}".format(version))def load_CIFAR_batch(filename):  """ load single batch of cifar """  with open(filename, 'rb') as f:    datadict = load_pickle(f)   # dict类型    X = datadict['data']        # X, ndarray, 像素值    Y = datadict['labels']      # Y, list, 标签, 分类        # reshape, 一维数组转为矩阵10000行3列。每个entries是32x32    # transpose,转置    # astype,复制,同时指定类型    X = X.reshape(10000, 3, 32, 32).transpose(0,2,3,1).astype("float")    Y = np.array(Y)    return X, Ydef load_CIFAR10(ROOT):  """ load all of cifar """  xs = [] # list  ys = []    # 训练集batch 1~5  for b in range(1,6):    f = os.path.join(ROOT, 'data_batch_%d' % (b, ))    X, Y = load_CIFAR_batch(f)    xs.append(X) # 在list尾部添加对象X, x = [..., [X]]    ys.append(Y)      Xtr = np.concatenate(xs) # [ndarray, ndarray] 合并为一个ndarray  Ytr = np.concatenate(ys)  del X, Y  # 测试集  Xte, Yte = load_CIFAR_batch(os.path.join(ROOT, 'test_batch'))  return Xtr, Ytr, Xte, Yte

batch数据反序列化出来是

{

  'data': 像素数据,

    'labels':分类标签

}

 

其中涉及到的python基础:

 1、from __future__ import print_function, __future__是用于在老版本python中使用新版本特性

 2、from six.moves import cPickle as pickle, 是序列化和反序列化库,pickle.load,反序列化为python的数据类型

 3、list的append方法,在list尾部添加对象,不需要和之前的数据类型一致

 4、numpy的concatenate,合并array

 

Reference:

 

 

转载于:https://www.cnblogs.com/jimobuwu/p/9161531.html

你可能感兴趣的文章
技能点
查看>>
读书笔记《乌合之众》
查看>>
Hadoop日记Day1---Hadoop介绍
查看>>
iOS 学习资料汇总
查看>>
centos7 yum安装jdk
查看>>
Bluedroid与BluZ,蓝牙测试方法的变动(基于bludroid和BlueZ的对比)
查看>>
接口和抽象类有什么区别
查看>>
Linux 下添加用户,修改权限
查看>>
请问view controller scene,该如何删除
查看>>
bootstrap新闻模块样式模板
查看>>
zzzzw_在线考试系统①准备篇
查看>>
App Store 审核被拒的23个理由
查看>>
剑指offer第二版-1.赋值运算符函数
查看>>
javascript 对象
查看>>
Android学习笔记——文件路径(/mnt/sdcard/...)、Uri(content://media/external/...)学习
查看>>
Echart:前端很好的数据图表展现工具+demo
查看>>
CATransform3D iOS动画特效详解
查看>>
Linux VNC黑屏(转)
查看>>
Java反射简介
查看>>
react脚手架应用以及iview安装
查看>>