批处理、重复和洗牌对 TensorFlow 数据集有什么作用?

2024-03-22

我目前正在学习 TensorFlow,但我在下面的代码片段中遇到了困惑:

dataset = dataset.shuffle(buffer_size = 10 * batch_size) 
dataset = dataset.repeat(num_epochs).batch(batch_size)
return dataset.make_one_shot_iterator().get_next()

我知道首先数据集将保存所有数据,但是什么shuffle(),repeat(), and batch()对数据集做什么? 请帮我举个例子和解释。


Update: Here https://colab.research.google.com/drive/1VS6-dYk3YAzoRmALhgTK7bb2_tBPrB4c?usp=sharing是一个小型协作笔记本,用于演示这个答案。


想象一下,您有一个数据集:[1, 2, 3, 4, 5, 6], then:

ds.shuffle() 的工作原理

dataset.shuffle(buffer_size=3)将分配一个大小为 3 的缓冲区来选择随机条目。该缓冲区将连接到源数据集。 我们可以这样想象:

Random buffer
   |
   |   Source dataset where all other elements live
   |         |
   ↓         ↓
[1,2,3] <= [4,5,6]

我们假设该条目2是从随机缓冲区中取出的。可用空间由源缓冲区中的下一个元素填充,即4:

2 <= [1,3,4] <= [5,6]

我们继续阅读,直到什么都没有剩下:

1 <= [3,4,5] <= [6]
5 <= [3,4,6] <= []
3 <= [4,6]   <= []
6 <= [4]     <= []
4 <= []      <= []

ds.repeat() 的工作原理

一旦从数据集中读取了所有条目并且您尝试读取下一个元素,数据集就会抛出错误。 那就是那里ds.repeat()发挥作用。它将重新初始化数据集,使其再次如下所示:

[1,2,3] <= [4,5,6]

ds.batch() 会产生什么

The ds.batch()将采取第一个batch_size条目并从中制作一批。因此,我们的示例数据集的批量大小为 3 将生成两个批量记录:

[2,1,5]
[3,6,4]

因为我们有一个ds.repeat()在批量之前,数据的生成将继续。但元素的顺序会有所不同,因为ds.random()。应该考虑的是6由于随机缓冲区的大小,永远不会出现在第一批中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

批处理、重复和洗牌对 TensorFlow 数据集有什么作用? 的相关文章

