使用机器学习模型
训练机器学习模型后,便可使用该模型进行预测。
ML.NET 模型会进行序列化并保存到文件中。 可以将模型文件加载到任何 .NET 应用程序中,并使用它通过 ML.NET API 进行预测。
Model Builder 使你可轻松利用代码片段在现有应用程序中使用模型,并利用模板在新应用程序中使用模型。
代码片段
如果你有现有应用程序,希望在其中使用模型进行预测,代码片段可简化该过程。 若要在应用程序中使用代码片段,请执行以下操作:
- 添加对类库的引用,该库包含将使用该模型的项目中的模型。
- 将代码片段添加到应用程序。
代码片段创建模型输入的实例。 然后,该实例调用 .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 控制台应用程序中使用已训练的模型来预测机器故障。