博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python读入CIFAR-10数据库
阅读量:4979 次
发布时间:2019-06-12

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

CIFAR-10可以去下载(记得下载python格式)

 

CIFAR-10数据组成:

训练集和测试集分别有50000和10000张图片,RGB3通道,尺寸32×32,如下为data_batch_1的组成(使用pickle.load函数):

 

 可以看到有四部分,清晰明了

 

对于CIFAR-10数据的读取,函数有两个,如下所示

1 def load_CIFAR_batch(filename):2   """ load single batch of cifar """3   with open(filename, 'rb') as f:4     datadict = pickle.load(f,encoding='latin1')5     X = datadict['data']6     Y = datadict['labels']7     X = X.reshape(10000, 3, 32,32).transpose(0,2,3,1).astype("float")8     Y = np.array(Y)9     return X, Y

 

——————————————————————————————————————————————

1 def load_CIFAR10(ROOT): 2   """ load all of cifar """ 3   xs = [] 4   ys = [] 5   for b in range(1,6): 6     f = os.path.join(ROOT, 'data_batch_%d' % (b, )) 7     X, Y = load_CIFAR_batch(f) 8     xs.append(X)   9     ys.append(Y)    10   Xtr = np.concatenate(xs)#使变成行向量11   Ytr = np.concatenate(ys)12   del X, Y13   Xte, Yte = load_CIFAR_batch(os.path.join(ROOT, 'test_batch'))14   return Xtr, Ytr, Xte, Yte

 

——————————————————————————————————————————————

其中有几个语句要注意一下:

X = X.reshape(10000, 3, 32, 32).transpose(0, 2, 3, 1).astype("float")

起初,X的size为(10000, 3072(3*32*32))。首先reshape很好理解,最后astype的格式转换也很好理解。

可是为什么要调用transpose,转置轴呢?就我认为只需要把一幅图像转成行向量就可以了。是为了方便检索吗?

 

xs.append(X)将5个batch整合起来;np.concatenate(xs)使得最终Xtr的尺寸为(50000,32,32,3)

 

当然还需要一步Xtr_rows = Xtr.reshape(Xtr.shape[0], 32 * 32 * 3)使得每一副图像称为一个行向量,最终就有了50000个行向量(Xtr_rows的尺寸为(50000,3072))

——————————————————————————————————————————————

 

综上,为了方便,难道不应该直接从最开始就不要调用reshape(10000, 3, 32, 32).transpose(0, 2, 3, 1).astype("float"),直接append再concatenate不就能导出Xtr_rows了吗?

知道的博友可以讨论一下!

转载于:https://www.cnblogs.com/hans209/p/6919851.html

你可能感兴趣的文章
Java中getResourceAsStream的用法
查看>>
最多区间覆盖问题
查看>>
对于外链建设,要准备持久战
查看>>
transactionManager 以及datasource type解析
查看>>
bat 判断变量字符串中是否包含字符串
查看>>
PHP MySql 分页实例
查看>>
SCADA-BOX模型-Padding
查看>>
sql常用函数instr()和substr()
查看>>
Symfony2 WebService (二)接口调用
查看>>
编程之美-2.6-精确表达浮点数
查看>>
BZOJ5287 HNOI2018毒瘤(虚树+树形dp)
查看>>
C#并行编程之数据并行
查看>>
在没有达到利益最大化之前,不喜欢现在的工作也要好好干
查看>>
学习Memcached
查看>>
排序算法 学习
查看>>
xml
查看>>
ubuntu kylin 13.10 无法安装ia32-libs解决方案
查看>>
mac下安装mysql教程
查看>>
去掉关闭按钮同时禁用alt+f4进行关闭
查看>>
HBase API操作
查看>>