笔记 - 数据读取:cifar10多线程读取1

本文介绍如何使用TensorFlow处理CIFAR10数据集,包括数据下载、参数设置、图像尺寸调整、数据增强技巧如随机裁剪与左右移动,以及对比度调整和图像标准化等关键步骤。

理论

数据增强

  • 数据增强
    在这里插入图片描述

在这里插入图片描述

  • 1张图片变7张图片

cifar10.py

主要负责cifar10数据集下载

在这里插入图片描述

  • 定义几个参数
    • batch_size
    • 下载数据集存放的地址
    • 用什么类型的格式存放模型参数w

在这里插入图片描述

  • 存储变量数据的一个对象
  • 使用eg:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

cifar10_input.py

主要负责数据读取处理

在这里插入图片描述

IMAGE_SIZE = 24 ,  实质就是将cifar10图片原始大小32 X 32 resize 成 24 X 24

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 创建队列 【妈也,好像很高级】

在这里插入图片描述

  • 强制转换类型

在这里插入图片描述

  • 随机裁剪图片

在这里插入图片描述

  • 随机左右移动
  • 为啥这里用distorted_image进行移动,不是应该用原始图片reshaped_image吗

在这里插入图片描述

  • 调对比度

在这里插入图片描述

  • 对每一张图片做标准归一化
    • 注意区分批量归一化(BN)
      #########################################
      在这里插入图片描述
      函数里面定义了一个类
      在这里插入图片描述
  • 定义一个空类,以后往对象中动态添加属性

在这里插入图片描述
在这里插入图片描述

  • cifar10数据集解压后,是序列化的二进制文件
  • 所以需要计算一张图片有多少字节

在这里插入图片描述

  • 固定长度读取器
    在这里插入图片描述
  • 真正读取图片,返回图片的 key 和 value

在这里插入图片描述

  • 将二进制的value解码成utf8格式的bytes?【还是bytes?】
原本value里全都是字节(一个整体),解码后成一条一条记录的字节

在这里插入图片描述

  • 对一条记录进行切割,切分成 x 和 y
    在这里插入图片描述
  • [0]为起始位置,[label_bytes]为结束位置 – 相当于每一条记录的第一个字节为label
    在这里插入图片描述
  • 对每一条记录的x部分,reshape成三维数据
  • 原始数据的存储方式为通道,高度,宽度
    在这里插入图片描述
  • transpose – 调整一下数据格式,从 (c,h,w) -> (h,w,c)
    在这里插入图片描述
  • 编写了一张图片的读取流程
  • 返回 CIFAR10Record 对象

主文件)tensorflow_cnn_cifar10.py

在这里插入图片描述

  • data_dir 是 cifar10解压后文件夹的位置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 读取数据,返回tensor【很高级的操作】, 而且封装好了多线程读数据
  • 平时读取数据都是直接加载进内存,等待使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值