CIFAR-10是一个广泛使用的标准数据集,里面包含了各种阿猫阿狗阿汽车……为了在后续学习实验中用好它,首先需要认识了解一下。

把tensorflow官方model下的cifar10文件复制到工作区,对于jupyter就是win10下默认的文档里,然后把下载好的cifar10_data(bin)也放在cifar10里面,之后新建的代码都在这个主目录下操作,目的是调用里面的cifar10_input.py文件,TF也可以直接下载这个数据集(略慢)。

cifar10_input.inputs 用来读取数据,返回数据集和标签;eval_data = False表示使用训练数据集

%matplotlib inline #可以将matplotlib画图直接展示在notebook里

#放在cifar10目录下

import cifar10_input

import tensorflow as tf

import pylab

#取数据

batch_size = 12

data_dir = 'cifar10_data/cifar-10-batches-bin'

images_test, labels_test = cifar10_input.inputs(eval_data = True, data_dir = data_dir, batch_size = batch_size)

sess = tf.InteractiveSession()

tf.global_variables_initializer().run()

tf.train.start_queue_runners()#运行队列

image_batch, label_batch = sess.run([images_test, labels_test])

print("-----\n",image_batch[0])

print("-----\n",label_batch[0])

pylab.imshow(image_batch[0])

pylab.show()

pylab是matplotlib中提供的的模块,包括了许多NumPy和pyplot模块中常用的函数,方便用户快速进行计算和绘图,十分适合在IPython交互式环境中使用;

pyplot是matplotlib为方便快速绘图提供的一套和MATLAB类似的绘图API,将众多绘图对象所构成的复杂结构隐藏在这套API内部。

利用这个函数获得的数据进行了标准化(减去均值像素,除以像素方差,数据分布为均值为0,方差为1),而且还进行了裁剪变成了24*24,下面就是输出的便于训练的标准化图像:

标准化图像.png

这是真实图像的样子:

真实图像.png

貌似是一只松鼠?

将cifar10转化成png格式数据从而有个直观的映像

import pickle as p

import numpy as np

import matplotlib.pyplot as plt

import matplotlib.image as plimg

from PIL import Image

def load_CIFAR_batch(filename):

""" load single batch of cifar """

with open(filename, 'rb')as f:

datadict = p.load(f,encoding="latin1")

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("cifar-10-batches-py/batches.meta")

imgX, imgY = load_CIFAR_batch("cifar-10-batches-py/data_batch_1")

print (imgX.shape)

print ("正在保存图片:")

