Tensorflow目标检测配置文件文档

32
我正在使用tensorflow中的目标检测API。我注意到几乎所有参数都通过配置文件传递。然而,我找不到任何关于这些配置文件选项的文档或教程。
我知道在官方git中他们提供了预训练模型的配置文件列表,这可能非常有帮助,但它并不涵盖每种情况,并且当然如果需要解释则不提供任何解释。
例如,在train_config部分中,有一些数据增强选项是相当自说明的,但其他选项的潜在存在是不清楚的。
  data_augmentation_options {
    random_horizontal_flip {
    }
  }
  data_augmentation_options {
    ssd_random_crop {
    }
  }

有没有可以参考的来源?例如在这个教程中,我发现了两个额外的选项(batch_queue_capacityprefetch_queue_capacity),我之前不知道它们的存在。我在哪里可以找到一个合适的选项列表?我知道这取决于具体的模型,但其中一些是通用的并且非常有帮助。

1个回答

28
如在配置文档中所述,配置文件只是Protocol Buffers对象,描述在research/object_detection/protos下的.proto文件中。顶层对象是在pipeline.proto中定义的TrainEvalPipelineConfig,不同的文件描述了每个元素,例如data_augmentation_options是在preprocessor.proto中定义的PreprocessingStep对象(这也可以包括一系列其他可能的对象用于不同的预处理任务)。每个对象和字段的含义可能或可能不明显或未经充分记录,但您始终可以参考源代码以确切了解每个值的使用方式(例如,检查preprocessor.py以了解如何执行数据增强)。

那么,为什么他们不使用.pbtxt来扩展它们,而要使用.config呢?这只会让人感到困惑,对吗? - user4028648
1
@EmielBoss 原则上,您甚至不需要知道什么是协议缓冲区就可以使用该框架,因此我认为.config对许多人来说可能更有意义。然而,由于除了.proto文件之外没有适当的设置文档,因此“隐藏复杂性”的效果并不是很好。 - jdehesa
只是为了确认我是否掌握了术语:协议缓冲区是序列化结构(根据协议),例如.pbtxt和.pb,对吗?那么.proto文件本身应该叫什么?只是“协议”吗? - user4028648
@EmielBoss 我不确定是否有一个非常具体的术语来描述它,但至少你所说的对我来说是有意义的(也就是说,符合我的理解,如果我听到它,我认为我会理解它)。 - jdehesa
刚开始想知道在tensorflow中有多少种模型创建和训练的方式? - Ashish Johnson
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接