问题标签 [windows-machine-learning]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
windows - 游戏中 NPC 的机器学习:Windows ML 还是 DirectML?
有时我读到使用 Windows ML 和/或 DirectML 可以改善 NPC 在游戏中的行为。看起来这两种 API 都合适,但哪一种更合适呢?还是并行使用不同的任务是最好的方法?如果其中一个更适合基于机器学习的 NPC,为什么它比另一个 API 更好?
c++ - 如何在 Windows ML 示例中使用 GPU
我正在尝试调整本教程以使用我自己的神经网络和图像。我可以在我的 CPU 上做到这一点,但我无法使用未更改的教程或我的改编教程来使用我的 GPU。根据系统信息,我有一个“NVIDIA Quadro P2200”,据我所知,我不需要在任何地方指定它。相反,似乎我需要做的就是替换:
和:
当我这样做时,我得到一个例外:
在构造第二个参数后,这会变成:
winrt::hresult_error
进入check_hresult(...)
队列后立即抛出A。我认为这意味着bindings
在某种程度上是无效的......但是(a)我不确定并且(b)我不知道该怎么做才能使它有效。帮助?
编辑:我现在可以让 MS 样本工作,但不是我的适应。当我使用Netron查看 MS 示例 .onnx 文件时,输入和输出节点具有合理的名称,并且报告的张量大小也是合理的。在我尝试使用的模型上,输入和输出节点都有“:0”作为它们名称的最后一部分,并且张量大小有一个“未知”大小,例如输入大小报告为“unk_123 x 3 x 224 x 224"。这些中的任何一个都会产生任何不兼容性吗?网络是提供给我的,所以我想在要求之前了解是否需要更改...
windows-machine-learning - WinMLRunner:从 ONNX 模型中提取有序特征
使用 WinMLRunner,我传入了一个 ONNX 模型(我认为使用 Netron 来查看它)。然后是一个图像,程序在 cmd 中运行,它显示了以下内容:
如果可以将模型特征导出到列表中,则可以使用索引来查看 WinML 的排名。如果没有提取功能,WinMLRunning可以作为一个很好的 rng util ;)
c# - C# 中 WPF 的 WinML 和 OnnxRuntime 之间的区别
要将训练有素的 Onnx 模型与 WPF .Net Core 3.1 应用程序打包在一起,我想知道这两种方法是否有区别:Microsoft.ML.OnnxRuntime 和 Microsoft.AI.MachineLearning (WinML)?OnnxRuntime 似乎更容易用 C# 实现,而 WinML 的桌面应用程序示例使用 C++。
使用 OnnxRuntime 为公共用户部署 Onnx 模型有什么缺点吗?或者它是否需要特定的推理环境?
如果它们本质上是相同的,为什么微软需要维护两种不同的方法?
onnxruntime - WinML 到任何 Onnxruntime EP
是否可以通过 WinML API 调用任何 ONNX 运行时执行提供程序?我能够通过 WinML 运行自定义 DML,但无法找到 WinML 到 onnxruntime EP 的步骤。
c# - 从 C# 获取指向 Windows.AI.MachineLearning.TensorFloat 中数据的指针
我想TensorFloat
在我的 C# .NET Core 5.0 应用程序中获得指向 a 背后数据的指针。我首先声明IMemoryBufferByteAccess
:
然后,在推理之后,我尝试如下使用它:
这导致了一个System.InvalidCastException: 'Invalid cast from 'WinRT.IInspectable' to 'IMemoryBufferByteAccess'.'
令人惊讶的结果,因为Windows.Media和Windows.Graphics的方法完全相同。Windows.Foundation.IMemoryBufferReference的文档甚至指出:
相同的对象标识还必须实现 COM 接口 IMemoryBufferByteAccess。客户端通过 QueryInterface 从 IMemoryBufferReference 对象中检索 IMemoryBufferByteAccess 接口指针。
我错过了什么?
hololens - 可以选择 DNN AI 核心在 HoloLens 2 上进行模型评估吗?
谁能告诉我是否可以直接选择 DNN AI 核心在 HoloLens 2 上进行神经网络评估。
我在此处的GitHub 存储库中阅读了有关 HPU 的信息,其中包括 DNN AI 核心。但是在文档中列出了只能使用 CPU 和 GPU 的设备。
c++ - 如何将 cudaArray 提供给 Windows-Machine-Learning 推理引擎?
我正在尝试为实时图像处理软件开发一个支持 ML 的插件,该插件cudaArray_t
在 GPU 上提供图像数据,但由于该软件将我锁定在较旧的 CUDA 版本中,我想使用 DirectML(该软件无论如何都是Windows)。
出于延迟原因,我不想做任何不必要的 GPU-CPU-GPU 往返。为此,我认为我需要将 CUDA 数据映射到 D3D12 资源,然后可用于创建输入和输出张量以绑定到模型。我找到了一个示例,该示例使用 CUDA外部资源互操作性API 将 a 映射cudaArray_t
到我试图作为代码基础的ID3D12Resource
此处。由于我不需要渲染任何东西,我认为我可以简单地创建堆和资源,然后将传入cudaArray_t
的内容复制到互操作cudaArray_t
中,如下所示,而无需创建任何类型的命令队列。请注意,缺少的代码与上面链接的 github 存储库中的代码相同,因此为了简洁起见,我将其省略了。
这种方法不起作用,但我不确定如何调试它,因为我通常是 Direct3D 编程和 GPU 编程的新手。我正在使用官方 Direct3D 12 文档作为参考,但它有点压倒性,因此非常感谢这里应该修复的一些方向 :) 我在想我需要使用信号量进行某种同步,但我不确定在不创建某种命令队列的情况下是否可行。
最后,如果映射到 aID3D12Resource
可行,我假设可以使用ITensorStaticsNative 接口创建一个张量以绑定到LearningModel的输出或输入。
windows-machine-learning - 访问 TensorFloat 数据
我正在使用 Windows-Machine-Learning 将我的转换VideoFrame
为TensorFloat
_input
(形状:1,3,256,192;RGB 通道 + 图像),将其加载到我的 onnx 模型中并作为_output
另一个TensorFloat
对象接收(形状:1,17,64,48;检测到 17对象+图像)。
现在我的问题是:如果我想访问它TensorFloat
_output
,目前我知道的唯一方法是使用_output.data.GetAsVectorView
它,它给了我一个长的 1d Vector 并尝试重新排序并找出其中的尺寸是如何排序的?我是否可以遵循明确的规则来理解 4D 张量是如何在 1D 向量中编码的?或者,我可以以某种方式直接从_output
TensorFloat
对象访问不同的维度,因为使用“形状”显示它是一个多维数组?