ML.NET 最需要的功能之一是能够从零开始创建神经网络模型,以便在 ML.NET 中进行深度学习。ML.NET 团队已经采纳了用户调研的反馈,并制定了开始实施此功能的计划。

ML.NET 深度学习的现状

目前,ML.NET 没有一种方法可以创建神经网络,从零开始建立深度学习模型。然而,对于采用现有的深度学习模型并将其用于预测,框架给予极大的支持。如果您有 TensorFlow 或 ONNX 模型,则这些模型可用于 ML.NET 进行预测。

ML.NET 对迁移学习也有很好的支持。这允许您获取自己的数据,并针对预先训练的模型进行训练,以便为您提供自己的模型。

但是如前所述,ML.NET 尚不能让您从零开始创建自己的深度学习模型。让我们来看看有什么计划。

未来深度学习计划

ML.NET 在 GitHub 代码仓库中,最近提交了一个 issue,即在 ML.NET 实施创建深度学习模型的计划。

原因有二:

  1. 向社区传达计划的内容,并正在制定中。
  2. 获取社区对当前计划的反馈。

本文触及的主要要点,你可以通过这个 issue 给出任何反馈或问题,帮助 ML.NET 团队规划或实施计划。

该 issue 详细介绍了三个部分,以便在 ML.NET 中提供创建深度学习模型:

  1. 使消费 ONNX 模型更加容易
  2. 支持 TorchSharp 随时可投入生产
  3. 在 ML.NET 创建支持 TorchSharp 的 API

让我们更详细地逐个讨论。

更易于使用 ONNX 模型

虽然您目前可以在 ML.NET 中使用 ONNX 模型,但您必须了解输入和输出名称才能使用它。现在,我们依靠 Netron 应用程序加载 ONNX 模型,为我们提供输入和输出名称。虽然这还不错,但团队希望公开从内部获取这些的方法,而不必依赖单独的应用程序。

当然,随着获得 ONNX 模型输入和输出名称的新方法,文档肯定会更新以反映这一点。我相信不仅是文档,还会有示例来说明如何做到这一点。

支持 TorchSharp

TorchSharp 是 ML.NET 进行深度学习的核心。与 Tensorfow.NET支持在 ML.NET 中用 TensorFlow 模型完成评分任务类似,它将提供对 Python 库的访问。PyTorch 在研究和行业中建立深度学习模型非常常见,因此作为 ML.NET 的底层是有意义的。

事实上,建立深度学习模式的热门库之一是 FastAI。FastAI 是学习深度学习的最佳课程之一。然而在引擎覆盖下,FastAI 使用PyTorch 来实际构建它生产的模型,这不是偶然的。FastAI 开发人员认为 PyTorch 是达成简化的最佳途径。

TensorFlow 非常适合使用现有模型预测,但对于从零开始构建新模型,我真的认为 PyTorch 和 TorchSharp 是首选方式。要做到这一点,TorchSharp 将帮助 ML.NET 成为引领者。

将 TorchSharp 应用到 ML.NET

从零开始训练深度学习模型最后阶段是,一旦 TorchSharp 训练就绪,用 ML.NET 能够创建一个高阶的 API。这是基于 TensorFlow 的 API,以帮助构建模型更容易。我相信 ML.NET 能用 TorchSharp 做到这一点。

这是绝对值得一试的重大任务。这是用 API 来建立模型的最佳方式。从长远来看,让我们以最琐碎又耗时的方式构建我们的模型是值得的,结果上看这将使我们更有生产力。

结论

从零开始创建深度学习模型是迄今为止 ML.NET 最需要的功能之一,他们推出如此计划肯定会达到这个目标。事实上,我认为它会超过这个目标,因为它已经在考虑使用 PyTorch 作为后端,这是研究和行业领域所趋。