学习ONNX交易 - 页 3

 

ONNX 模型动物园 |教程 9 |开放神经网络交换 | ONNX



ONNX 模型动物园 |教程 9 |开放神经网络交换 | ONNX

ONNX Model Zoo 是一组预训练模型,用于图像分类、对象检测以及语音和音频处理等不同任务。预训练模型可作为 ONNX 文件下载,并可与任何框架或 ONNX 运行时一起使用以进行推理。此外,Azure ML 等云平台提供了类似的功能,用户可以在其中上传自己的数据并训练模型以下载为 ONNX 文件。下一个视频将展示如何使用 ONNX Model Zoo 中的预训练模型进行手写数字识别。

 

ONNX 模型动物园演示 |教程 10 |开放神经网络交换 | ONNX



ONNX 模型动物园演示 |教程 10 |开放神经网络交换 | ONNX

该视频教程展示了如何使用ONNX Model Zoo通过 ONNX 运行时对 ONNX 模型执行推理。演示者引导观众完成创建虚拟环境、安装必要软件包、从 ONNX Model Zoo 下载 MNIST 手写模型以及编写用于推理的 Python 脚本的过程。该演示显示预测时间很快,并鼓励用户直接从 ONNX Model Zoo 下载模型。该视频预告了下一个教程,该教程将介绍如何将 Python 模型转换为 TensorFlow。

  • 00:00:00 在本节中,演示者演示了如何从 ONNX Model Zoo 下载 MNIST 手写模型并在 ONNX 运行时上执行推理。用户需要创建一个虚拟环境并安装所需的包,如 ONNX Runtime、OpenCV 和 NumPy。然后演示者展示了如何直接从 ONNX Model Zoo 下载模型或通过将链接复制到 CNTK.ai 网站来下载模型。下载模型后,演示者将解释如何编写用于推理的 Python 脚本,包括加载 ONNX 模型、预处理图像以及运行会话以获得输出。最后,Presenter 通过基于 argmax 操作绘制结果来显示预测。

  • 00:05:00 在本节中,演讲者讨论了使用 ONNX 运行时对 ONNX 模型进行推理。他们演示了使用预训练的 ONNX 模型来预测手写数字,并表明预测时间非常快。演讲者还提到,用户可以从 ONNX Model Zoo 下载模型并开始推理,而无需转换它们。他们调侃了下一个视频,他们计划将 Python 模型转换为 TensorFlow,让用户更深入地了解模型转换的过程。
GitHub - onnx/models: A collection of pre-trained, state-of-the-art models in the ONNX format
GitHub - onnx/models: A collection of pre-trained, state-of-the-art models in the ONNX format
  • onnx
  • github.com
Open Neural Network Exchange (ONNX) is an open standard format for representing machine learning models. ONNX is supported by a community of partners who have implemented it in many frameworks and tools. The ONNX Model Zoo is a collection of pre-trained, state-of-the-art models in the ONNX format contributed by community members like you...
 

PyTorch 到 Tensorflow 演示 |教程 11 |开放神经网络交换 | ONNX



PyTorch 到 Tensorflow 演示 |教程 11 |开放神经网络交换 | ONNX

