问题标签 [onnx]
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.
python - TensorFlow 到 ONNX 的转换
我目前正在尝试将使用本教程(https://github.com/thtrieu/darkflow)创建的已保存(和工作).pb 文件转换为 onnx 文件。我目前正在使用winML工具,但是转换的结果根本不起作用(输入参数错误+整个架构不正确)。
我的输入参数(在自述文件的最底部指定):输入:0
输出节点:输出:0
我想在 HoloLens 上运行的 UWP 应用程序中使用转换后的模型。
是否有人已经成功将此模型(或任何 TensorFlow 模型)转换为 ONNX?如果是这样,我会非常感谢任何链接/教程/帮助!
如果您需要更多信息,请告诉我。我对这样的论坛非常陌生。对于那个很抱歉。
沃尔特
nlp - 您如何生成 pytorch bert 预训练神经网络的 ONNX 表示?
我正在尝试为pytorch-pretrained-bert run_classifier.py 示例生成一个 ONNX 文件。
在这种情况下,我根据主 README.md 使用以下参数运行它:
在第 552 行修改/添加了以下代码:
dummy_input 应该对应于 bert 预训练模型输入。我认为 1 的 sample_batch_size 似乎适合我的需要。
一些人建议参数应该与模型 forward() 方法的参数匹配。在这种情况下:
在这种情况下,我认为排名是:
所以有效的调用是:
不幸的是,这会产生一个错误:
这似乎是相当简单的事情。建议赞赏!
pytorch - 将预训练的 pytorch 模型转移到 onnx
我正在尝试将 pytorch 模型转换为 ONNX,以便稍后将其用于 TensorRT。我遵循以下教程https://pytorch.org/tutorials/advanced/super_resolution_with_caffe2.html,但我的内核一直死机。
这是我实现的代码。
onnx - ONNXRuntime 问题:输出:Y [ShapeInferenceError] 源维数和目标维数不匹配
我正在尝试使用辅助 API 构建 onnx 图。我开始的最简单的例子如下。一个 MatMul 运算,它采用两个 [1] 矩阵输入(X 和 W),并产生 [1] 矩阵输出 Y。
当我运行它时,它会这样抱怨:
我被困在这里几个小时。有人可以给我任何帮助吗?
pytorch - PyTorch VAE 无法转换为 onnx
我正在尝试将 PyTorch VAE 转换为 onnx,但我得到:torch.onnx.symbolic.normal does not exist
问题似乎源于一个reparametrize()
函数:
我也试过:
这产生了错误:
和
这产生了错误:
我正在使用cuda
.
任何想法表示赞赏。也许我需要z
为 onnx 以不同的方式处理 /latent ?
注意:逐步检查,我可以看到它正在寻找RandomNormal()
,torch.randn()
这应该是正确的。但是当时我真的无法访问这些论点,那么我该如何解决呢?
python - ONNX 何时决定包含 Gather 操作?
我想这个问题很模糊,但我有一个刚刚构建的 PyTorch 模型,它无法转换为 CoreML,因为 ONNX 添加了Gather
操作。完整的模型实际上是两个独立模型的合并,旨在通过尽可能长时间地在 GPU/Metal 上进行处理来提高性能。
构建这个“复合”模型需要我创建几个切片,形式为x = y[:, 0]
,我想知道这些是否可能是Gather
操作的原因?
我确实意识到我可以创建一个自定义层,但是我刚刚经历了 CoreML 中自定义层的可怕惨败,这浪费了很多很多时间,而且让我无处可去,所以我试图找到另一种解决问题的方法.
如果找到绕过这些切片的方法会阻止 ONNX 添加Gather
,我愿意寻找解决方案。
任何想法表示赞赏。
ios - Espresso ANERuntimeEngine 程序推理溢出
我有两个 CoreML 模型。一个工作正常,另一个生成此错误消息:
两种模型都非常相似(Conv2D 模型)。使用相同的脚本和版本的 PyTorch、ONNX 和 onnx-coreml 生成。有效的模型有 1036 层,产生错误的模型有 599 层。它们都使用标准层——Conv2D、BatchNorm、ReLU、MaxPool 和 Upsample(没有自定义层,也没有功能或 Numpy 的东西)。它们每层都使用相对相同数量的特征。它们基本上遵循相同的结构,除了错误模型在开始时跳过了一个 maxpool 层(因此输出分辨率更高)。
它们都以 256x256 彩色图像作为输入,并以(工作)64x64 和(错误)128x128 像素输出 16 个通道。
该应用程序不会崩溃,但会为错误模型提供垃圾结果。
两种模型都以其原生格式 (PyTorch) 进行训练、评估等。
我不知道Code=5 "processRequest:qos:qIndex:error:: 0x3: Program Inference overflow"
错误是什么,并且谷歌搜索没有产生任何有效的东西,因为我收集“Espresso”和“ANERuntimeEngine”都是私有的 Apple 库。
这个错误信息告诉我什么?我该如何解决?
我可以通过不在仿生芯片上而是在 CPU/GPU 上运行模型来避免此错误消息吗?
任何帮助表示赞赏,谢谢。
c# - onnxruntime - 导出 scikit RandomForestClassifier 导入失败
我使用 WinMLTools 将 scikit RandomForestClassifier 模型导出到 ONNX。当我尝试使用 ONNXRuntime(在 C# 上)导入文件时。我收到以下错误:
这发生在第二个输出名称 (="probabilities") 传递给:
结果是地址为 0x000000000 的 IntPtr。
输入参数和第一个输出参数按计划进行。
模型的输出是一个浮点数组,所以我不明白可能是什么问题。
完整的调用堆栈:
c# - 使用通用接口处理 ONNX/ML.NET 模型
我在这里遇到了与 ML.NET 相关的问题,希望有人可以帮助我。
我正在开发一个(.NET 核心)应用程序,它使用在编译时输入未知的 ONNX 模型。到目前为止我所做的:
我能够在运行时编译包含输入类定义的程序集并加载此定义:
此外,我还可以使用反射来训练具有动态创建的 Inputtype 的模型:
但我现在无法做出预测,因为我不知道如何调用 PredictionEngine。我能够获得该 CreatePredictionEngine 方法的通用版本,但现在不知道如何将该返回对象转换为 PredictionEngine 并最终调用 Predict 方法:
predictionEngine
在这种情况下是 Type 对象,但我需要将其转换为类似PredictionEngine<genericInputClass, GenericPrediction>
, whilegenericInputClass
是来自该动态创建的程序集的类,并且GenericPrediction
是一个简单的类,我在编译时知道一个输出。
所以缺少的是:
有没有人有类似的问题或有任何其他提示?
我可能错过了一些行,因为我复制/粘贴并很快简化了它。万一有什么遗漏,我稍后会提供。
编辑:我构建了一个最小的例子来展示基本问题。正如评论中提到的,dynamic
由于 ML.NET 方法,这是不可能的。
问候斯文