我正在使用来自模型动物园的预先训练网络中的fine_tune_checkpoint
(proto link)成功地训练模型。
但是,据我所知,通过迁移学习的微调变体,早期的层被冻结了。实际上,在训练期间仅最后一层被更新。
这个假设是否正确,也就是说,是否也可以在TF Object Detection API中以这种方式实现?
假设是这样,我现在想知道是否可以通过训练一段时间来提高性能,而不会冻结较早的层。但是,我找不到在配置文件中在这两种训练模式之间切换的直接方法。有什么想法吗?
答案 0 :(得分:1)
默认训练配置训练所有重量。
您进行微调的事实仅意味着您加载了部分/全部权重,而不是全部初始化(例如,从ImageNet预训练模型进行微调或从预训练的检测模型进行微调)。
为了冻结一些权重,您需要使用火车配置中的freeze_variables
选项按模式说明其名称。
为了指定应该训练的变量,您可以使用相应的update_trainable_variables
。
可以通过在构建模型/图形后对其进行检查来找到名称。