该视频演示了如何使用 ONNX 将 PyTorch 模型转换为 TensorFlow 格式。该过程涉及在 PyTorch 中训练模型,将其保存为 .pth 格式,然后将其转换为 ONNX 格式,最后将其转换为 TensorFlow 格式。通过使用 MNIST 数据集的手写数字分类模型详细显示转换过程,并使用示例图像测试生成的 TensorFlow 模型。该视频还简要介绍了将模型从 Caffe2 转换为 ONNX,并建议用户进一步探索 ONNX。
  • 00:00:00 在这部分视频中,演讲者演示了如何使用 ONNX 将 Python 模型转换为 TensorFlow。他们解释说,在转换模型时,需要遵循两个步骤:首先,在所需的框架中训练模型,然后将其转换为 ONNX 文件格式。从那里,它可以转换为所需的格式,例如 TensorFlow 或 PyTorch。然后,演讲者展示了如何使用 ONNX 和 TensorFlow 包将手写数字分类模型从 PyTorch 转换为使用 MNIST 数据集的 TensorFlow。他们解释了该过程的每个步骤,包括安装必要的包、导入库、定义模型以及创建训练和测试
    功能。资源部分提供了笔记本代码,供用户跟随。

  • 00:05:00 在视频的这一部分中,演示者训练了一个 PyTorch 模型并将其保存为 .pth 文件格式。接下来,加载模型并将其转换为 ONNX 文件格式。然后将转换后的 ONNX 模型加载到 TensorFlow 中,以测试其在 three.png 和 seven.png 图像上的功能。该模型预测了两个图像的正确值。最后将ONNX模型转换为TensorFlow模型并保存为.pb文件格式,可用于进一步的预测。总的来说,演示者演示了如何在 ONNX 的帮助下将 PyTorch 模型转换为 TensorFlow 模型。

  • 00:10:00 在视频的这一部分,演讲者讨论了如何将他们的模型从 caffe2 模型转换为 ONNX。演讲者提供了笔记本的链接,其中已经编写了代码并且提供了所有必需的包。演讲者解释说,所有可能的转换,例如 PyTorch 到 ONNX、PyTorch 到 Caffe2 和 TensorFlow 到 ONNX,都在笔记本上可用。演讲者建议观众进一步探索 ONNX 并尝试实时示例以获得更好的学习体验。最后,演讲者结束了视频并感谢观众观看该系列节目。
 

Netron 是查看神经网络、深度学习和机器学习模型的工具





 

快速了解 Netron



快速了解 Netron

在视频中,演示者概述了 Netron,这是一种用于查看和分析机器学习模型的工具。 Netron 支持多种格式,可以安装在多个平台上。演示者演示了如何启动 Netron 并浏览多个示例模型,强调了该工具的功能和局限性。虽然 Netron 对于探索更简单的网络架构很有用,但演示者建议它可以从其他功能中受益,以可视化更复杂的模型。总的来说,主持人推荐 Netron 作为检查和理解机器学习模型的有用工具。

 

Netron - 网络可视化工具|机器学习 |数据魔法



Netron - 网络可视化工具|机器学习 |数据魔法

Netron 是一个 Python 库,可帮助用户直观地探索和检查深度学习模型的结构和参数。它是一个开源库,提供示例模型供分析,安装过程简单。只需两行代码,用户就可以安装 Netron 并使用它来可视化神经网络结构、激活函数、池化层、卷积层以及在给定机器学习模型的每一层传递的所有属性。 Netron 提供了一个易于使用的界面,允许用户将可视化导出为 PNG 文件并探索不同的功能和选项。

  • 00:00:00 在本节中,我们将了解 Netron,这是一个 Python 库,可帮助我们可视化深度学习模型的内部结构。我们可以使用 Netron 检查给定模型中使用的特定神经网络层和参数。 Netron 是一个开源库,提供示例模型供分析,安装过程简单。安装完成后,用户可以导入Netron库,使用“start”方法传入一个机器学习模型文件。然后 Netron 将创建模型结构的可视化表示,使用户能够直观地探索每一层及其参数。

  • 00:05:00 在视频的这一部分,演示者演示了如何使用机器学习模型的网络可视化工具 Netron。该工具可以可视化神经网络结构、激活函数、池化层、卷积层以及在给定机器学习模型的每一层传递的所有属性。只需两行代码,该工具就可以安装在本地机器上或在 netron.app 网站上在线访问。用户可以将可视化导出为 PNG 文件,并探索该工具界面中可用的不同功能和选项。
 

我们如何在 Zetane 中使用 ONNX 以更少的反复试验更快地完成机器学习项目



我们如何在 Zetane 中使用 ONNX 以更少的反复试验更快地完成机器学习项目

