RuntimeError: Failed to export an ONNX attribute ‘onnx::Gather‘, since it‘s not constant, please try

onnx模型可视化以及pytorch算子与onnx节点对应关系 pytorch模型转成onnx时会产生很多意想不到的错误,然而对onnx模型进行Debug是非常麻烦的事,往往采用可视化onnx模型然后找到报错节点之后确定报错节点在源码中的错误位置的方法进行Debug,然而将可视化的onnx图与源代码对应起来可不是一件简单的事,本文主要记录pytorch算子与可视化的onnx节点的对应关系以方便对onnx节点在源代码中进行溯源,本文中的onnx模型使用Netron软件进行可视化,记录会随时补充。 1.onnx中Gather节点对应pytorch中对tensor的索引操作 阅读详情

最近在把pytorch模型转换onnx格式模型的时候,遇到了如下错误:

RuntimeError: Failed to export an ONNX attribute 'onnx::Gather', since it's not constant, please try to make things (e.g., kernel size) static if possible

在网上查了下,这个连接是跟我的问题相关的:

https://github.com/onnx/tutorials/issues/137

修改了下pytorch的版本,还是未能解决,我的torch版本已经是比较高的了1.7.0.

后来仔细看这个连接的时候,发现下面这段话:

I think it's a general problem when the input to the functional layer is dynamic.
I had a situation where functional avg_pool3d that depended on the shape of the previous layer's outputs. One has to either make the kernel constant or switch to non-functional pytorch's api.

将代码中的avg_poo2d替换成了adaptive_avg_pool2d,再从新导出,就可以正常导出onnx模型了。

深入解析ONNXRuntime中的Gather算子:从原理到CUDA实现 本文深入解析了ONNXRuntime中的Gather算子,从基础概念到CUDA实现细节。Gather算子作为深度学习中的核心索引操作,在自然语言处理、目标检测等场景中广泛应用。文章详细介绍了ONNXRuntime中Gather算子的多后端支持架构、CUDA内核优化策略(如fast_divmod算法)以及工程实践中的性能调优技巧,帮助开发者高效实现张量索引操作。 阅读详情

相关推荐

【ONNX】yolov5 onnx修改

学习ONNX转换笔记。

qq_30340349的博客 3417

pytorch转onnx报错: Failed to export an ONNX attribute ‘onnx::Gather’, since it’s not constant

python转onnx报错 Failed to export an ONNX attribute ‘onnx::Gather’, since it’s not constant, please try to make things (e.g., kernel size) static if possible

1354

从Simulink仿真到DSP28335真机部署:PID闭环控制快速移植指南

本文详细介绍了如何将Simulink中的PID闭环控制算法快速移植到DSP28335嵌入式平台。通过模型与代码映射、浮点与定点数选择、定时器中断配置、物理输出实现以及调试技巧五个关键步骤,帮助工程师高效完成从仿真到真机部署的全过程,特别适合需要实现精确控制的嵌入式开发者。

weixin_42521843的博客 363

关于pytorch转onnx经常出现的问题

关于pytorch转onnx经常出现的问题

Mr_health的博客 2813

IC设计新手必看:如何正确使用去耦电容(decap)避免电源噪声?

本文深入探讨了IC设计中去耦电容(decap)的应用技巧,从核心原理到布局实现,帮助新手工程师有效抑制电源噪声。文章详细解析了MIM、MOM等电容类型的特性与选择策略,并提供了先进的布局技巧和验证方法,特别适用于28nm以下先进工艺的电路设计挑战。

weixin_30555125的博客 114

QT6与QT5安装全攻略:从下载到环境配置一站式指南

本文提供了一份详尽的QT6与QT5安装教程,涵盖从版本选择、在线安装器使用到环境变量配置的全过程。针对新手常见痛点,重点对比了QT6与QT5的安装差异,并给出了MinGW与MSVC编译器的选择建议,旨在帮助开发者快速搭建稳定可用的QT开发环境,避免常见错误。

weixin_29216353的博客 309

菜鸟落泪:Failed to export an ONNX attribute ‘onnx::Gather‘ 报错

一、前言 最近在转 mobilenet v3 (pytorch -> onnx)的时候,遇见报错: RuntimeError: Failed to export an ONNX attribute 'onnx::Gather', since it's not constant, please try to make things (e.g., kernel size) static if possible 网上搜了一下,发现要么很麻烦,要么不适用,看报错内容,大致就是说,有个op的属性值不是常量。

tangshopping的博客 5089

Dify使用教程(创建应用)

Dify的安装部署我已经写过了,简单的模型配置我也在前面进行了讲解,今天我们主要来讲讲如何使用Dify。

wal1314520的博客 1万+

onnx中的常见操作

1. shape 取一个tensor的shape torch.tensor([[2, 3, 4], [3,4,5]]) # shape操作输出 (2, 3) 2. gather 一般用来取shape的某一个维度,例如 torch.tensor([2, 256, 768]).gather(index=0) # 输出2 torch.tensor([2, 256, 768]).gather(index=1) # 输出256 3. Unsqueeze 扩充维度 4. concat 将list of tens

Abraham Ben 4968

Altium Concord Pro 的应用范围,安装,和使用范围

Altium Concord Pro 的应用范围,安装,和使用范围。保证满足两者软件的最低安装要求。 Altium Concord Pro 是配合Digapcb,和MCAD,Altium 和相应机械设计软件的基础和交换桥梁

hanzhaos的博客 1119

(9-2)离线强化学习:离线强化学习的主流方法

