我正在使用 Google 机器学习引擎和 Google 存储在 TensorFlow 中训练 SSD 模型。在TF的object detection example ,他们将所有图像放入一个大的 TFRecord 文件中。然而,在该方案中,如果要通过选择所有图像的子集来组装不同的训练集,则给定图像将被存储多次,对于该图像所属的每个训练集一次。
另一种方法是将每个图像存储为单独的文件,并使用一个简单的 URL 列表来指示图像在各种数据集中的成员资格。但是,根据我的经验,Google Storage 并未针对读取大量小文件进行优化,这导致训练吞吐量较低。
我想看看是否有其他方法可以避免多次保存每个图像,同时实现良好的吞吐量。
最佳答案
GCS 上的小文件确实会影响吞吐量。
一些想法:
- 使用 many reading threads 构建您的输入管道以保持管道充满。 (链接到 newer API)
- 在启动时将文件复制到本地磁盘。
- 在 TF 图中使用构造来过滤掉文件。
没有。 1 应该会让你走得很远。
关于tensorflow - 使用 Google ML 引擎和 Google Storage 存储大量图像进行训练的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47211723/