Zetane Systems 的联合创始人兼 CTO Patrick Saitama 讨论了在其公司的新产品中使用 ONNX 解决与 AI 黑盒问题相关的问题的价值。 Zetane 的引擎允许对 ONNX 模型进行探索和检查,从而深入了解模型与数据的交互,并制定更具决定性的策略来提高其质量。给出的示例展示了 Zetane 的引擎如何通过检查无线电层并添加更多标记为无障碍的隧道图像来帮助调试自动驾驶火车模型。 Zetane 还包括用于动态检查内部张量和拍摄模型快照以供日后调查的工具。此外,Zetane 的新引擎允许安装更大的模型,例如 YOLOv3。

  • 00:00:00 Zetane Systems 的联合创始人兼首席技术官 Patrick Saitama 讨论了如何从 ONNX 中提取更大的价值以缩短开发周期并减少猜测。他的公司 Zetane Systems 位于蒙特利尔,最近发布了一款与行业无关的新产品,旨在解决与人工智能黑匣子问题相关的一些问题。通过将输入数据传递给 ONNX 模型,然后将模型投影到 Zetane 引擎中,可以探索和检查模型,包括其架构和计算图,以及每个算子节点中包含的所有张量,以便进行调试并优化模型。

  • 00:05:00 演讲者讨论了如何在 Zetane 中使用 ONNX 来更深入地了解模型及其与数据的交互,这反过来会导致更果断的策略来提高模型的质量。给出的例子是一个自动驾驶火车模型,以及如何查看持续引擎中的无线电层表明该模型将隧道检测为障碍物,从而导致添加更多标记为非障碍物的隧道图像。 Zetane 还包括用于动态检查内部张量和在特定时刻拍摄模型快照以供日后调查和改进的工具。此外,最近推出了 detain 引擎,允许安装更大的模型,例如 YOLOv3。
 

ONNX 运行时的新功能



ONNX 运行时的新功能

本次演讲将分享 ONNX 运行时 1.10-1.12 版本的亮点,包括有关显着性能改进、功能和平台(包括移动和 Web)的详细信息。 Ryan Hill 过去 4 年一直在 AI Frameworks 团队工作,主要从事运算符内核、C API 和动态加载执行提供程序方面的工作。在此之前,他在 Office PowerPoint 团队工作,其中他最广为人知的作品是许多幻灯片幻灯片过渡。为了好玩,他喜欢尝试使用最新的 C++ 功能并遇到内部编译器错误。

在视频中,软件工程师 Ryan Hill 讨论了 ONNX Runtime 的各种功能和更新,ONNX Runtime 是一种广泛使用的跨平台运行时,可以针对多个 CPU 架构。他重点介绍了添加到 ONNX 运行时的最新功能,例如直接调用运算内核的能力以及转置优化器和小尺寸优化等性能改进。 Hill 还谈到了 ONNX Runtime 的执行提供程序,它可以在各种硬件上实现最佳性能,以及支持运行时 NHWC 转换的移动包的发布。视频还介绍了对布局敏感的运算符支持、Xamarin 对跨平台应用程序的支持、ONNX Runtime web 以及专注于模型前后处理工作的 ONNX Runtime 扩展库,包括文本转换和数学运算,目前专注于NLP、视觉和文本领域。

  • 00:00:00 在本节中,从事 ONNX Runtime 工作约四年的软件工程师 Ryan Hill 讨论了 ONNX Runtime 及其新版本的功能。他强调 ONNX Runtime 是一个跨平台的运行时,可以针对多个 CPU 架构,并具有多种编程语言的语言绑定。它被包括微软在内的多个行业广泛使用,在生产中有超过 160 个模型。 Ryan 还讨论了最新版本中添加的新功能,例如能够直接从模型运行调用外部调用运算内核,以及能够将外部初始化程序作为字节数组提供给模型推理。此外,Ryan 还谈到了最新版本的性能改进,例如转置优化器和小尺寸优化功能。最后,他强调了 ONNX Runtime 的执行提供程序,使其能够在各种硬件上以最佳方式执行,其移动包的发布现在支持运行时的 NHWC 转换。

  • 00:05:00 在本节中,视频介绍了 ONNX 运行时的新功能和更新,包括布局敏感的运算符支持和 Xamarin 对 Android 和 iOS 上跨平台应用程序的支持。此外,ONNX Runtime web 提供了一个单一的 C++ 代码库,编译成 web assembly,速度更快,使用的内存更少,现在有一个 ONNX Runtime 扩展库,专注于模型前后处理工作,允许用户做这项工作完全在模型运行调用中进行。该库包括文本转换、数学运算,目前专注于 NLP、视觉和文本领域。 Microsoft Office 团队目前正在使用这个扩展库。
 

v1.12.0 ONNX 运行时 - 发布回顾



v1.12.0 ONNX 运行时 - 发布回顾

