我正在使用Google ML引擎和Google存储在TensorFlow中训练SSD模型。在TF的object detection example中,他们将所有图像放入一个大的TFRecord文件中。然而,在这个方案中,如果想通过选择所有图像的子集来组装不同的训练集,则给定的图像将被存储多次,对于图像所属的每个训练集一次。
另一种方法是将每个图像存储为单个文件,并使用URL的平面列表来指示各种数据集中图像的成员资格。但是,根据我的经验,Google Storage并未针对读取大量小文件进行优化,从而导致培训吞吐量较低。
我想看看是否有其他方法可以避免多次保存每个图像,同时实现良好的吞吐量。
答案 0 :(得分:0)
GCS上的小文件确实会影响吞吐量。
一些想法:
没有。 1应该让你相当远。
答案 1 :(得分:0)
由于拥有大量文件会降低培训吞吐量,我要做的是:
假设图像被适当地混洗,您选择的子集足够大并且使用了相当多的读取线程,因为管道不应该耗尽数据。
另一种方法是将tfrecords分成更小的子集,但不是每个图像的文件。无论你走到哪里,你都会遇到一些需要解决的问题,这是一个选择哪个选项可能出现问题的案例。