onnx转TensorRT的问题

TensorRT7.0.1.1转换没出问题

TensorRT8.2.4.2一直报下面的错误

4: [shapeCompiler.cpp::nvinfer1::builder::DynamicSlotBuilder::evaluateShapeChecks::832] Error Code 4: Internal Error (kOPT values for profile 0 violate shape constraints: condition '==' violated. IAssertionLayer (Unnamed Layer* 5) [Assertion]: condition[0] is false: (EQUAL (# 2 (SHAPE input0)) (# 2 (SHAPE input1))). For input: 'input0' all named dimensions that share the same name must be equal. Note: Named dimensions were present on the following axes: 2 (name: 'height'), 2 (name: 'height'))

原因是:

input0 input1 input2 在实际使用的时候,width height大小是/2递减的,而在保存onnx的时候,命名的时候是相同的(上一辈留下的问题,心里苦)

TensorRT8.2.4.2中要求,相同name的维度需要一致,input0中叫height,如果在input1中也有相同名字的height,那么这两个大小必须一致,不然就会报错。

解决方法,生成的onnx的时候,分别命名即可:

增加onnx直接修改名字的代码:

import onnx
import torch
import argparse
import osdef Test_Onnx_Change_Param_Name(onnx_model):for input in onnx_model.graph.input:dim1 = input.type.tensor_type.shape.dim[2]dim2 = input.type.tensor_type.shape.dim[3]dim1.dim_param = "height" + input.name[-1]dim2.dim_param = "width" + input.name[-1]for output in onnx_model.graph.output:dim1 = output.type.tensor_type.shape.dim[2]dim2 = output.type.tensor_type.shape.dim[3]dim1.dim_param = "height" + output.name[-1]dim2.dim_param = "width" + output.name[-1]def apply(transform, infile, outfile):model = onnx.load(infile)transform(model)onnx.save(model, outfile)parser = argparse.ArgumentParser(description='Configurations for Change Onnx Name')
parser.add_argument('--onnx_path', type=str, default=r'D:\networks\deblur\rst/model.onnx', help='src onnx path')
parser.add_argument('--save_new_path', type=str, default=r'D:\networks\deblur\rst/modified.onnx', help='new onnx path')
args = parser.parse_args()if __name__ == "__main__":apply(Test_Onnx_Change_Param_Name, args.onnx_path, args.save_new_path)

tensorRT onnx中属性名相同,但实际大小不同生成问题相关推荐

  1. java 首字母小写_Java中属性名首字母大小写问题

    Java命名规范中,实体类属性名以小写字母开头,但并没有说不能以大写字母开头 手动编写实体类时,将属性companyName的首字母大写 使用IDE自动生成构造函数 public Custom(lon ...

  2. js更改对象中属性名的方法

    数据格式如下: let arr = [{"id": 275,"name": "测试公司","userList": [{& ...

  3. 【转】MyBatis学习总结(四)——解决字段名与实体类属性名不相同的冲突

    [转]MyBatis学习总结(四)--解决字段名与实体类属性名不相同的冲突 在平时的开发中,我们表中的字段名和表对应实体类的属性名称不一定都是完全相同的,下面来演示一下这种情况下的如何解决字段名与实体 ...

  4. MyBatis学习总结(四)——解决字段名与实体类属性名不相同的冲突

    2019独角兽企业重金招聘Python工程师标准>>> 一.准备演示需要使用的表和数据 CREATE TABLE orders(order_id INT PRIMARY KEY AU ...

  5. Mybatis解决字段名与实体类属性名不相同的冲突

    在平时的开发中,我们表中的字段名和表对应实体类的属性名称不一定都是完全相同的,下面来演示一下这种情况下的如何解决字段名与实体类属性名不相同的冲突. 一.准备演示需要使用的表和数据 CREATE TAB ...

  6. MyBatis学习总结(4)——解决字段名与实体类属性名不相同的冲突

    一.准备演示需要使用的表和数据 CREATE TABLE orders(order_id INT PRIMARY KEY AUTO_INCREMENT,order_no VARCHAR(20), or ...

  7. 在Mybaties中进行数据查询时,表中字段名和属相名没有对应起来,查询的结果总null,一下是解决方法

    http://blog.csdn.net/jiangsanfeng1111/article/details/49763135 在平时的开发中,我们表中的字段名和表对应实体类的属性名称不一定都是完全相同 ...

  8. mabatisplus怎么给实体类自定义属性_吊打面试官之:当实体类中的属性名和表中的字段名不一样 ,怎么办 ?...

    第1种: 通过在查询的sql语句中定义字段名的别名,让字段名的别名和实体类的属性名一致. <select id="selectorder" parametertype=&qu ...

  9. 查询出的数据记录字段要与实体类中的属性名一致

    查询出的数据记录字段要与实体类中的属性名一致 转载于:https://www.cnblogs.com/1020182600HENG/p/6183031.html

最新文章

  1. Linux多任务编程之五:exit()和_exit()函数(转)
  2. esp8266电池供电方案_硬核干货!十大5G基站电源改造方案
  3. 12-1 12 防盗链 访问控制 php解析 代理
  4. ChineseDiachronicCorpus项目,大规模中文历时语料库
  5. [转]我的数据结构不可能这么可爱!——珂朵莉树(ODT)详解
  6. 常熟理工C语言试卷带答案,常熟理工学院 C语言 考试样卷
  7. HDU 2222- Keywords Search
  8. 数据结构笔记(十三)-- 串的堆分配存储表示
  9. 利用deepface网络进行表情分类
  10. java非静态方法调用静态方法_java - 无法对非静态方法进行静态引用
  11. 79:企业CRM客户系统:登录模块开发(cookie和session以及登录态校验)
  12. VPS性能优劣与使用
  13. mysql 5.6 配置ssl_MySQL 5.6使用 SSL 连接
  14. 查看支付宝所有交易记录方法
  15. JAVA8元空间是什么?
  16. Android studio Suggestion: use tools:overrideLibrary=”jp.wasabeef.blurry” to force usage
  17. mac opt_获取Mac的Windows的其他隐藏(cmd + opt + H)键盘快捷键
  18. 在梯度下降法中,为什么梯度的负方向是函数下降最快的方向?
  19. keras、TensorFlow输出中间层结果的4种方法
  20. 职场切记:没有苦劳,只有功劳!

热门文章

  1. Java集合(超详细-含源码)
  2. 监控相机IQ调试策略
  3. Jquery考试面试题(一)
  4. 狂神学习系列14:SpringCloud
  5. unity 设置图片九宫格_Unity UGUI篇 Image图片
  6. 【Tools】macOS 截图工具推荐xnip(滚动截图截长图、步骤截图)
  7. 混合高斯模型去除背景
  8. R语言-出图时的中英文字体解决方案
  9. 【荐读】基于文本数据的消费者洞察
  10. opengl freeglut flew glut安装配置教程 VS2019 Windows10,无需复制文件