直接使用Direct ML训练和部署机器学习模型
目录
- 引言
- 什么是Direct ML?
- Direct ML的优势
- Direct ML在TensorFlow中的应用
- Direct ML在PyTorch中的应用
- 将模型转换为Onyx格式
- 使用Windows ML进行推理
- 示例:图像分类和目标检测
- 使用WinML Runner测试模型
- 结论
直接ML:使用硬件加速的AI训练后端 🚀
引言
大家好,我是Adele,微软的Windows AI平台团队的项目经理。今天,我将向大家展示如何使用Direct ML作为基于硬件加速的AI训练后端,在Windows和Windows子系统WSL2上与TensorFlow和PyTorch兼容。本视频的目的是让您了解Direct ML的优势,并教您如何开始训练自己的模型。我还将介绍如何使用Direct ML在任何Windows设备上加速推理过程。在视频中,我会分享很多资源,以便您跟上并与Direct ML团队保持联系。我提到的所有资源都在视频描述中提供了链接。
什么是Direct ML?
Direct ML是嵌入在Windows中的一系列紧密集成的技术之一,我们称之为Windows AI平台。每一层都有特定的目的,共同为您提供高性能和易于使用的训练和推理开发平台。Windows AI平台旨在让在Windows应用程序中训练和推理AI模型的工作更加容易。通过提供一个跨越所有Windows设备范围的平台,我们能够减少使用硬件特定库、多个推理库等所带来的负担和成本。
Direct ML的优势
Direct ML具有以下优势,使其成为AI模型训练的理想选择:
-
跨Windows和WSL2环境 - Direct ML可同时在Windows和WSL2上工作,您可以选择使用最适合您的环境。
-
应用程序一致性 - 通过与AMD、英特尔和NVIDIA的紧密共同工程关系,Windows AI平台提供了计算一致性,确保您的训练脚本在各种硬件上表现一致且可靠。这在支持的Windows设备中有许多不同的GPU和硬件配置非常重要。
-
性能优化 - Direct ML是针对AI模型训练的优化后端。由于大多数着色器位于Direct ML库中,并非嵌入在框架中,因此我们可以在全局范围内进行优化。此外,根据您所见,TensorFlow和PyTorch软件包的二进制大小都较小,从而使应用程序更加精简。
-
简单安装 - 使用Direct ML的后端只需要简单的pip install命令,非常易于安装和配置。
Direct ML在TensorFlow中的应用
在TensorFlow中使用Direct ML非常简单。您只需在Python环境中运行pip install tensorflow direct ml命令,然后无需进行其他代码更改。接下来,让我们来了解一下如何使用Direct ML在TensorFlow中进行模型训练。
步骤1:设置环境
为了使用TensorFlow Direct ML,您需要在Python环境中运行以下命令:pip install tensorflow direct ml。此外,还需要安装其他一些辅助库,如scikit-learn和numpy,这些库在本教程中需要使用。
步骤2:下载数据和配置
在训练模型之前,您需要下载数据集并进行一些必要的配置。在这个教程中,我们将使用一个视觉Transformer的例子来进行训练。您可以在Direct ML的GitHub存储库中找到此教程的源代码,并按照其中的说明进行下载和配置。
步骤3:构建和训练模型
在TensorFlow中使用Direct ML时,定义和训练模型的步骤与传统的TensorFlow脚本相同。您可以按照教程中的说明来构建和训练模型。由于我们使用的是Direct ML后端,因此不需要进行任何或仅需进行少量更改。具体的更改说明在教程中有详细说明。
步骤4:使用Direct ML进行推理
训练完成后,您可以使用Direct ML进行模型推理。使用Windows ML和Direct ML,您可以将模型集成到应用程序中,并获得最佳的推理性能。我们在Windows ML的GitHub存储库中提供了各种推理示例,包括图像分类和目标检测等。
Direct ML在PyTorch中的应用
与TensorFlow类似,使用Direct ML在PyTorch中进行模型训练也非常简单。您只需按照以下步骤操作即可。
步骤1:设置环境
为了使用PyTorch Direct ML,您首先需要安装torchvision库,然后卸载torch库,最后安装pytorch direct ml库。
步骤2:构建和训练模型
构建和训练模型的步骤与传统的PyTorch脚本相同。您可以使用我们在GitHub存储库中提供的教程和示例来构建和训练模型。在使用Direct ML时,您只需在代码中将设备指定为"dml",无需进行其他更改。
步骤3:使用Direct ML进行推理
完成训练后,您可以使用Direct ML在Windows ML中进行模型推理。使用Windows ML和Direct ML,您可以轻松地将模型集成到应用程序中,并实现高性能推理。在Windows Machine Learning存储库中,您可以找到与PyTorch模型推理相关的示例代码。按照示例说明将模型转换为Onyx格式,并使用Windows ML进行推理。
将模型转换为Onyx格式
在使用Windows ML进行推理之前,首先需要将训练好的模型转换为Onyx格式。对于PyTorch,您可以使用内置函数进行转换。至于TensorFlow,我们建议使用Onyx ML Tools进行转换。Onyx ML Tools是一个强大的工具,可以将各种机器学习框架(如TensorFlow、PyTorch、scikit-learn和keras)的模型转换为Onyx标准格式。您可以通过pip install onyx ml tools命令进行安装,并在Onyx存储库中找到更多文档和示例。
使用Windows ML进行推理
完成模型转换为Onyx格式后,您可以使用Windows ML进行模型推理。Windows ML是一个API,可轻松地将Onyx机器学习模型集成到应用程序中。在使用Windows ML之前,请确保安装了Onyx运行时。Windows ML依赖于Onyx运行时,并利用Windows设备的全部计算能力,以实现最佳性能。
示例:图像分类和目标检测
我们在Windows ML的GitHub存储库中提供了一系列示例程序,涵盖图像分类、目标检测和表格数据分析等应用场景。这些示例包含了使用Direct ML和Windows ML进行推理的完整代码和说明。您可以根据自己的需求选择相应的示例并按照其中的说明进行操作。
使用WinML Runner测试模型
为了方便测试模型,我们提供了WinML Runner工具,它是一个独立的命令行工具,可用于加载、绑定和评估模型。您可以使用WinML Runner根据自己的需求进行模型迭代和测试,而无需构建整个应用程序。在Windows Machine Learning的GitHub存储库中,您可以下载WinML Runner工具,并找到其详细文档。
结论
感谢您观看今天的视频!希望通过该视频,您对Direct ML作为硬件加速AI训练后端的优势有了更好的理解,并能够开始训练自己的模型。我们非常希望能与您保持联系,请使用我们的GitHub存储库提供您的反馈和问题。此外,订阅我们的博客,以获取有关Windows AI平台的最新功能和技术文档。现在就开始使用Direct ML吧!在pip.org上,您可以找到TensorFlow Direct ML和PyTorch Direct ML。
亮点
- Direct ML是Windows AI平台中的一部分,它为AI训练提供了硬件加速的后端。
- Direct ML可以在Windows和WSL2中使用,为用户提供了选择最适合其环境的灵活性。
- Windows AI平台与硬件厂商如AMD、英特尔和NVIDIA进行紧密合作,以确保在不同硬件设备上实现一致性和稳定性。
- Direct ML的优化体现在其小的二进制大小和性能改进方面,使得应用程序更加精简和高效。
- 使用Direct ML进行模型训练只需简单的pip install命令,无需复杂的配置和修改代码。
- Windows ML是将Onyx机器学习模型集成到应用程序中的API,可实现高性能的模型推理。
- 使用Onyx ML Tools和torchvision等工具,您可以轻松将模型转换为Onyx格式并在Windows ML中进行推理。
- Windows ML提供了丰富的示例,包括图像分类和目标检测等,以帮助您快速上手和调试模型。
- WinML Runner工具是一个方便的测试工具,可用于加载、绑定和评估模型,用于快速迭代和测试。
常见问题解答
Q:Direct ML适用于哪些平台?
A:Direct ML可适用于Windows和WSL2平台,提供硬件加速的AI训练和推理后端。
Q:TensorFlow和PyTorch是否支持Direct ML?
A:是的,您可以使用Direct ML作为TensorFlow和PyTorch的后端来训练和推理模型。
Q:如何将模型转换为Onyx格式?
A:对于PyTorch,您可以使用内置函数进行模型转换。而对于TensorFlow等其他框架,您可以使用Onyx ML Tools进行转换。
Q:可以在哪些应用场景中使用Direct ML和Windows ML?
A:Direct ML和Windows ML适用于各种应用场景,包括图像分类、目标检测和表格数据分析等。
Q: 如何评估模型的性能?
A: 您可以使用WinML Runner工具来评估模型的性能,该工具提供了相关指标如评估时间和内存使用量。
资源
阅读完本文后,您将对Direct ML作为硬件加速的AI训练后端有更深入的了解。无论是在TensorFlow还是PyTorch中,使用Direct ML进行模型训练和推理都是非常方便的。希望您能尝试使用Direct ML在Windows设备上进行AI开发,并享受其带来的高性能和易用性。
如果您对本文有任何疑问或反馈,请随时提出。感谢您的阅读!
😊