WinML 仪表板

WinML 仪表板是一种工具,用于查看、编辑、转换和验证 Windows ML 推理引擎的机器学习模型。 该引擎内置于 Windows 10 中,并使用 CPU 和 GPU 硬件优化在 Windows 设备的本地评估经过训练的模型,以实现高性能推理。

获取工具

可以在此处下载 WinML 仪表板,也可按照以下说明从源构建应用。

从源构建

从源构建应用时,需要以下各项:

要求 版本 下载 要检查的命令
Python3 3.4+ 此处 python --version
Yarn 最新 此处 yarn --version
Node.js 最新 此处 node --version
Git 最新 此处 git --version
MSBuild 最新 此处 msbuild -version
Nuget 最新 此处 nuget help

六个先决条件都必须添加到环境路径。 请注意,Visual Studio 2017 安装中将包含 MSBuild 和 Nuget。

构建和运行步骤

要运行 WinML 仪表板,请按照以下步骤进行操作:

  1. 在命令行中,克隆存储库:git clone https://github.com/Microsoft/Windows-Machine-Learning
  2. 在存储库中,输入以下内容以访问正确的文件夹:cd Tools/WinMLDashboard
  3. 运行 git submodule update --init --recursive 以更新 Netron。
  4. 运行 yarn 以下载依赖项。
  5. 然后,运行 yarn electron-prod 构建并启动桌面应用程序,以启动仪表板。

所有可用的仪表板命令都可在 package.json 中查看。

查看和编辑模型

仪表板使用 Netron 来查看机器学习模型。 尽管 WinML 使用 ONNX 格式,但 Netron 查看器支持查看多种不同的框架格式。

很多时候,开发人员可能需要更新某些模型元数据或修改模型输入和输出节点。 该工具支持修改 ONNX 模型的模型属性、元数据和输入/输出节点。

选择 Edit 选项卡(位于正上方,如下面的截图所示),便可查看和编辑面板。 面板中的左侧窗格允许编辑模型输入和输出节点,而右侧窗格允许编辑模型属性。 中心部分显示图形。 目前,仅支持对模型输入/输出节点(而不是内部节点)、模型属性和模型元数据进行编辑。

Edit/View 按钮可从“编辑模式”切换到“仅查看模式”,反之亦然。 “仅查看模式”不允许编辑和启用 Netron 查看器的原生功能,例如查看每个节点的详细信息

查看和编辑模型

转换模型

现今有多种不同的框架可用于训练和评估机器学习模型,这使得应用开发人员难以将模型集成到其产品中。 Windows ML 使用 ONNX 机器学习模型格式,该格式允许从一种框架格式转换为另一种框架格式,使用此仪表板可以轻松地将不同框架中的模型转换为 ONNX。

“转换”选项卡支持从以下源框架转换为 ONNX:

  • Apple Core ML
  • TensorFlow(可转换为 ONNX 的模型子集)
  • Keras
  • Scikit-learn(可转换为 ONNX 的模型子集)
  • Xgboost
  • LibSVM

借助该工具,还可使用综合数据(默认)或 CPU/GPU 上的真实输入数据通过内置的 Windows ML 推理引擎评估模型,从而验证转换后的模型。

转换模型

验证模型

拥有 ONNX 模型后,即可验证转换是否成功发生,以及是否可以在 Windows ML 推理引擎中评估该模型。 这可使用 Run 选项卡完成(请参阅下面的截图)。

可以选择各种选项,例如 CPU(默认)与 GPU、真实输入与综合输入(默认)等。模型评估的结果显示在底部的控制台窗口中。

请注意,仅 Windows 10 2018 年 10 月更新或更高版本的 Windows 10 提供模型验证功能,因为该工具依赖于内置的 Windows ML 推理引擎。

验证模型

调试推理

可以利用 WinML 仪表板的调试功能来详细了解原始数据如何流经模型中的运算符。 也可选择将此类数据可视化,以便进行计算机视觉推理。

若要调试模型,请按照以下步骤进行操作:

  1. 导航到 Edit 选项卡并选择要为其捕获中间数据的运算符。 左侧面板上有一个 Debug 菜单,你可在其中选择要捕获的中间数据的格式。 选项目前为“文本”和“PNG”。 text 将输出文本文件,其中包含此运算符生成的维度、数据类型和原始张量数据。 PNG 会将此类数据格式化为图像文件,这对计算机视觉应用程序很有帮助。

调试模型

  1. 导航到 Run 选项卡并选择要调试的模型。
  2. 对于 Capture 字段,从下拉列表中选择 Debug
  3. 选择要在执行时提供给模型的输入图像或 csv。 请注意,这在捕获调试数据时是必需的。
  4. 选择一个用于导出调试数据的输出文件夹。
  5. 选择 Run。 执行完成后,可以导航到此选定文件夹,以查看调试捕获。

运行模型

也可以使用以下某个选项在 Electron 应用中打开调试视图:

  • 使用 flag --dev-tools 运行;
  • 在应用程序菜单中选择 View -> Toggle Dev Tools
  • Ctrl + Shift + I