您好,欢迎来到九壹网。
搜索
您的当前位置:首页python实现cifar10数据集的可视化

python实现cifar10数据集的可视化

来源:九壹网
python实现cifar10数据集的可视化

在学习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个字典对象。有如下列元素:

label_names——1个10元素的列表,给labels中的数值标签以有意义的名称。例如,label_names[0] == “airplane”, label_names[1] ==“automobile”等。(2)下载版本的cifar数据

先给个cifar数据下载链接:

链接上提到三个数据版本,分别是python,matlab,binary版本,分别适合python,matlab,C程序 我们⽤python实现cifar数据转化为图像,当然要⽤Python版本的啦 下载好了,我们就可以⽤下⾯的代码啦(3)代码

# -*- coding:utf-8 -*-import pickle as pimport numpy as np

import matplotlib.pyplot as pltimport matplotlib.image as plimgfrom PIL import Image

def 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, Y

def 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\ 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 \"保存完毕.\"

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 91gzw.com 版权所有 湘ICP备2023023988号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务