python - 如何以最有效的方式使用 tf.data.Dataset 将图像转换为 TFRecords
问题描述
当我尝试使用这个所谓简单的 API 以每次我有一个新数据集时不需要 30 分钟的方式编写 TFRecords 时,我收到了多少无用的错误消息,这让我感到非常困惑。
任务:
我想将图像路径列表和标签列表提供给 tf.data.Dataset,并行解析它们以读取图像并编码为 tf.train.Examples,使用 tf.data.Dataset.shard 来将它们分发到不同的 TFRecord shards 中(例如 train-001-of-010.tfrecord、train-002-of-010.tfrecord 等),并为每个 shard 最终将它们写入相应的文件。
由于我已经调试了几个小时,所以我没有得到任何要修复的特定错误,否则我会提供它。我一直在努力寻找任何不是(a)来自 2017 年并使用队列运行器的最新教程,(b)使用 tf.Session(我使用的是 tensorflow 1.15,但官方文档一直告诉我分阶段(c) 方便地在纯 python 中创建记录,这是一个简单的教程,但对于任何实际应用程序来说都太慢了,或者 (d) 使用已经创建的 TFRecords 并跳过整个过程。
如有必要,我可以将我正在谈论的内容放在一起。但由于我在流程的每个层面都陷入困境,目前它似乎无济于事。
语言:
如果有人使用 tf.data.Dataset 并行创建 TFRecord 分片,请指出比谷歌更好的方向。
解决方案
推荐阅读
- sql - 当它们在不同的列中时按 YEAR 和 MONTH 过滤
- javascript - 合并对象数组并获取唯一值
- c# - How to get binary image data from IntPtr (look alike multipart/form-data)
- python - 在 Pandas/Python 中以最有效的方式根据条件复制列的最后看到的非空值
- wordpress - 多个 Wordpress 站点的最佳 docker 架构是什么?
- ruby-on-rails - 如何在 FactoryBot 中运行方法?
- css - 如何正确地将参数传递给角度组件?
- java - 尝试编写一个方法,该方法被调用并返回与边界相同字符数的星号字符串
- c++ - 在运行我的代码时显示在抛出 'std::bad_alloc' what() 实例后调用终止:std::bad_alloc
- android-ndk - dlopen 失败:找不到符号“__executable_start”