tensorflow-datasets - tensorflow.data.experimental.CsvDataset 是否一遍又一遍地从文件中读取?
问题描述
我正在为 tf.data.Dataset 的长时间训练而苦苦挣扎,并且开始怀疑读取 CSV 文件是否会成为瓶颈。tensorflow.data.experimental.CsvDataset是否一遍又一遍地从文件中读取?
我考虑尝试首先导入整个数据集并将其放入一个 numpy 数组中,然后从 tensors 创建一个新的 TF Dataset。但是这样的改变需要时间,如果 SO 可以事先告诉我这没有什么区别,我不想浪费时间。
解决方案
我不知道为什么我用 CsvDataset 训练了这么长的时间,但是修改我的代码以首先将数据导入一个 numpy 数组,然后使用它导入它tf.data.Dataset.from_tensor_slices
使训练速度提高了大约10-100 倍。随之而来的另一个可能相关的变化是数据集在整个处理过程中不再嵌套。在旧版本中,每批都是列张量的元组,而在新版本中,每批只是一个张量。(可以通过删除为嵌套结构量身定制的变换来实现进一步的加速,这些变换现在仅应用于一个张量。)
推荐阅读
- android - 在Android xml中,边距开始与左侧边距有何不同,同样,边距结束与右侧边距有何不同
- typescript - Typescript 中的通用对象更新函数
- reactjs - 如何使用 AXIOS 有条件地进行 API 调用?
- node.js - 如何根据字段值有条件地忽略 mongo 管道阶段?
- reactjs - 更新和删除(单个查询)(EF + .NET Core Api)
- java - 如何对 Kotlin 中共享相同变量的自定义对象进行相同的操作?
- python - 如何在 QTableView 中复制和粘贴多行/列(来自 pandas 数据框的数据源)?
- node.js - 节点循环依赖与 vue-cli 创建的项目
- python - 打开另一个脚本的pygame打开脚本不起作用
- r - R中是否有等效的COUNTIF?