ML.NET 加载 SSD Inception v2 模型时输入形状不匹配

ML.NET Input shape mismatch when loading SSD Inception v2 model

我正在尝试将“.pb”格式的 SSD Inception v2 模型的张量流模型加载到 ML.NET,但我不断收到以下“形状不匹配”错误:

System.InvalidOperationException: 'Input shape mismatch: Input 'image_tensor' has shape (-1, -1, -1, 3), but input data is of length 691200.'

使用以下代码加载模型 Im:

            var pipeline = _mlContext.Transforms.ResizeImages(resizing: ImageResizingEstimator.ResizingKind.Fill, outputColumnName: "data", imageWidth: 640, imageHeight: 360, inputColumnName: nameof(ImageInputData.Image))
            .Append(_mlContext.Transforms.ExtractPixels(outputColumnName: "image_tensor", inputColumnName: "data", outputAsFloatArray: false))
            .Append(_mlContext.Model.LoadTensorFlowModel(tfModelFilePath)
                                .ScoreTensorFlowModel(
                                    outputColumnNames: InputImageSettings.OutputNodes,
                                    inputColumnNames: InputImageSettings.InputNodes,
                                    addBatchDimensionInput: false));


        var emptyData = new List<ImageInputData>();
        var data = _mlContext.Data.LoadFromEnumerable(emptyData);

        ITransformer mlModel = pipeline.Fit(data);

错误信息是什么意思?它将数据形状与数据长度进行比较。它有什么相关性?

原来是ML.NET(see the issue here)中的bug导致的。软件包的下一个版本将修复它。