在张量流中使用预训练的对象检测模型。使用哪些参数?

时间:2018-10-15 20:08:48

标签: python tensorflow machine-learning

我想知道如何在张量流对象检测仓库中使用预训练的模型。我不确定我是否理解正确。

这是对link

中提出的问题的扩展

我的想法
Tensorflow基于配置文件构建模型。现在来看一下预训练的模型并遍历每一层。如果层在名称上在两者之间匹配,则参数/权重将保留,如果层不匹配,则参数/权重将不保留。

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

OR

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

1 个答案:

答案 0 :(得分:0)

正如您自己说的那样,如果图层不相同-不会从检查点/预先训练的模型中加载该图层,并且会对其进行初始化。 如果更改类的数量,则更改相应的层,无论它是完全连接的(例如,输出神经元的数量)还是卷积(通道的数量)。 因此,如果您更改类的数量-所有受影响的层都将初始化。