【问题标题】:System.MissingMethodException IntPtr Tensorflow.Status.op_Implicit(Tensorflow.Status)''System.MissingMethodException IntPtr Tensorflow.Status.op_Implicit(Tensorflow.Status)''
【发布时间】:2020-10-23 11:12:20
【问题描述】:

我正在尝试将 TensorFlow 模型 (SavedModel) 加载到 ML.NET 并使用 ML.NET 创建一个估算器。

我正在加载模型而没有错误,但tensorFlowModel.ScoreTensorFlowModel 出现异常“System.MissingMethodException IntPtr Tensorflow.Status.op_Implicit(Tensorflow.Status)”。

我的代码:

using Microsoft.ML;

var inputNodeName = "serving_default_dense_input";
var outputNodeName = "StatefulPartitionedCall_1";

var tensorFlowModel = mlContext.Model.LoadTensorFlowModel(@"model"); //model directory contains saved_model.pb file
var pipeline = tensorFlowModel.ScoreTensorFlowModel(new[] { outputNodeName },new[] { inputNodeName }, addBatchDimensionInput: false);

已安装的 NuGet 包:

  • ML.NET
  • SciSharp.TensorFlow.Redist
  • TensorFlow.NET

这些软件包已更新到最新版本。

【问题讨论】:

  • 你只是在LoadTensorFlowModel方法中传入一个目录吗?我觉得应该是pb文件
  • @Jon LoadTensorFlowModel 方法通过。当指定了不正确的 inputNodeName 时,出现异常'在图形“grap-key-0/”中找不到操作“xyz”。所以加载模型似乎成功了。

标签: c# tensorflow ml.net


【解决方案1】:

我曾多次遇到同样的错误,而且 ML.NET 和 TensorFlow 版本之间一直不匹配。我注意到你已经包含了 SciSharp.TensorFlow.Redist 包,虽然可能有教程仍然提到使用更高版本的 ML.NET 依赖于 TensorFlow.NET >= 0.11.8.1 似乎包含必要的文件,所以这不是必需的,并且可能是导致你的问题。

另一件事是,当依赖性 >= 0.11.8.1 TensorFlow.NET 的更高版本可能会导致与此 Github Issue 相同的问题,因此还要检查您是否没有更新到 TensorFlow.NET 的更高版本如果您尝试恢复到 0.11.8.1。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-07
    • 1970-01-01
    • 2017-05-18
    • 1970-01-01
    • 1970-01-01
    • 2013-04-05
    • 2015-01-25
    • 1970-01-01
    相关资源
    最近更新 更多