本文介绍了三种离线强化学习的主流约束策略优化方法:BCQ、CQL和Fisher-BRC,并通过CartPole环境进行性能比较。BCQ利用生成模型约束动作选择并引入扰动网络;CQL通过正则化Q值抑制对未见状态-动作对的高估;Fisher-BRC使用Fisher散度正则化策略分布。实验结果表明,三种方法各有优势,其中CQL表现最为稳定。文章还指出,为获得更好的性能,需要更大的数据集和更长的训练轮次。这些方法通过限制策略优化范围,有效提高了离线强化学习的稳定性和泛化能力。

码农三叔 1536

onnxruntime 中的 Gather 算子

上一篇文章中介绍了 Division by Invariant Integers using Multiplication 的原理,很多框架均才用该算法优化除法运算。onnxruntime 是已知实现中最为简洁的,因此本文结合 onnxruntime 的 Gather 实现进行介绍。 Gather 算子是一个索引类算子,kernel 中每个线程计算偏移时使用 fast_divmod 避免除法运算。 注意:ONNX 中的 Gather 功能与 numpy.take 相同

yiran103的专栏 4035

TC3XX - MCAL知识点(二十):CAN MCAL配置及代码实战(CAN/CANFD/extenen CAN)

CAN驱动程序负责提供AUTOSAR指定的标准CAN通信服务。M_CAN单元是底层的CAN硬件单元,它由共享消息RAM(在AUTOSAR中称为硬件对象)的节点(在AUTOSAR中称为控制器)组成。CAN驱动提供以下服务:·初始化CAN控制器以控制CAN控制器的行为和状态·设置和修改CAN控制器的波特率配置·支持CAN和CAN FD帧的收发·在轮询和中断模式下,成功的帧传输通知,专用和FIFO消息的接收和总线事件通知·数据接收使用接收FIFO功能·假装网络模式处理·支持多读/写周期功能。

梦想技术家 3938

4.6 构建onnx结构模型-Gather

构建onnx方式通常有两种:1、通过代码转换成onnx结构,比如pytorch —> onnx2、通过onnx 自定义结点,图,生成onnx结构本文主要是简单学习和使用两种不同onnx结构,下面以gather结点进行分析。

weixin_45063703的博客 1129

FineReport 动态列切换统计维度

目标: 自己选择统计维度进行数据的汇总统计数据集参数实现动态列。

Davina_yu的博客 1053

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

pth 转 onnx 时出现的 gather、unsqueeze 等算子

带动态输入的view或者reshape转成onnx会有shape/gather/unsqueeze/concat算子。 替换成 flatten 即可。 def forward(self, inputs): x1 = self.conv1(inputs) x2 = self.conv2(x1) # 带动态输入的 view 或者 reshape 转成 onnx 会有shape/gather/unsqueeze/concat算子。 ...

blueblood7的专栏 1万+

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

RuntimeError: Failed to export an ONNX attribute ‘onnx::Cast‘

RuntimeError: Failed to export an ONNX attribute 'onnx::Cast'

weixin_44430537的博客 685

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

【pytorch】转onnx报错Failed to export an ONNX attribute

pytorch转onnx报错 RuntimeError: Failed to export an ONNX attribute, since it’s not constant, please try to make things (e.g., kernel size) static if possible 解决方案 将pytorch转到1.0.1版本解决了。

怡宝2号 1015

4.6.2 构建onnx结构模型-特殊情况下的Gather

构建onnx方式通常有两种:1、通过代码转换成onnx结构,比如pytorch —> onnx2、通过onnx 自定义结点,图,生成onnx结构本文主要是简单学习和使用两种不同onnx结构,下面以gather结点进行分析。

weixin_45063703的博客 758

pytorch转onnx以及部分算子对照表

pytorch到onnx的转化,以及部分算子对照表

m0_68784427的博客 4999

onnxruntime报错

onnxruntime报错: Exception during initialization: /onnxruntime_src/onnxruntime/core/providers/cpu/math/element_wise_ops.h:324 void onnxruntime::BroadcastIterator::Init(int64_t, int64_t) axis == 1 || axi...

怡宝2号 1万+

pytorch模型存储—转化为ONNX

本文我们将主要介绍PyTorch中自带的torch.onnx模块。该模块包含将模型导出到ONNX IR格式的函数。这些模型可以被ONNX库加载,然后将它们转换成可在其他深度学习框架上运行的模型。 torch.onnx.export(model, args, f, export_params=True, verbose=False, training=False, input_names=None, output_names=None) 参数: model(torch.nn.Module)-要被导出

Leo_whj的博客 1万+

解决Failed to export an ONNX attribute ‘onnx::Gather‘ 报错

问题 使用CAAttention转换onnx时出现如题错误,原因是AdaptiveAvgPool2d()里面的参数没有常量化。 class CoordAtt(nn.Module): def __init__(self, inp, oup, reduction=32): super(CoordAtt, self).__init__() self.pool_h = nn.AdaptiveAvgPool2d((None, 1)) self.pool_w =

梦坠凡尘 2304

RuntimeError: Failed to export an ONNX attribute, since it‘s not constant, please try to make things

pytorch的onnx经典报错问题!!! RuntimeError: Failed to export an ONNX attribute, since it’s not constant, please try to make things 最近一直在跑代码,然后发现每次配置好环境,总会出现同一个错误!就是令人头晕的onnx问题之一:RuntimeError!????据说这个问题是pytorch 1.1.0的pytorch模型转onnx的bug,还能说啥呢????‍♂️ ONNX是个什么东东??????

qq_38765642的博客 1351

onnx模型显示出问题gather mul cast floor

torch.nn.Upsample函数的问题 使用scale_factor出现 改成size即可

weixin_45648168的博客 746
上一篇: pytorch semantic segmentation using torchvision
下一篇: pytorch导出onnx格式模型时,不固定输入输出维度
GeneralJing
博客等级 码龄15年 17粉丝 89原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值