matlab训练cifar10,认识CIFAR-10数据集
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数据集相关推荐
- 深度学习入门——利用卷积神经网络训练CIFAR—10数据集
CIFAR-10数据集简介 CIFAR-10是由Hinton的学生Alex Krizhevsky和Ilya Sutskever整理的一个用于普适物体的小型数据集.它一共包含10个类别的RGB彩色图片: ...
- [深度学习-实践]Tensorflow 2.x应用ResNet SeNet网络训练cifar10数据集的模型在测试集上准确率 86%-87%,含完整代码
环境 tensorflow 2.1 最好用GPU Cifar10数据集 CIFAR-10 数据集的分类是机器学习中一个公开的基准测试问题.任务的目标对一组32x32 RGB的图像进行分类,这个数据集涵 ...
- 【深度学习】训练CIFAR-10数据集实现分类加测试
网上有很多博主写的训练CIFAR-10的代码,本次只是单纯记录一下自己调试的一个程序,对于初学深度学习的小白可以参考,如有不对,请多多见谅!!! 一.CIFAR-10数据集由10个类的60000个32 ...
- 深度学习训练的时候gpu占用0_26秒单GPU训练CIFAR10,Jeff Dean也点赞的深度学习优化技巧...
选自myrtle.ai 机器之心编译机器之心编辑部 26 秒内用 ResNet 训练 CIFAR10?一块 GPU 也能这么干.近日,myrtle.ai 科学家 David Page 提出了一大堆针对 ...
- 车牌检测模型训练(含源码和数据集)
车牌检测模型训练(含源码和数据集) 本教程利用NVIDIA TAO进行车牌检测模型的训练: 模型框架:SSD 数据集: CRPD, 连接:https://github.com/yxgong0/CRPD ...
- 使用yolov5训练自动驾驶目标检测数据集BDD100K
文章目录 一.什么是BDD100K 二.数据预处理 三.环境配置 四.修改模型结构 五.迁移学习 六.训练BDD100K 七.评估性能 八.结语 一.什么是BDD100K BDD100K是伯克利发布的 ...
- st-gcn训练自建行为识别数据集
st-gcn训练自建行为识别数据集 一.代码下载与环境配置 二.准备行为数据 三.数据转换 四.添加Layout 五.修改训练参数 六.开始训练 七.模型测试 一.代码下载与环境配置 首先参照下面的命 ...
- 视觉机器学习20讲-MATLAB源码示例(10)-增强学习算法
视觉机器学习20讲-MATLAB源码示例(10)-增强学习算法 1. 增强学习算法 2. Matlab仿真 3. 仿真结果 4. 小结 1. 增强学习算法 增强学习(Reinforcement Lea ...
- ML之NB:基于NB朴素贝叶斯算法训练20类新闻文本数据集进行多分类预测
ML之NB:基于NB朴素贝叶斯算法训练20类新闻文本数据集进行多分类预测 目录 输出结果 设计思路 核心代码 输出结果 设计思路 核心代码 vec = CountVectorizer() X_trai ...
最新文章
- Spring学习总结(6)——Spring之核心容器bean
- python 缺点-Python的3个主要缺点及其解决方案
- 对 Session 的深入探讨
- 2011-05-20
- 记一些茅塞顿开的事情
- Bumblebee微服务网关之Url重写
- 帝国CMS7.5仿hao123漫画网站模板动态版
- SQL优化笔记(二)—CPU优化
- 为什么学习web前端,必须掌握JavaScript这门编程语言
- Redis应用(四)——在Spring框架中的应用
- DELPHI操作INI文件详细讲解
- Servlet与JSP项目实战 — 博客系统(上)
- 【印刷字符识别】基于matlab OCR印刷字母+数字识别【含Matlab源码 287期】
- inceptor-plsql 系统预定义函数/过程
- Axure PR9的安装与激活
- 计算机网络第七版课后习题答案(第二章)(20210628)
- jQuery Ajax async=false异步改为同步时,导致浏览器假死的处理方法
- Delaunay三角网构建,并进行可视化
- 《Python编程快速上手——让繁琐的工作自动化》读书笔记4
- (转载)基于LBS地图的开发,满足地图上有头像的需求