二进制文件读取流程分析|学习笔记

简介: 快速学习二进制文件读取流程分析

开发者学堂课程【深度学习框架 TensorFlow 入门二进制文件读取流程分析学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/773/detail/13554


二进制文件读取流程分析


内容介绍:

一、CIFAR10二进制数据集介绍

二、CIFAR10二进制数据读取


一、CIFAR10二进制数据集介绍

CIFAR-10数据集

CIFAR-10数据集由10个类的60000个32*32彩色图像组成,每个类有6000个图像,有50000个训练图像和1000个测试图像。

数据集分为五个培训批次和一个测试批次,每个批次有10000个图像。测试批次包含来自每个班级的恰好1000个随机选择的图像。班级的图像比另一个更多。在他们之间,训练批次包含来自每个班级的正好5000张图像。

以下是数据集中的类,以及来自每个类的10个随机图像。

这些类完全互相排斥。汽车和卡车之间没有重叠。“汽车”包括轿车,SUV,这类东西。“卡车”之包括大卡车。都不包括皮卡车。

二进制版本数据文件

二进制版本包含文件 data_batch_1.bin,data_batch_2.bin,...,data_batch_5.bin 以及 test_batch.bin。这些文件中的每一个格式如下,数据中每个样本包含了特征值和目标值:

<1x标签><3072x像素>

...

<1x标签><3072x像素>

每3073个字节是一个样本

1个目标值+3072像素(1024字节红色通道1024绿色通道1024蓝色通道)

第一个字节是第一个图像的标签,它是一个0-9范围内的数字。接下来的3072个字节是图像像素的值。前1024个字节是红色通道值,下1024个绿色,最后1024个蓝色。


二、CIFAR10二进制数据读取

1、流程分析

1)构造文件队列

2)读取二进制数据并进行解码

reader = tf.FixedLengthRecordReader(3073)

key,value = reader.read(file_queue)

decoded = tf.decode_raw(value,tf.uint8)

* 对 tensor 对象进行切片

label

* 一个样本 image(3072字节 = 1024red + 1024green + 1024blue)

[[ red [32,32]],

[ green [32,32]],

[blue[32,32]]]

shape = (3,32,32) = ( channels , height , width )

==> TensorFlow 的图像表示习惯

图片的形状、类型调整完毕

3)处理图片数据形状以及数据类型,批处理返回

4)开启会话线程运行

相关文章
|
弹性计算 Java 应用服务中间件
手动部署Java Web环境(Alibaba Cloud Linux 2)
本场景带您体验如何在Alibaba Cloud Linux 2.1903 LTS 64位操作系统的云服务器上部署Java Web环境。
|
算法
【MATLAB】逐次变分模态分解SVMD信号分解算法
【MATLAB】逐次变分模态分解SVMD信号分解算法
937 0
|
10月前
|
搜索推荐 SEO
谈微信搜索SEO(搜一搜)怎么排名第一
谈微信搜索SEO(搜一搜)怎么排名第一
361 54
|
NoSQL Java MongoDB
SpringBoot中MongoDB的那些高级用法
本文探讨了在Spring Boot项目中使用MongoDB的多种方式及其高级用法。MongoDB作为一种NoSQL数据库,在某些场景下相较于SQL数据库有着独特的优势。文中详细介绍了在Spring Boot中使用MongoDB的三种主要方式:直接使用官方SDK、使用Spring JPA以及使用MongoTemplate,并对比分析了它们之间的差异。此外,文章深入讲解了Spring Data MongoDB提供的各种注解(如@Id, @Document, @Field等)以简化操作流程,并探讨了MongoTemplate监听器的应用,如设置主键值、记录日志等。
754 2
|
9月前
|
算法
基于大爆炸优化算法的PID控制器参数寻优matlab仿真
本研究基于大爆炸优化算法对PID控制器参数进行寻优,并通过Matlab仿真对比优化前后PID控制效果。使用MATLAB2022a实现核心程序,展示了算法迭代过程及最优PID参数的求解。大爆炸优化算法通过模拟宇宙大爆炸和大收缩过程,在搜索空间中迭代寻找全局最优解,特别适用于PID参数优化,提升控制系统性能。
|
11月前
|
机器学习/深度学习 编解码 数据可视化
转置卷积-清晰易懂
转置卷积(Transpose Convolution)是一种用于图像上采样的技术,常用于图像分割、生成对抗网络(GAN)等领域。与传统的上采样方法不同,转置卷积通过学习参数来实现更优的插值效果。本文介绍了转置卷积的背景、应用、与标准卷积的区别以及数学推导,帮助读者深入理解其原理和应用场景。
978 1
|
10月前
|
Web App开发 JavaScript 前端开发
构建高效后端服务:Node.js与Express框架的实践
【10月更文挑战第33天】在数字化时代的浪潮中,后端服务的效率和可靠性成为企业竞争的关键。本文将深入探讨如何利用Node.js和Express框架构建高效且易于维护的后端服务。通过实践案例和代码示例,我们将揭示这一组合如何简化开发流程、优化性能,并提升用户体验。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的见解和实用技巧。
|
缓存 网络协议 Linux
通过实验深入了解 TCP 连接的建立和关闭
TCP/IP 这个主题很多文章比较陈旧,且以讹传讹的东西太多,所以本文作者结合了理论和实践去写,旨在通过一系列实验帮助读者深入理解 TCP 连接的建立过程。
346 13
|
人工智能 Kubernetes 持续交付
Kubernetes环境下基于微服务架构的容器化AI应用部署与管理最佳实践
【8月更文第19天】随着AI技术的快速发展,越来越多的企业开始将AI应用部署到生产环境。然而,AI应用往往包含大量的组件和服务,这使得其部署和管理变得非常复杂。微服务架构和容器化技术(如Docker)结合Kubernetes集群管理,为解决这些问题提供了强大的工具。本文将介绍如何在Kubernetes环境中部署和管理基于微服务架构的容器化AI应用。
778 0
|
缓存 Java 关系型数据库
【超全详解】Maven工程配置与常见问题解决指南
检查Maven配置包括验证路径、设置pom.xml与Project Structure的Java版本。基本操作有`clean-compile`、`install`和`package`,其中`install`会将jar包放入本地仓库。获取他人工程后需修改配置、清除缓存、更新依赖等。配置文件应从Maven Repository找寻,选择稳定高版本。创建Maven工程可选archetype如`quickstart`或直接创建Java工程。基本目录结构遵循分层设计原则,常见问题包括假性导包、端口占用、时区问题等,对应解决方案包括删除本地仓库文件、调整系统设置或重新加载项目。
2274 6
【超全详解】Maven工程配置与常见问题解决指南