【问题标题】:Using pre-trained object detection models in tensorflow. Which parameters are used?在 tensorflow 中使用预训练的对象检测模型。使用了哪些参数?
【发布时间】:2019-03-20 07:31:08
【问题描述】:

我想知道如何在 tensorflows 对象检测存储库中使用预训练模型。我不确定我是否理解正确。

这是对以下问题的扩展:link

我的想法
TensorFlow 基于配置文件构建模型。现在它看看预训练的模型并迭代每一层。如果层按名称在两者之间匹配,则保留参数/权重,如果层不匹配则不保留。

假设我想为 ssd mobilenet v1 coco 使用预训练模型。我的新模型有 100 个类。 tf 所做的是,它用旧值初始化与我的新模型的前 90 个类对应的卷积层,同时在训练开始时为其他类选择随机值。现在,如果我的新模型只有 10 个类,它们将使用预训练的 coco 模型的前 10 个类进行初始化。

类对应的特定卷积层与预训练模型的形状不匹配,因此不保留?因为在 SSD 中,用于确定分数/类别/框坐标值的卷积包含在多个卷积层中,每个卷积层对应一个不同的值。

【问题讨论】:

    标签: python tensorflow machine-learning


    【解决方案1】:

    正如您自己所说,如果层不同 - 它不是从检查点/预训练模型加载的,而是被初始化的。 如果你改变了类的数量,那么你就改变了相应的层,无论是全连接的(例如输出神经元的数量)还是卷积的(通道的数量)。 因此,如果您更改类的数量 - 所有受影响的层都会被初始化。

    【讨论】:

      猜你喜欢
      • 2019-01-22
      • 2018-02-20
      • 2018-06-25
      • 2019-10-27
      • 1970-01-01
      • 2021-07-11
      • 2019-04-05
      • 1970-01-01
      • 2018-05-04
      相关资源
      最近更新 更多