如何在Tensorflow Object Detection API中重用分类层

时间:2018-04-30 22:51:20

标签: tensorflow machine-learning deep-learning object-detection object-detection-api

使用来自Tensorflow detection model zoo的SSD_inception_v2_coco的Tensorflow对象检测API,

我想保留预先训练模型中分类器和特征提取器权重的原始权重。

从此discussion

在train.config中添加freeze_variables: ".*FeatureExtractor.*"将在训练期间冻结特征提取器的权重。

这是否意味着我在预训练模型中具有相同的特征提取器权重?

从此discussion

如果课程数量与预训练模型不同,

分类器的权重将被初始化。

这是否意味着如果我使用SSD-Inception-v2-coco中相同的标签贴图,我可以在pre-traind模型中拥有相同的分类器权重?

我的第3个问题是关于配置文件中的from_detection_checkpoint。

来自configuring_jobs.md

“from_detection_checkpoint是一个布尔值。如果为false,则假定检查点来自对象分类检查点。”

我猜检测检查点来自Tensorflow detection model zoo

和分类检查点来自TensorFlow-Slim image classification model library

我说错了吗?

感谢您在我的问题上花费宝贵的时间。

1 个答案:

答案 0 :(得分:0)

1. So does it mean I have the same feature-extractors' weights in the pre-trained model?

特征提取器和分类器几乎是同一件事。它们本质上都是Inception V2预训练重量的重量。如果将Inception V2权重用作SSD的特征提取器,则会忽略Inception中将CNN输出转换为类概率的最后一层。因此,可以使用在Imagenet上经过训练的特征提取器/分类器(可以说在SSD中)从COCO类列表中检测对象。

2. Does it mean I can have the same classifiers' weights in the pre- traind model if I use the same label map from SSD-Inception-v2-coco?

是的,检测和分类检查点来自您列出的页面。