TensorFlow对象检测API:使用`fine_tune_checkpoint`进行培训-取消冻结较早的层吗?

时间:2019-01-02 10:34:37

标签: tensorflow object-detection-api

我正在使用来自模型动物园的预先训练网络中的fine_tune_checkpoint (proto link)成功地训练模型。

但是,据我所知,通过迁移学习的微调变体,早期的层被冻结了。实际上,在训练期间仅最后一层被更新。

这个假设是否正确,也就是说,是否也可以在TF Object Detection API中以这种方式实现?

假设是这样,我现在想知道是否可以通过训练一段时间来提高性能,而不会冻结较早的层。但是,我找不到在配置文件中在这两种训练模式之间切换的直接方法。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

默认训练配置训练所有重量。 您进行微调的事实仅意味着您加载了部分/全部权重,而不是全部初始化(例如,从ImageNet预训练模型进行微调或从预训练的检测模型进行微调)。 为了冻结一些权重,您需要使用火车配置中的freeze_variables选项按模式说明其名称。 为了指定应该训练的变量,您可以使用相应的update_trainable_variables。 可以通过在构建模型/图形后对其进行检查来找到名称。