使用 ONNX Helper库访问机器学习模型

使用 ONNX Helper库可以轻松访问以“.onnx ”文件格式保存的已训练的机器学习(ML)模型。ONNX 是 Open Neural Network Exchange(开放神经网络交换)的缩写,是一种经过训练的强化学习模型的标准化、框架互操作格式。

虽然有一个标准 Java 库,但使用它需要相对高级的技术知识。ONNX Helper 是一个可免费下载的附加库,适用于 AnyLogic 的任何版本(个人学习版、科研版或专业版)。通过一个对象和一个函数,它提供了一种简单易行的方法来查询机器学习模型。

下载库

在许多情况下,将已训练的机器学习模型集成到您的仿真模型是非常理想的。下面是一些基于我们的机器学习测试平台使用案例:

  • 用基于现实世界数据训练的机器学习模型取代静态或基于分布的旅行时间。该模型使用日期和时间输入来预测旅行持续时间。
  • 将实际翻新设施中用于对到达部件的可修复性进行分类的相同 ML 模型纳入设施的仿真模型,以提高准确性。
  • 在模型部署到现实世界之前,以直观和统计的方式展示为控制机器速度(如使用强化学习)而训练的人工智能模型的影响和整体性能。

在这些类型的案例中,输入数据会被检索和预处理,可以使用众多可用机器学习库之一来训练机器学习模型,如: PyTorch、TensorFlow、Caret、DL4J 等。使用数据训练机器学习模型后,可将其导出到文件中,然后调用它来提供预测(例如,由边缘设备或在仿真模型中)。

其中一种扩展名为“.onnx ”的文件类型来自 ONNX,即开放神经网络交换。其目的是提供一个开放的生态系统,避免机器学习模型被锁定在一个特定的框架中。ONNX 格式的机器学习模型可以从许多不同的框架中导入和调用,而且它还支持跨平台、跨语言。

无缝集成的Helper对象

虽然有一个成熟的 ONNX Runtime Java 库,但它面向技术型 Java 用户的定位使更注重业务的 AnyLogic 用户面临一定的障碍。相反,AnyLogic ONNX Helper 库作为标准运行时库的抽象层,内置了处理与之交互所需的常规代码功能。极大地简化了最终用户对已训练的机器学习模型提出查询的方式,从而提高了可访问性,使得任何感兴趣的人都能方便地使用。

该库中的对象——“ONNX Helper”——表示与 ONNX 文件(.onnx)的单个连接。如果要查询多个 ONNX 文件,可以使用该对象的多个实例。

本工作流程演示了如何利用 ONNX Helper 在 AnyLogic 中设置并集成机器学习模型。
下载库

将Helper对象实例拖入模型后,其唯一属性就是引用所需的 ONNX 文件(本地路径或绝对路径)。辅助对象有一个基本的预测功能,并可根据您的偏好提供一些变体,以及一些用于常用操作的杂项功能。

如果运行仿真模型,可以点击辅助对象查看 ONNX 模型的相关信息,包括

  • 文件名。
  • 所有输入的名称、形状和数据类型。
  • 所有输出的名称、形状和数据类型。

有关这些主题的更多详细信息,请参阅项目的 GitHub 仓库及其 Wiki。

示例模型


下面的示例展示了多种案例和复杂程度;这些示例可从 GitHub 仓库。


  • 01

    简易运行

    简易运行模型

    作为该库最基本功能的演示,该模型使用了一个手动构建的 ONNX 文件,该文件包含多个使用不同数据类型的输入和输出。其中一些输入/输出还支持大小可变的数组。输入操作非常简单:转置、向上取整和乘法。

    搜索

  • 02

    供应链(使用ONNX)

    供应链(使用ONNX)模型

    该模型是内置示例模型 “供应链 ”的变体,由零售商、批发商和工厂组成。它在原始模型的基础上进行了扩展,不仅使用固定的频率和分布来确定需求的频率和规模,还增加了根据 ONNX 模型的输出查询这些信息的选项。同时,它还包括一个参数变化实验,允许您对每种方案进行比较。

    所提供的 ONNX 模型使用一个由现实世界数据训练而成的循环神经网络来预测下一个订单到达的时间,以及根据一年中的时间来预测订单的规模。

    搜索

  • 03

    简易医院
    (人工智能测试平台,使用 ONNX)

    简易医院模型

    该模型描述了一个简化的医院,病人到达医院后,在医院停留一段时间,然后离开。该模型使用了两个神经网络,因此也使用了两个 ONNX Helper对象。一个神经网络根据最近几天的病人到达率预测病人到达率。第二个神经网络根据个人的 24 个健康相关属性预测病人的住院时间。

    搜索

  • 04

    鸢尾花预测

    鸢尾花预测模型

    这是一个玩具模型,可随机生成不同大小的鸢尾花。对于生成的每朵花,提供的 ONNX 模型将尝试根据其花瓣和萼片的大小来分类它属于三种鸢尾花物种中的哪一种。

    搜索

  • 05

    猜数字

    猜数字模型

    这是一个演示模型,您可以在一个 28x28 的网格上通过绘制一系列直线来创建图案。提供的 ONNX 模型将尝试识别并猜测它“看到”的数字。该模型是基于修改后的国家标准与技术研究院(MNIST)数据库的一个子集进行训练的。

    搜索

用于训练和测试人工智能的仿真——电子邮件包

AnyLogic 仿真平台是企业级人工智能的训练和测试平台。利用 AnyLogic 通用仿真功能,您可以构建详细而稳健的虚拟环境,用于训练和测试您的人工智能模型。独特的多方法仿真功能为机器学习提供了全面的工具。这一完全支持云的平台拥有开放的应用程序接口(API),已在各行业的领先公司中得到广泛应用,正在增强并加速当今的人工智能开发进程。欲了解更多关于这个强大的机器学习工具的信息,请参阅我们的人工智能邮件包和白皮书!

人工智能包和白皮书