ONNX 运行时 (ORT) 的 v1.12.0 版本侧重于推理,但也包括对培训的持续投资,与 Hugging Face Optimum 的集成导致了几个 Hugging Face 模型的加速。新功能包括能够在自定义操作中使用本机 ORT 操作,并直接调用本机或运行时操作符而无需构建图形。该版本还包括对 .NET 6 和多平台应用程序用户界面 (MAUI) 的支持,以及针对特定平台的执行提供程序,例如 Android 上的神经处理单元和 iOS 上的 Core ML。通过减少推理期间的内存分配和消除不必要的日志记录来提高性能。计划未来改进以增强缓存局部性和线程池利用率。

  • 00:00:00 本节讨论 ONNX Runtime 1.12 版的新功能和更新。其中包括弃用 .net 标准 1.1 支持以及添加对 ONNX 偏移量 17 和 xml 偏移量 3 的支持。一项新功能是无需创建单独的图形即可调用单个操作的能力,并支持为推理提供外部初始化程序也被添加了。其他更新包括对 python 310 的支持和在 python 和 java 库中启用 mac m1 支持,以及在 c-sharp 包中添加 .net 6 maui 支持。还对性能和量化进行了改进,并引入了新的执行提供程序,包括 Qualcomm Snappy 和事故包 ep 的通用基础设施,并正在进行为移动和 Web 场景添加更多内核的工作。

  • 00:05:00 在本节中,演讲者讨论了对 ONNX 运行时 (ORT) 的更新,并提到重点主要放在推理上。然而,在 ORT 培训方面一直有持续的投资,以加速大型模型的培训。最近与 Hugging Face Optimum 的集成导致了几个 Hugging Face 模型的加速。演讲者随后介绍了 Randy,他讨论了一项新功能,该功能允许用户在自定义操作中使用本机 ONNX Runtime 操作。 Randy 解释说,此功能源于客户的要求,即通过利用 ONNX Runtime 强大的矩阵计算功能,使自定义运算符的性能和通用性更高。

  • 00:10:00 在本节中,演讲者讨论了一项新功能,该功能允许客户直接调用本机或运行时运算符而无需构建图形或类似的东西,从而更容易执行矩阵计算功能。向社区提出此功能是因为另一组客户正在处理音频并希望实现语句管理,这意味着他们希望缓存一些过去的输入或输出,将它们与最新的输入组合起来,并向操作员提供组合后的更改输入。这在以前很难实现,但有了新功能,客户可以在 ONNX Runtime 的原生运算符周围添加一个包装器来进行报表管理,从而使他们的生活更轻松并实现他们的目的。社区网站上提供了有关如何使用此功能的示例。

  • 00:15:00 在本节中,ONNX Runtime Mobile 负责人 Scott McKay 讨论了 ONNX Runtime v1.12.0 中添加的新功能。该版本包括对 .NET 6 和多平台应用程序用户界面 (MAUI) 的支持,允许开发人员使用一个共享代码库创建可在 Android、iOS、macOS、Windows 和 Linux 上运行的应用程序。 ONNX Runtime 还包括针对特定平台的执行提供程序,例如 Android 上的神经处理单元和 iOS 上的 Core ML,可以优化模型执行速度和电源效率。 McKay 解释说,开发人员可以使用相同的 C# 绑定跨所有这些框架与 ONNX Runtime 库进行交互,但可能需要一些特定于平台的代码来处理设备屏幕尺寸和处理图像的差异。要将 ONNX Runtime 添加到 .NET 6 项目中,开发人员可以使用 microsoft.ml.onnxruntime 包和 microsoft.ml.onnxruntime.managed 包,它们提供用于执行模型的 C++ 实现和用于与本机交互的 C# 绑定图书馆。

  • 00:20:00 在本节中,演讲者讨论了用户学习如何使用新库的示例的可用性。有一个 Github 存储库,其中有一个示例 Xamarin 应用程序来演示新版本的功能。此外,该团队将更新该应用程序以包含一个设计相似的 Maui 应用程序。最后,观众表示对深入教程感兴趣,因为新的 Maui 支持将非常有用,并且示例会非常出色。下面的演讲者解释了 ONNX 运行时团队可扩展性背后的概念,并提供了执行提供程序的更新。本节的更新侧重于通过执行提供程序接口与硬件集成。在此版本中,该团队专注于推理工作负载,并与英伟达、英特尔和高通等供应商合作,取得了许多改进。一项改进是共享执行上下文内存的选项,可减少使用 TensorRT 访问多个子图的开销。另一个优化与引擎缓存支持有关,其中提前构建引擎可以减少在推理时重建引擎的时间。

  • 00:25:00 在本节中,讨论了 v1.12.0 ONNX Runtime 的发布审查,特别是称为 Snappy 的执行提供程序,它代表高通公司的 Snapdragon 神经处理引擎。这是 Qualcomm 的运行时,用于加速移动 Snapdragon SOC 上的 AI 工作负载。对 Snappy 的支持是全新的,并在上个月的 Microsoft Build 大会上宣布。除了对 Snappy 的支持,英特尔还开始构建 Python 包,这些包托管在 PyPI 上,带有启用了 OpenVINO 的 ONNX Runtime。这使开发人员更容易设置并更好地支持具有动态输入形状的模型。发行说明中还提供了文档和示例的链接。

  • 00:30:00 在本节中,Microsoft 的首席软件工程师 Dmitry Smith 讨论了 ONNX Runtime 1.12.0 版中的性能改进。客户已与 Microsoft 联系,要求降低 CPU 延迟和推理使用率,这促使了改进。该团队专注于减少推理期间的内存分配并消除不必要的日志记录,并对代码编写方式进行了更改。这些改进导致某些情况下的延迟减少了两倍或更多,并且计划在未来的版本中进一步改进,例如增强缓存局部性和线程池利用率。
 

