【问题标题】:Tensorflow Objct detection API error: ValueError: ssd_mobilenet_v2 is not supportedTensorflow Objct 检测 API 错误:ValueError: ssd_mobilenet_v2 is not supported
【发布时间】:2021-01-28 13:51:40
【问题描述】:

我正在使用 TF 对象检测 API。我用的是TF2.4.1,python 3.6,想训练mobilenet_v2

我下载了官方SSD MobileNet v2 320x320here

运行训练时
/tensorflow/model/research/object_detection/model_main_tf2.py

我收到以下错误:

... 文件 “/home/base/anaconda3/envs/AIOD/lib/python3.6/site-packages/object_detection/builders/model_builder.py”, 第 251 行,在 _check_feature_extractor_exists 'Tensorflow'.format(feature_extractor_type))

ValueError:不支持 ssd_mobilenet_v2。见model_builder.py 对于与不同版本兼容的特征提取器 张量流

在我的 pipeline.config 文件中,特征提取器未更改为:

feature_extractor {
  type: 'ssd_mobilenet_v2'
...
      }

... /model_builder.py 中,我发现在这种情况下检查的SSD_FEATURE_EXTRACTOR_CLASS_MAP 包括ssd_mobilenet_v2(model_builder 中的第185 行)。

之前,我遇到了一个问题,即找不到pipeline.config 文件,所以我给出了确切的位置。将pipeline.config 文件复制到tensorflow/models/own_model_Dir 使该错误消失。所以也许,我必须把我下载的模型放到一个特定的文件夹中?

问题


有谁知道如何解决这个问题?

你知道我必须把模型放在哪里吗?我是否还必须将其放入tensorflow/models 目录中?

【问题讨论】:

    标签: python tensorflow tensorflow2.0 object-detection-api


    【解决方案1】:

    解决办法是SSD_FEATURE_EXTRACTOR_CLASS_MAPif tf_version.is_tf1():下 当我使用 TF2.4.1 运行时,我不是 tf1。

    为避免这种情况,请使用 TFmodel_main_tf2.py 表示)或

    您在 pipeline.config 中选择了作为特征提取器 例如,ssd_mobilenet_v2_keras。我仍然需要弄清楚哪个是合适的,但这将是一个灵魂,因为这个提取器在 SSD_KERAS_FEATURE_EXTRACTOR_CLASS_MAP 中,在 if tf_version.is_tf2():

    ...我遇到了我们的问题,但这不是这个线程。

    编辑: 另一种解决方案是下载并使用正确的模型文件。不知怎的,我设法下载了 TF2 模型,但使用了以前下载的 TF1 文件:-S。以上都还是正确的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-18
      • 1970-01-01
      • 1970-01-01
      • 2022-12-27
      • 2015-12-13
      • 2017-08-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多