tf.train.shuffle_batch函数解析
时间:2022-07-23
本文章向大家介绍tf.train.shuffle_batch函数解析,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
tf.train.shuffle_batch
- (tensor_list, batch_size, capacity, min_after_dequeue, num_threads=1, seed=None, enqueue_many=False, shapes=None, name=None)
- Creates batches by randomly shuffling tensors. 通过随机打乱张量的顺序创建批次.
简单来说就是读取一个文件并且加载一个张量中的batch_size行
This function adds the following to the current Graph
:这个函数将以下内容加入到现有的图中.
- A shuffling queue into which tensors from
tensor_list
are enqueued. 一个由传入张量组成的随机乱序队列 - A
dequeue_many
operation to create batches from the queue. 从张量队列中取出张量的出队操作 - A
QueueRunner
toQUEUE_RUNNER
collection, to enqueue the tensors fromtensor_list
. 一个队列运行器管理出队操作. Ifenqueue_many
isFalse
,tensor_list
is assumed to represent a single example. An input tensor with shape[x, y, z]
will be output as a tensor with shape[batch_size, x, y, z]
. - If
enqueue_many
isTrue
,tensor_list
is assumed to represent a batch of examples, where the first dimension is indexed by example, and all members oftensor_list
should have the same size in the first dimension. If an input tensor has shape[*, x, y, z]
, the output will have shape[batch_size, x, y, z]
.
enqueue_many主要是设置tensor中的数据是否能重复,如果想要实现同一个样本多次出现可以将其设置为:"True",如果只想要其出现一次,也就是保持数据的唯一性,这时候我们将其设置为默认值:"False"
- The
capacity
argument controls the how long the prefetching is allowed to grow the queues. capacity控制了预抓取操作对于增加队列长度操作的长度. - For example:
# Creates batches of 32 images and 32 labels.
image_batch, label_batch = tf.train.shuffle_batch( [single_image, single_label], batch_size=32, num_threads=4,capacity=50000,min_after_dequeue=10000)
这段代码写的是从[single_image, single_label]利用4个线程读取32个数据作为一个batch
Args:
-
tensor_list
: The list of tensors to enqueue. 入队的张量列表 -
batch_size
: The new batch size pulled from the queue. 表示进行一次批处理的tensors数量. -
capacity
: An integer. The maximum number of elements in the queue.
容量:一个整数,队列中的最大的元素数. 这个参数一定要比min_after_dequeue参数的值大,并且决定了我们可以进行预处理操作元素的最大值. 推荐其值为:
-
min_after_dequeue
: Minimum number elements in the queue after a dequeue(出列), used to ensure a level of mixing of elements. - 当一次出列操作完成后,队列中元素的最小数量,往往用于定义元素的混合级别.
- 定义了随机取样的缓冲区大小,此参数越大表示更大级别的混合但是会导致启动更加缓慢,并且会占用更多的内存
-
num_threads
: The number of threads enqueuingtensor_list
. - 设置num_threads的值大于1,使用多个线程在tensor_list中读取文件,这样保证了同一时刻只在一个文件中进行读取操作(但是读取速度依然优于单线程),而不是之前的同时读取多个文件,这种方案的优点是:
- 避免了两个不同的线程从同一文件中读取用一个样本
- 避免了过多的磁盘操作
-
seed
: Seed for the random shuffling within the queue. 打乱tensor队列的随机数种子 -
enqueue_many
: Whether each tensor intensor_list
is a single example. 定义tensor_list中的tensor是否冗余. -
shapes
: (Optional) The shapes for each example. Defaults to the inferred shapes fortensor_list
. 用于改变读取tensor的形状,默认情况下和直接读取的tensor的形状一致. -
name
: (Optional) A name for the operations.
Returns:
- A list of tensors with the same number and types as
tensor_list
. 默认返回一个和读取tensor_list数据和类型一个tensor列表.
- Eclipse中Maven打包程序并在Linux中运行
- SDN开发笔记(七):L2switch源码分析(上)
- spark使用zipWithIndex和zipWithUniqueId为rdd中每条数据添加索引数据
- Spring Boot Server容器配置
- Spring Boot读取配置的几种方式
- 如何用TensorFlow构建RNN?这里有一份极简的教程
- (1024程序员节快乐)阿里祭出大器,Java代码检查插件
- Java多线程神器:join使用及原理
- SpringCloud配置中心内容加密
- Spring Boot日志集成
- MongoDB系列7:MongoDB存储引擎
- MongoDB系列6:MongoDB索引的介绍
- 文本数据处理的终极指南-[NLP入门]
- 神经网络思想建立LR模型(DL公开课第二周答案)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Smarty缓存机制实例详解【三种缓存方式】
- 详解在Ubuntu上的Apache配置SSL(https证书)的正确姿势
- php设计模式之建造器模式分析【星际争霸游戏案例】
- Yii框架使用PHPExcel导出Excel文件的方法分析【改进版】
- PHP容器类的两种实现方式示例
- Linux下Mysql定时任务备份数据的实现办法
- PHP抽象类和接口用法实例详解
- php+lottery.js实现九宫格抽奖功能
- PHP实现一个按钮点击上传多个图片操作示例
- php实现 master-worker 守护多进程模式的实例代码
- Ubuntu 18.04 Server 设置静态IP 的办法
- PHP依赖注入容器知识点浅析
- centos克隆linux虚拟机的完整步骤分享
- laravel框架中间件简单使用方法示例
- PHP检查文件是否存在,不存在自动创建及读取文件内容操作示例