随机推荐

  • 更改 SQL Server 中的用户定义类型

    我在数据库中创建了一些用户定义的类型 如下所示 CREATE TYPE dbo StringID FROM nvarchar 20 NOT NULL 并将它们分配到不同的表中 我的数据库中的表具有各种模式 不仅dbo 但我意识到我需要更大的
  • 使用jquery打开文件浏览器

    我有以下代码 p Select a file p
  • 使用 NavigationLink 将信息传递到另一个视图

    我有以下视图 我需要通过item内容到另一个视图 DetailsEvent swift 我正在使用NavigationLink 我使用的是 Xcode 11 GM struct Events View ObservedObject var
  • HDFS如何计算可用块?

    假设块大小为 128MB 则集群有 10GB 因此大约 80 个可用块 假设我创建了 10 个小文件 这些文件总共占用磁盘上 128MB 块文件 校验和 复制 和 10 个 HDFS 块 如果我想向HDFS添加另一个小文件 那么HDFS使用
  • 谷歌地图API可以进行语音导航吗?

    如何使用 google 地图 api v3 激活基于语音的方向 我已经实现了给出从起点到终点的方向的地图 但现在我想听听我当前所在位置的名称 请帮忙 我在 ios UIWebView 中实现了它 所以我从 GPS 获取当前位置 现在我每 2
  • JavaScript - for循环问题中变量递增

    我试图创建一个 for 循环 递增数字 1 4 并打印它们 但是当我在循环后打印 i 的值时 我的代码输出 5 for i 1 i lt 5 i document write i br Outputs numbers 1 4 documen
  • Kinect 1.8 颜色帧和深度帧不协调

    我的程序存在深度和彩色图像之间协调不佳的问题 玩家面具与人物不在同一位置 见下图 void AllFreamReady object sender AllFramesReadyEventArgs e using ColorImageFram
  • 等待 5 秒再执行下一行

    下面这个函数并没有像我想要的那样工作 作为一个 JS 新手 我不明白为什么 我需要它等待 5 秒钟 然后再检查是否newState is 1 目前 它不会等待 而是立即检查 function stateChange newState set
  • 将 zip 文件导入为库 - Eclipse Java

    我在导入 google http 库时陷入困境 我在链接中做了一些研究 例如 Eclipse Java 如何导入 zip 格式的库 https stackoverflow com questions 14375810 eclipse jav
  • 将 Java 对象转换为 Java Map

    我在用org eclipse jetty util ajax JSON解析 JSON 文本 但是JSON parse 字符串 方法生成一个对象 我需要它作为映射 在内部 它正是所提到的类的对象 但是 如何在不构造新对象或收到未经检查的转换警
  • 如何配置 Webpack 开发服务器来为特定文件夹提供服务,同时通过不同的服务器运行站点的其余部分?

    一些简单的背景知识 我公司的站点运行 CMS 并由 CMS 处理所有路由 没有 html 文件 只有 razor 文件 cshtml 虽然我更愿意从头开始重做网站 但这不是一个选择 因此我尝试通过将 vue js 与 webpack 开发工
  • gcc *有时*以一种奇怪的方式解决重载歧义

    在回答之前 这不是一个关于如何让这段代码做我想做的事情的问题 我已经知道该怎么做 参见这个问题的结尾 这是一个关于理解编译器为什么要做它所做的事情的问题 请考虑以下 简化的 代码 include
  • Javascript:带有尾随字符的 parseInt()

    parseInt 7em 10 回报7在我测试过的所有浏览器中 但我可以依靠这个吗 我问的原因是 我想根据 em 执行一些计算 例如 elem1 style top uses em units elem2 style top parseIn
  • 什么是“准实施”?

    有时 在搜索会员的推荐信时 我会收到此弹出窗口 这通常需要很长时间 所以我倾向于取消 但我想知道 我错过了什么 什么是 准实施 根据resharper 支持的这个答案 https resharper support jetbrains co
  • 读取 RDS AWS 中的副本

    我是亚马逊 RDS 的新手 我已经在RDS中设置了一个数据库实例 我想尝试 RDS 只读副本功能 我有几个疑问 只读副本适合什么样的应用 只读副本将数据同步还是异步复制到其他只读副本 它是多可用区部署的替代品吗 与MYSQL中的主从或主主复
  • Javascript 中的 try-catch 语句可以捕获哪些类型的错误?

    如果我写 try null foobar catch e alert e 没有任何警报 但ReferenceError已登录到控制台 然而 try barfoo foobar catch e alert e 显示带有以下内容的警报Refer
  • 如何从Windows任务管理器检测程序java强制关闭?

    如果我问了这样一个菜鸟问题冒犯了某人 大家很抱歉 因为我看到有人因不恰当而 标记了 问题 这是我第一次在这里提问 所以如果有什么不合适的地方请原谅我 如果我的英语不是很好 请原谅 当我的程序通过任务管理器关闭时 我试图创建一个临时文件 但我
  • 将大型数据集加载到 R 中的最快方法和最快格式是什么[重复]

    这个问题在这里已经有答案了 我有一个很大的数据集 未压缩时大约 13GB 我需要重复加载它 第一次加载 并保存为不同的格式 可能非常慢 但此后的每次加载都应该尽可能快 加载数据集的最快方式和最快格式是什么 我怀疑最佳选择是这样的 saveR
  • Yang 的 XPath current()

    这是我的后续问题Yang 中的 Xpath current https stackoverflow com questions 55888566 xpath current in yang经过前面的讨论 我为 libxml2 实现了一个自定
  • 批处理、重复和洗牌对 TensorFlow 数据集有什么作用?

    我目前正在学习 TensorFlow 但我在下面的代码片段中遇到了困惑 dataset dataset shuffle buffer size 10 batch size dataset dataset repeat num epochs