v1.13 ONNX 运行时 - 发布回顾



v1.13 ONNX 运行时 - 发布回顾

最近发布了 ONNX 运行时 1.13 版,其中包含安全补丁、错误修复和性能增强。该更新侧重于优化用于 GPU 量化的 Transformer 模型,并增加了对与设备无关并支持 150 多个运算符的直接 ML 执行提供程序的支持。此外,该版本还包括对 ORT 移动基础设施的更新,以兼容新的 EPS,例如 XNN 包。还讨论了使用量化来提高基于 Transformer 的模型的性能,优化 CUDA 执行提供程序以运行量化的 BERT 模型,并使用量化的感知训练来最大限度地提高准确性,同时优化 ONNX 运行时执行引擎。

  • 00:00:00 在本节中,演讲者讨论了最近发布的 ONNX 运行时 1.13 版,其中包括安全补丁、错误修复和性能改进。该更新的重点是优化用于 GPU 量化的 Transformer 模型,并增加了对直接 ML 执行提供程序的支持。后者是一种机器学习 API,支持 150 多个不同的运算符并且与设备无关。演讲者还提到了新的 CAN EP 执行提供程序,这是由华为提供的,用于支持他们的 Ascend 310 硬件。此外,还对 ORT 移动基础设施进行了更新,这允许与新的 EPS(例如 XNN 包)兼容。

  • 00:05:00 在本节中,演讲者讨论了 ONNX 运行时版本 v1.13 以及它如何与支持最高 DirectX 12 的任何 GPU 一起工作,从而更轻松地针对 Windows 机器进行优化。他们还讨论了 1.12 版中的新运算符和 ONNX 偏移量的更新。演讲者重点介绍了新版本如何扩展对不同模型架构的支持,以便更轻松地在 ONNX 运行时中利用执行提供程序。他们还讨论了新的执行提供程序 Excellent Impact,以及它如何填补手写内核不可用的移动设备上的性能差距。该功能目前已为 Android 启用,但该团队希望在下一个版本中添加对 iOS 和 Xamarin 或 Maui 版本的支持。最后,他们讨论了该版本中称为 BERT 模型量化优化的新功能。

  • 00:10:00 在本节中,演讲者讨论了使用量化来提高 BERT 等基于 Transformer 的模型的性能。他们解释了他们如何优化 CUDA 执行提供程序以运行量化的 BERT 模型,以及如何使用量化感知训练来最大限度地提高准确性,同时优化 ONNX 运行时执行引擎。演讲者提供了如何使用 ONNX 运行时中可用的工具进行 BERT 模型量化感知训练和导出模型以进行进一步优化的示例。通过更好地支持量化感知训练,ONNX 运行时可以提供进一步的性能优化,同时保持最大的准确性。他们提到,在用户按照示例导出模型后,新版 ONNX 运行时中提供的离线工具可以优化模型以获得更快的速度。
原因: