首页 > 其他分享 >ValueError: Per-Channel support with QDQ format requires onnx opset version 13 or above.

ValueError: Per-Channel support with QDQ format requires onnx opset version 13 or above.

时间:2023-09-11 12:32:21浏览次数:40  
标签:13 format onnx opset version output input model

问题:在做静态量化是,遇见onnx opset version版本报错

解决办法:

with tempfile.NamedTemporaryFile() as fp:
    torch.onnx.export(model,
                      args=tuple(dummy_input.values()),
                      f = output_model_name,
                      input_names=list(dummy_input),
                      output_names=output_names,
                      dynamic_axes=dynamic_axes,
                      opset_version=10)

将onnx转换模型代码最后一行opset_version=10修改为要求的版本opset_version=13,即可。修改后


quantize_static(

            model_input = model_path,

            model_output = quant_model_path,

            calibration_data_reader=data_reader, # 校准数据读取器

            op_types_to_quantize=['MatMul'],

            per_channel=True,

            reduce_range=False,

            weight_type=QuantType.QInt8,

            nodes_to_exclude=nodes_to_exclude,

            activation_type=QuantType.QInt8,

        )

重新写静态量化,则可以正常进行。

标签:13,format,onnx,opset,version,output,input,model
From: https://blog.51cto.com/u_12727662/7434900

相关文章

  • 将onnx模型转静态量化,量化过程中的数据处理
    fromonnxruntime.quantizationimportQuantType,quantize_dynamic,quantize_static,CalibrationDataReaderimportonnxtxt_test_list=read_file(os.path.join(ModelConfig().data_dir_pp,"test_test.txt"))path="E:\py_workspace\TinyBERT-PP-New\qua......
  • 2.13 PE结构:实现PE代码段加密
    代码加密功能的实现原理,首先通过创建一个新的.hack区段,并对该区段进行初始化,接着我们向此区段内写入一段具有动态解密功能的ShellCode汇编指令集,并将程序入口地址修正为ShellCode地址位置处,当解密功能被运行后则可释放加密的.text节,此时再通过一个JMP指令跳转到原始OEP位置,则可继......
  • 20211312徐元琦 学习笔记1
    历史:Unix是早期的商业化操作系统,诞生于20世纪60年代,最早由AT&T的贝尔实验室开发。它的设计目标是支持多用户和多任务的环境。Linux是由LinusTorvalds于1991年创建的开源操作系统。它最初是为个人计算机而开发,后来演变成一个广泛的操作系统家族。联系:Linux是基于Unix的设计,因......
  • 20211316郭佳昊 《信息安全系统设计与实现(上)》学习笔记1
    一、任务要求[1]知识点归纳以及自己最有收获的内容,选择至少2个知识点利用chatgpt等工具进行苏格拉底挑战,并提交过程截图,提示过程参考下面内容(4分)我在学***X知识点,请你以苏格拉底的方式对我进行提问,一次一个问题核心是要求GPT:请你以苏格拉底的方式对我进行提问然后GPT就......
  • 2023-2024-1 20211306 密码系统设计与实现课程学习笔记1
    20211306密码系统设计与实现课程学习笔记1学习任务详情自学教材第1,2章,提交学习笔记知识点归纳以及自己最有收获的内容,选择至少2个知识点利用chatgpt等工具进行苏格拉底挑战,并提交过程截图,提示过程参考下面内容“我在学***X知识点,请你以苏格拉底的方式对我进行提问,一......
  • 20211314王艺达信息安全系统设计与实现学习笔记(1)
    作业要求链接https://www.mosoteach.cn/web/index.php?c=interaction_homework&m=s_write&clazz_course_id=97072AE7-2C45-11EE-8539-1C34DA7B3F7C&id=F3080EAA-E3B7-414E-B311-938F0B8988F0&order_item=group&status=IN_PRGRS第一章学习总结及自测知识点归纳什么是Unix/Linux......
  • UVA1352 题解
    思路分析构造排列表立方体只有\(4\)个,暴力法是可行的。但是如果我们要暴力,首先得清楚一个立方体到底有几种不同的旋转方式。接下来,我们用“姿态”一词代替“旋转方法”。假设\(6\)个面的编号为\(1\sim6\),从中选择一个面作为“顶面”,“顶面”的对面为“底面”。然后我们在......
  • Python教程(13)——Python运算符详解|算术运算符|比较运算符|逻辑运算符|位运算符
    Python的运算符是用于执行各种操作的符号或符号组合。它们用于操作数据并进行算术、比较、逻辑和其他类型的运算。我们所熟知的加减乘除也是运算符中的一种。Python提供了多种类型的运算符,有算术运算符,比较运算符,赋值运算符,逻辑运算符,位算符等等。算术运算符算术运算符是Python......
  • Python教程(13)——Python运算符详解|算术运算符|比较运算符|逻辑运算符|位运算符
    Python的运算符是用于执行各种操作的符号或符号组合。它们用于操作数据并进行算术、比较、逻辑和其他类型的运算。我们所熟知的加减乘除也是运算符中的一种。Python提供了多种类型的运算符,有算术运算符,比较运算符,赋值运算符,逻辑运算符,位算符等等。算术运算符算术运算符是Python......
  • 13 总结
    网络编程:通过编程,对网络上的资源进行操作首先要了解:计算机网络的概念这个计算机系统实现网络通信:1.有两个要素:IP,端口号--->了解IP和端口号的基本知识(是什么,有什么用,怎么用)2.制定与遵守网络协议:主要学习传输协议TCP与UDP。上面的两点通过编程来加深理解并且实现最后,回......