【问题标题】:Numpy array to TFrecordNumpy 数组到 TFrecord
【发布时间】:2018-10-29 05:09:52
【问题描述】:

我正在尝试通过 tensorflow 对象检测 api 训练自定义数据集。数据集包含 40k 个训练图像和标签,它们采用 numpy ndarray 格式 (uint8)。训练数据集 shape=2 ([40000,23456]) 和标签 shape = 1 ([0..., 3])。我想为此数据集生成 tfrecord。我该怎么做?

【问题讨论】:

标签: python-3.x numpy tensorflow tfrecord


【解决方案1】:

本教程将引导您完成从数据创建 TFRecord 的过程:

https://medium.com/mostly-ai/tensorflow-records-what-they-are-and-how-to-use-them-c46bc4bbb564

但是,现在使用数据集输入管道可以更轻松地处理预处理。我更喜欢以最原始的格式保存我的数据,并构建一个预处理管道来处理它。以下是您想要阅读以了解数据集预处理管道的主要指南:

https://www.tensorflow.org/programmers_guide/datasets

【讨论】:

  • 阅读链接,很明显 TensorFlow 希望您首先将所有数据加载到内存中(作为数据集)。该链接没有描述以任何其他方式加载数据的任何方式。其他文档只是说,'无论如何,去做一个 TFRecordDataset'
  • 我建议按照第二个链接,使用数据集管道。您肯定不会将整个数据集加载到内存中。一次加载的数据量将由batched_dataset = dataset.batch(4) 等命令控制,请参阅简单批处理部分。如果您提供加载器函数,那么您将从一组 ID 开始(可能加载所有 ID),然后您将使用 Dataset.map 获取 ID 并返回它所引用的实际数据样本。如果您的数据已经是 TF 记录格式,那么 TF 将为您提供按需加载的阅读器。
  • 顶部链接已经烂了。
  • 那么我应该自己手动添加每一列(400+)吗?
  • @Maaaaa 我不清楚你在问什么,这可能最好作为它自己的问题提出,并通过一些小代码示例来澄清你的问题是什么。您可以在新帖子中引用此问题。
猜你喜欢
  • 2018-05-31
  • 1970-01-01
  • 1970-01-01
  • 2011-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-09
相关资源
最近更新 更多