python实现cifar10数据集的可视化
来源:互联网 发布:php 网站框架 编辑:程序博客网 时间:2024/04/30 00:36
本文转自曾翔钰的工作室 http://blog.csdn.net/zengxyuyu/article/details/53232533
作为自己的笔记
在学习tensorflow的mnist和cifar实例的时候,官方文档给出的讲解都是一张张图片,直观清晰,当我们看到程序下载下来的数据的时候,宝宝都惊呆了,都是二进制文件,这些二进制文件还不小,用文本编辑器打开看也看不懂,要是将数据再现为图像,多好!
(1)CIFAR-10数据集介绍
① CIFAR-10数据集包含60000个32*32的彩色图像,共有10类。有50000个训练图像和10000个测试图像。
数据集分为5个训练块和1个测试块,每个块有10000个图像。测试块包含从每类随机选择的1000个图像。训练块以随机的顺序包含这些图像,但一些训练块可能比其它类包含更多的图像。训练块每类包含5000个图像。
②data——1个10000*3072大小的uint8s数组。数组的每行存储1张32*32的图像。第1个1024包含红色通道值,下1个包含绿色,最后的1024包含蓝色。图像存储以行顺序为主,所以数组的前32列为图像第1行的红色通道值。
labels——1个10000数的范围为0~9的列表。索引i的数值表示数组data中第i个图像的标签。
③数据集中包含另外1个叫batches.meta的文件。它也包含1个Python字典对象。有如下列元素:
label_names——1个10元素的列表,给labels中的数值标签以有意义的名称。例如,label_names[0] == “airplane”, label_names[1] == “automobile”等。
(2)下载python版本的cifar数据
先给个cifar数据下载链接:http://www.cs.toronto.edu/~kriz/cifar.html
链接上提到三个数据版本,分别是python,matlab,binary版本,分别适合python,matlab,C程序
我们用python实现cifar数据转化为图像,当然要用Python版本的啦
下载好了,我们就可以用下面的代码啦
(3)代码
# -*- coding:utf-8 -*-import pickle as pimport numpy as npimport matplotlib.pyplot as pltimport matplotlib.image as plimgfrom PIL import Imagedef load_CIFAR_batch(filename): """ load single batch of cifar """ with open(filename, 'rb')as f: datadict = p.load(f) X = datadict['data'] Y = datadict['labels'] X = X.reshape(10000, 3, 32, 32) Y = np.array(Y) return X, Ydef load_CIFAR_Labels(filename): with open(filename, 'rb') as f: lines = [x for x in f.readlines()] print(lines)if __name__ == "__main__": load_CIFAR_Labels("/data/cifar-10-batches-py/batches.meta") imgX, imgY = load_CIFAR_batch("/data/cifar-10-batches-py/data_batch_1") print imgX.shape print "正在保存图片:" for i in xrange(imgX.shape[0]): imgs = imgX[i - 1] if i < 100:#只循环100张图片,这句注释掉可以便利出所有的图片,图片较多,可能要一定的时间 img0 = imgs[0] img1 = imgs[1] img2 = imgs[2] i0 = Image.fromarray(img0) i1 = Image.fromarray(img1) i2 = Image.fromarray(img2) img = Image.merge("RGB",(i0,i1,i2)) name = "img" + str(i) img.save("/data/images/"+name,"png")#文件夹下是RGB融合后的图像 for j in xrange(imgs.shape[0]): img = imgs[j - 1] name = "img" + str(i) + str(j) + ".png" print "正在保存图片" + name plimg.imsave("/data/image/" + name, img)#文件夹下是RGB分离的图像 print "保存完毕."
- python实现cifar10数据集的可视化
- python实现cifar10数据集的可视化
- cifar10数据集的读取Python/Tensorflow
- Caffe的Python接口进行Cifar10可视化
- CIFAR10数据集 matlab可视化及理解
- 深度学习caffe实战笔记(14)MATLAB实现可视化cifar10数据集
- 制作自己的python版本的类CIFAR10数据集
- 制作python版本的类CIFAR10数据集.Tensorflow
- python显示cifar10数据集中的图片
- python实现CIFAR-10数据集可视化
- keras实现VGG16 CIFAR10数据集
- 用自己的数据,制作python版本的cifar10数据集
- tensorflow cifar10数据集的测试
- 转换Cifar10数据集
- 数据集cifar10到Caffe支持的lmdb/leveldb转换的实现
- [Keras实战] 构建DenseNet实现Cifar10数据集90%+准确率
- Linux下利用Matlab对cifar10数据可视化
- 【干货】Python使用matplotlib实现数据可视化
- 知识图谱的应用
- 《参与感》读书笔记
- JAVA DES加密解密
- Effective C++ 学习笔记(十五)
- 使用Ajaxupload.js上传文件
- python实现cifar10数据集的可视化
- Static or dynamic lib in vs
- 面试题
- 135. Candy
- PAT(basic level) 1027 打印沙漏(20)
- C语言练习——高精度小数
- MySQL改变列顺序
- PAT--1096. Consecutive Factors
- 知识图谱——机器大脑中的知识库