极智AI | onnx模型增删改查算子节点方法

本文涉及的产品
视觉智能开放平台,图像资源包5000点
视觉智能开放平台,视频资源包5000点
视觉智能开放平台,分割抠图1万点
简介: 大家好,我是极智视界,本文介绍一下 onnx 模型增、删、改、查算子节点方法。

大家好,我是极智视界,本文介绍一下 onnx 模型增、删、改、查算子节点方法

大家知道,onnx 是 AI 业界用的很多的 中间模型 (应该没人直接把 onnx 作为原始模型用吧),一般的初始训练模型为 pytorchtensorflow,然后再转换为 onnx ,然后 再用作他用,比如拿来部署等。我画了一个示意图:

这个图看着可能会感觉有些疑惑,我来解释一下:首先左边是训练框架,右边是推理框架,总的 flow 应该是 左->右,但我又画了几个回旋镖,这些回旋镖的意思是:训练框架模型之间也有可能需要通过 onnx 进行转换。

当然这里不是主要讲 模型之间的转换,而是讲 有了onnx模型后,怎么对其中的算子节点进行一些自定的操作呢?

下面开始。

假设我们已经有了一个 resnet50.onnx (如果没有,可以很方便的从 pytorch modelzoo 中导入,然后通过 torch.onnx.export 导出)。

import onnx
# 导入resnet50.onnx模型
resnet50_onnx = onnx.load("./resnet50.onnx")
# 获得onnx图
graph = resnet50_onnx.graph
# 获得onnx节点
node = graph.node
### 准备工作已就绪,开干
# 增、删、改、查一起操作
# 比如咱们要对 `算子类型为Add&输出为225的节点` 进行操作
for i in range(len(node)):
    if node[i].op_type == 'Add':
        node_rise = node[i]
        if node_rise.output[0] == '225':
            print(i)  # 169 => 查到这个算子的ID为169
old_node = node[169]  # 定位到刚才检索到的算子
# 新增一个 `Constant` 算子
new_node = onnx.helper.make_node(
    "Constant",
    inputs=[],
    outputs=['225'],
    value=onnx.helper.make_tensor('value', onnx.TensorProto.FLOAT, [4], [1, 1, 1.2, 1.2])
)  
# 删除旧节点
node.remove(old_node)  
# 插入新节点
node.insert(169, new_node)  
# 是不是还少一个修改节点,比方看下面
# node[169].type = 'Conv'   # 将刚才的算子类型改为2D卷积
# 改名称啥的类似
### 保存新模型
# 校验
onnx.checker.check_model(resnet50_onnx)
# 保存
onnx.save(resnet50_onnx,'resnet50_new.onnx')

说一下 onnx.checker.check_model,这个接口是用来校验新生成的 onnx 模型的 graph、node是否正确,比如你修改的算子类型并不在 onnx 的算子库中,则这个接口会抛出类似 onnx.onnx_cpp2py_export.checker.ValidationError: No Op registered for xxx_opname with domain_version of 11 的报错提醒。这个时候你可能有三个选择:(1) 修改新增的自定义算子类型,使其在onnx的算子库中;(1) 在onnx算子库中新增实现,以覆盖新增的自定义算子;(3) 将错就错,不校验直接保存,自定义算子实现在下一框架/阶段进行。


好了,以上分享了 onnx模型增、删、改、查算子节点方法。希望我的分享能对你的学习有一点帮助。


logo_show.gif