for i in range(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","png")#文件夹下是RGB融合后的图像

for j in range(imgs.shape[0]):

img = imgs[j - 1]

name = "img" + str(i) + str(j) + ".png"

#print ("正在保存图片" + name)

plimg.imsave("data/image/" + name, img)#文件夹下是RGB分离的图像

print ("保存完毕.")

img0.png

img1.png

img2.png

img3.png

img4.png

img5.png

img6.png

img7.png

img8.png

img9.png

img10.png

然后可以看见其实就是一堆很小的图片,毕竟只有32*32大小,这里面有个小坑需要注意的是,TF中自动下载和导入分割的是bin形式的二进制文件,而通常有些代码中是直接用的python形式的文件,这两者的格式不相同,不能混用。

matlab训练cifar10,认识CIFAR-10数据集相关推荐

  1. 深度学习入门——利用卷积神经网络训练CIFAR—10数据集

    CIFAR-10数据集简介 CIFAR-10是由Hinton的学生Alex Krizhevsky和Ilya Sutskever整理的一个用于普适物体的小型数据集.它一共包含10个类别的RGB彩色图片: ...

  2. [深度学习-实践]Tensorflow 2.x应用ResNet SeNet网络训练cifar10数据集的模型在测试集上准确率 86%-87%,含完整代码

    环境 tensorflow 2.1 最好用GPU Cifar10数据集 CIFAR-10 数据集的分类是机器学习中一个公开的基准测试问题.任务的目标对一组32x32 RGB的图像进行分类,这个数据集涵 ...

  3. 【深度学习】训练CIFAR-10数据集实现分类加测试

    网上有很多博主写的训练CIFAR-10的代码,本次只是单纯记录一下自己调试的一个程序,对于初学深度学习的小白可以参考,如有不对,请多多见谅!!! 一.CIFAR-10数据集由10个类的60000个32 ...

  4. 深度学习训练的时候gpu占用0_26秒单GPU训练CIFAR10,Jeff Dean也点赞的深度学习优化技巧...

    选自myrtle.ai 机器之心编译机器之心编辑部 26 秒内用 ResNet 训练 CIFAR10?一块 GPU 也能这么干.近日,myrtle.ai 科学家 David Page 提出了一大堆针对 ...

  5. 车牌检测模型训练(含源码和数据集)

    车牌检测模型训练(含源码和数据集) 本教程利用NVIDIA TAO进行车牌检测模型的训练: 模型框架:SSD 数据集: CRPD, 连接:https://github.com/yxgong0/CRPD ...

  6. 使用yolov5训练自动驾驶目标检测数据集BDD100K

    文章目录 一.什么是BDD100K 二.数据预处理 三.环境配置 四.修改模型结构 五.迁移学习 六.训练BDD100K 七.评估性能 八.结语 一.什么是BDD100K BDD100K是伯克利发布的 ...

  7. st-gcn训练自建行为识别数据集

    st-gcn训练自建行为识别数据集 一.代码下载与环境配置 二.准备行为数据 三.数据转换 四.添加Layout 五.修改训练参数 六.开始训练 七.模型测试 一.代码下载与环境配置 首先参照下面的命 ...

  8. 视觉机器学习20讲-MATLAB源码示例(10)-增强学习算法

    视觉机器学习20讲-MATLAB源码示例(10)-增强学习算法 1. 增强学习算法 2. Matlab仿真 3. 仿真结果 4. 小结 1. 增强学习算法 增强学习(Reinforcement Lea ...

  9. ML之NB:基于NB朴素贝叶斯算法训练20类新闻文本数据集进行多分类预测

    ML之NB:基于NB朴素贝叶斯算法训练20类新闻文本数据集进行多分类预测 目录 输出结果 设计思路 核心代码 输出结果 设计思路 核心代码 vec = CountVectorizer() X_trai ...

最新文章

  1. Spring学习总结(6)——Spring之核心容器bean
  2. python 缺点-Python的3个主要缺点及其解决方案
  3. 对 Session 的深入探讨
  4. 2011-05-20
  5. 记一些茅塞顿开的事情
  6. Bumblebee微服务网关之Url重写
  7. 帝国CMS7.5仿hao123漫画网站模板动态版
  8. SQL优化笔记(二)—CPU优化
  9. 为什么学习web前端,必须掌握JavaScript这门编程语言
  10. Redis应用(四)——在Spring框架中的应用
  11. DELPHI操作INI文件详细讲解
  12. Servlet与JSP项目实战 — 博客系统(上)
  13. 【印刷字符识别】基于matlab OCR印刷字母+数字识别【含Matlab源码 287期】
  14. inceptor-plsql 系统预定义函数/过程
  15. Axure PR9的安装与激活
  16. 计算机网络第七版课后习题答案(第二章)(20210628)
  17. jQuery Ajax async=false异步改为同步时,导致浏览器假死的处理方法
  18. Delaunay三角网构建,并进行可视化
  19. 《Python编程快速上手——让繁琐的工作自动化》读书笔记4
  20. (转载)基于LBS地图的开发,满足地图上有头像的需求

热门文章

  1. MySQL执行计划 EXPLAIN参数
  2. PyQt5教程——组件(7)
  3. GNS3连接VMware中虚拟主机,能相互ping通
  4. 解决U盘无法格式化的问题
  5. Linux的守护进程
  6. H3C交换机配置远程管理配置
  7. 9-9 原生安装-1
  8. code vs 集成tfs_10大Python集成开发环境和代码编辑器
  9. docker中linux用户名密码,linuxea:尽可能不在docker镜像中嵌入配置或者密码
  10. java fx 重绘_如何重绘JAVA FX 2.2中的窗口(舞台)