使用机器学习模型

已完成

训练机器学习模型后,便可使用该模型进行预测。

ML.NET 模型会进行序列化并保存到文件中。 可以将模型文件加载到任何 .NET 应用程序中,并使用它通过 ML.NET API 进行预测。

Model Builder 使你可轻松利用代码片段在现有应用程序中使用模型,并利用模板在新应用程序中使用模型。

代码片段

如果你有现有应用程序,希望在其中使用模型进行预测,代码片段可简化该过程。 若要在应用程序中使用代码片段,请执行以下操作:

  1. 添加对类库的引用,该库包含将使用该模型的项目中的模型。
  2. 将代码片段添加到应用程序。

代码片段创建模型输入的实例。 然后,该实例调用 .consumption.cs 文件中的 Predict 方法,以使用你提供的输入数据进行预测。

项目模板

与在训练过程中自动生成的训练和使用代码一样,Model Builder 会提供以下模板,用于自动生成新 .NET 应用程序来使用你的模型。

控制台应用程序

控制台应用程序模板是一个使用模型进行预测的 C# .NET 应用程序。 它包含以下文件:

  • Program.cs:应用程序的入口点。 与代码片段类似,此文件会创建模型的输入实例,使用 .consumption.cs 文件中的 Predict 方法,并在控制台中显示结果。
  • <MODEL-NAME>.mbconfig:你的模型和生成的训练和使用代码的 .mbconfig 文件。 这些文件从你最初添加机器学习项目的类库项目中复制而来。

Web API

Web API 模板是通过 ASP.NET 最小 API 应用程序模型生成的 ASP.NET Core 项目,用于简化将模型作为 Web 服务托管的操作。 Web API 可让你灵活地通过各种客户端(如桌面、Web 和移动应用程序)发出的 HTTP Web 请求来使用模型进行预测。

Web API 模板包含以下文件:

  • Program.cs:应用程序的入口点。 在此文件中,应用程序使用依赖项注入配置 PredictionEnginePool 服务,定义单个 /predict 终结点,并启动应用程序以侦听传入的 HTTP 请求。

    作为 predict 终结点定义的一部分,还定义了处理程序。 处理程序使用 PredictionEnginePool 服务对包含模型输入数据的传入 JSON 请求进行预测。 然后,处理程序将这些预测的结果返回给客户端。

  • <MODEL-NAME>.mbconfig:你的模型和生成的训练和使用代码的 .mbconfig 文件。 这些文件从你最初添加机器学习项目的类库项目中复制而来。

重要

Web API 项目不使用 .consumption.cs 文件中的 Predict 方法。 而是使用依赖项注入将 PredictionEnginePool 注册为服务。 PredictionEngine 不是线程安全。 还必须在应用程序中需要的任何地方创建它的实例。 随着应用程序的增长,此过程可能会变得难以管理。

为了提高性能和线程安全,请结合使用依赖项注入和 PredictionEnginePool 服务,这将创建一个在整个应用程序中使用的 PredictionEngine 对象的 ObjectPool

若要详细了解依赖项注入,请参阅 ASP.NET Core 中的依赖项注入

下一单元将介绍如何在 .NET 控制台应用程序中使用已训练的模型来预测机器故障。