相关文章
|
22天前
|
人工智能 搜索推荐
写歌词的技巧和方法:塑造完美歌词结构的艺术,妙笔生词AI智能写歌词软件
歌词是音乐的灵魂,其结构艺术至关重要。开头需引人入胜,主体部分无论是叙事还是抒情,都应层次分明、情感丰富,结尾则需升华或留白,给人以深刻印象。《妙笔生词智能写歌词软件》提供多种AI辅助功能,助你轻松创作完美歌词,成为音乐创作的得力助手。
|
22天前
|
人工智能
巧妙构建歌词结构:写歌词的技巧和方法之关键,妙笔生词AI智能写歌词软件
在音乐世界里,歌词是灵魂的载体,构建其结构至关重要。优秀的歌词需有引人入胜的开头、条理清晰且富变化的主体,以及深刻难忘的结尾。《妙笔生词智能写歌词软件》提供多种功能,帮助创作者克服结构难题,激发灵感,助你写出打动人心的歌词,开启音乐创作的新篇章。
|
22天前
|
人工智能
歌词结构的巧妙安排:写歌词的方法与技巧解析,妙笔生词AI智能写歌词软件
歌词创作是一门艺术,关键在于巧妙的结构安排。开头需迅速吸引听众,主体部分要坚实且富有逻辑,结尾则应留下深刻印象。《妙笔生词智能写歌词软件》提供多种 AI 功能,帮助创作者找到灵感,优化歌词结构,写出打动人心的作品。
|
22天前
|
人工智能
歌词结构的艺术:写歌词的技巧和方法深度剖析,妙笔生词AI智能写歌词软件
歌词是音乐的灵魂伴侣,其结构蕴含独特艺术魅力。掌握歌词结构技巧是创作者成功的关键。开头需迅速吸引听众,主体部分通过叙事、抒情或对话形式展开,结尾则点睛收尾。创作时可借助《妙笔生词智能写歌词软件》,利用 AI 功能优化歌词,提供丰富模板和案例,助力灵感涌现,轻松掌握歌词结构艺术。
|
22天前
|
人工智能
写歌词的技巧和方法:打造完美歌词结构,妙笔生词AI智能写歌词软件
写歌词的技巧包括:开头吸引人,主体逻辑清晰,结尾画龙点睛。使用《妙笔生词智能写歌词软件》的AI功能,如智能写词、押韵优化等,可助你克服创作瓶颈,打造完美歌词结构,适用于民谣、摇滚、流行等多种风格。
|
20天前
|
人工智能
AI科学家太多,谁靠谱一试便知!普林斯顿新基准CORE-Bench:最强模型仅有21%准确率
【10月更文挑战第21天】普林斯顿大学研究人员提出了CORE-Bench,一个基于计算可重复性的AI代理基准,涵盖计算机科学、社会科学和医学领域的270个任务。该基准旨在评估AI代理在科学研究中的准确性,具有多样性、难度级别和现实相关性等特点,有助于推动AI代理的发展并提高计算可重复性。
39 4
|
22天前
|
人工智能
写歌词的技巧和方法:构建独特歌词结构的策略,妙笔生词AI智能写歌词软件
歌词创作如同搭建艺术殿堂,独特的歌词结构是其基石。掌握构建策略,让你的歌词脱颖而出。开头营造神秘氛围或出人意料的情感,主体部分采用倒叙、插叙或融合矛盾情感,结尾带来情感反转或深邃思考。《妙笔生词智能写歌词软件》提供 AI 智能写词、押韵优化等功能,助你轻松获取灵感,打造独特歌词结构。
|
22天前
|
人工智能
掌握歌词布局技巧:写歌词的方法与要点,妙笔生词AI智能写歌词软件
歌词创作是一门独特的艺术,掌握歌词布局技巧至关重要。开头要引人入胜,主体部分要合理有节奏,结尾则需有力收尾。无论是叙事还是抒情,合理的布局都能让作品更加动人。《妙笔生词智能写歌词软件》提供了多种AI功能,帮助创作者轻松掌握布局技巧,开启高效创作之旅。
|
22天前
|
人工智能
精通歌词结构技巧:写歌词的方法与实践,妙笔生词AI智能写歌词软件
歌词创作是音乐的灵魂,掌握其结构技巧至关重要。开头需迅速吸引听众,主体部分需结构清晰、情感丰富,结尾则要余韵悠长。无论是叙事还是抒情,妙笔生词智能写歌词软件都能助你一臂之力,提供AI智能创作、优化及解析等多功能支持,助你轻松驾驭歌词创作。
|
22天前
|
人工智能
写歌词的技巧和方法:优化歌词结构的秘诀,妙笔生词AI智能写歌词软件
歌词是音乐的灵魂,优化其结构能让作品更加动人。掌握开头吸引人、主体结构清晰、情感递进自然及结尾余味悠长等技巧至关重要。同时,借助《妙笔生词智能写歌词软件》的多种AI功能,如智能写词、押韵优化等,可有效提升创作效率与质量,为你的歌词增添光彩。

热门文章

最新文章