tensorflow - tensorflow.data.Dataset repeat(count=None) 方法是如何工作的
问题描述
Tensorflowdata.Dataset
有一个方法repeat(count=None)
(https://www.tensorflow.org/api_docs/python/tf/data/Dataset?version=stable#repeat),它重复这个数据集,所以每个原始值都会被看到count
。如果 count 设置为None
(默认情况下),则数据集将无限重复。我的问题是,在极端情况下,无限大小的数据集如何处理和存储在内存中?当我尝试使用 检查其内容as_numpy_iterator()
时,系统会卡住。
解决方案
这data.Dataset
不是基于该repeat(count=X)
方法的数据的简单重复。它返回一个 python 可迭代对象,生成一个迭代器对象。
迭代器是实现 next 的对象,它预期返回返回它的可迭代对象的下一个元素,并在没有更多元素可用时引发 StopIteration 异常。 来源
具有Dataset
“无限重复”将“无限”加载与您的批量大小相等的样本数量。所以,一般来说,你在内存中存储的是一批样本。此外,使用大小大于数据集的缓冲区进行改组将有助于您根据实际数据集中元素的分布获得具有代表性的批次。
推荐阅读
- amazon-web-services - 来自 SQS 触发器的 Amazon Web Service Lambda 低调用
- php - Laravel 模型 - 时间演员表
- expect - 期望命令过早终止
- windows - 使用 git Bash 安装 Angular 4 时出错
- node.js - Mongoose 5.2.1 获取 MongoDB 连接错误:MongoError: no mongos proxy available
- symfony - 使用 Fixtures 进行依赖注入
- ios - 状态栏移除 SWRevealController
- javascript - 无法获取 CryptosJS 文件
- javascript - ActiveX WScript.Shell:使用循环打开多个 PDF
- spring-security - 与 Spring Security/Apache Shiro 相比,JAAS 的缺点是什么?