首页 > 解决方案 > 使用 ML 将转换为 ONNX、使用 tensorflow 2.5 导出的 saved_model.pb 加载到 c# 中

问题描述

我正在尝试在 c# 中为我的模型配置管道,该模型是使用 tf=2.5 导出的:

python Tensorflow\models\research\object_detection\exporter_main_v2.py  --input_type=image_tensor --pipeline_config_path=Tensorflow\workspace\models\my_ssd_mobnet\pipeline.config --trained_checkpoint_dir=Tensorflow\workspace\models\my_ssd_mobnet --output_directory=Tensorflow\workspace\models\my_ssd_mobnet\export

然后我以这种方式转换为 ONNX 格式:

python -m tf2onnx.convert --saved-model Tensorflow\workspace\models\my_ssd_mobnet\export\saved_model  --output model.onnx --opset 11 --verbose

所以我配置了管道:

var pipeline = mlContext.Transforms.LoadImages(outputColumnName: "input_tensor", imageFolder: "",
    inputColumnName: "input_tensor")
  .Append(mlContext.Transforms.ResizeImages(outputColumnName: "input_tensor",
    imageWidth: 300, imageHeight: 300,
    inputColumnName: "input_tensor"))
  .Append(mlContext.Transforms.ExtractPixels(outputColumnName: "input_tensor"))
  .Append(mlContext.Transforms.ApplyOnnxModel(outputColumnNames: new [] {
      "detection_boxes",
      "detection_classes",
      "detection_scores",
      "num_detections"
    },
    inputColumnNames: new [] {
      "input_tensor"
    },
    modelFile: modelLocation));

我得到了例外:

{"Could not find input column 'input_tensor'\r\nParameter name: inputSchema"}

我需要正确的管道配置方式。谢谢!

模型输入和输出

标签: c#tensorflow2.0object-detection

解决方案


推荐阅读