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

理论

笔记 - 数据读取:cifar10多线程读取1_第1张图片

  • 数据增强
    笔记 - 数据读取:cifar10多线程读取1_第2张图片

笔记 - 数据读取:cifar10多线程读取1_第3张图片

  • 1张图片变7张图片

cifar10.py

主要负责cifar10数据集下载

笔记 - 数据读取:cifar10多线程读取1_第4张图片

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

在这里插入图片描述

  • 存储变量数据的一个对象
  • 使用eg:
    在这里插入图片描述
    在这里插入图片描述
    笔记 - 数据读取:cifar10多线程读取1_第5张图片

cifar10_input.py

主要负责数据读取处理

笔记 - 数据读取:cifar10多线程读取1_第6张图片

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

在这里插入图片描述
笔记 - 数据读取:cifar10多线程读取1_第7张图片
在这里插入图片描述

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

笔记 - 数据读取:cifar10多线程读取1_第8张图片

  • 强制转换类型

在这里插入图片描述

  • 随机裁剪图片

在这里插入图片描述

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

在这里插入图片描述

  • 调对比度

在这里插入图片描述

  • 对每一张图片做标准归一化
    • 注意区分批量归一化(BN)
      #########################################
      在这里插入图片描述
      函数里面定义了一个类
      笔记 - 数据读取:cifar10多线程读取1_第9张图片
  • 定义一个空类,以后往对象中动态添加属性

笔记 - 数据读取:cifar10多线程读取1_第10张图片
笔记 - 数据读取:cifar10多线程读取1_第11张图片

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

笔记 - 数据读取:cifar10多线程读取1_第12张图片

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

在这里插入图片描述

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

笔记 - 数据读取:cifar10多线程读取1_第13张图片

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

主文件)tensorflow_cnn_cifar10.py

笔记 - 数据读取:cifar10多线程读取1_第14张图片

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

在这里插入图片描述
在这里插入图片描述
笔记 - 数据读取:cifar10多线程读取1_第15张图片

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

你可能感兴趣的:(AI,深度学习,编程)