【发布时间】:2021-08-16 04:31:56
【问题描述】:
我正在将定制的 Pytorch 模型转换为 ONNX。但是,在使用 ONNXRuntime 加载它时,我遇到了如下错误:
onnxruntime.capi.onnxruntime_pybind11_state.RuntimeException: [ONNXRuntimeError] : 6 : RUNTIME_EXCEPTION : Exception during initialization: ...onnxruntime/core/providers/cpu/tensor/transpose.h:46 onnxruntime::TransposeBase::TransposeBase(const onnxruntime::OpKernelInfo &) v >= 0 && static_cast<uint64_t>(v) <= std::numeric_limits<size_t>::max() was false.
我已经与onnx.checker.check_model() 核对过,完全没问题。
我也尝试在forward()函数中将transpose()替换为permute(),但错误仍然存在。
有人知道这个错误吗?
环境:
Python 3.7
Pytorch 1.9.0
CUDA 10.2
ONNX 1.10.1
ONNXRuntime 1.8.1
OS Ubuntu 18.04
【问题讨论】:
-
可以分享一下 ONNX 文件吗?
-
@SergiiDymchenko 在这里 (onnx file)。提前谢谢你。
-
节点
Transpose_52的perm属性是 [-1, 0, 1] 尽管 ONNX 运行时要求它们都应该是正数:github.com/microsoft/onnxruntime/blob/… -
哦。万分感谢。我原以为我们只需要从
transpose()更改为permute()而不需要关注那些索引。现在说得通了。谢谢@dkim。 -
@dkim 你能在回答的期限内发帖以便我接受吗?
标签: pytorch onnx onnxruntime