Document
拖动滑块完成拼图
首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

一种快速替换二元运算符以便于量化的方法 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:北京君正集成电路股份有限公司

摘要:本发明提供一种快速替换二元运算符以便于量化的方法,所述方法对于torch构建的神经网络中的二元运算算子,自动替换torch网络中的二元运算符为torch函数运算,最终替换为量化算子;包括+,*进行torch.add和torch.mul的替换,方便后续再进行QuantizeAdd和QuantizeMul的替换,以保证这类算子都量化到。所述方法首先定义神经网络类:继承nn.Module类,并对构造函数_init__和前向传播计算forward进行重新实现;通过继承的机制,根据nn.Module定义所需的神经网络类,并对构造函数__init__进行初始化。本方法是一种自动替换torch网络中的二元运算符为torch函数运算最终替换为量化算子的方法。

主权项:1.一种快速替换二元运算符以便于量化的方法,其特征在于,所述方法首先定义神经网络类:继承nn.Module类,并对构造函数_init__和前向传播计算forward进行重新实现;通过继承的机制,根据nn.Module定义所需的神经网络类,并对构造函数__init__进行初始化;即,所述方法包括以下步骤:设定S1,继承类:nn.Module,表示为:classModelnn.Module;S2,初始化所有层:_init_,表示为:def__init__self,planes:其中,所有放在构造函数__init__里面的层的都是这个模型的“固有属性”;这里palnes只是形参,没有设置默认值,用户在调用时必须先导入参数,从下面的定义可知,planes对应的是conv的通道数;固定内容:superModel,self.__init__定义相关的函数:self.conv=nn.Conv2dplanes,planes,kernel_size=3,groups=planes,bias=True,padding=1,初始化一个二维卷积torch.nn.Conv2d算子,其中输入通道为planes,输出通道为planes,卷积核的大小为3,分planes组,带偏置,四周填充1个像素;self.bn=nn.BatchNorm2dplanes,eps=1e-05,初始化一个批规范化算子torch.nn.BatchNorm2d,其中通道数是planes;S3,定义模型的运算过程:向前传播的过程forward,构建模型结构:选择性地对有tensor参数的二元运算+、*自动进行了torch的函数的替换,因为上述相关的函数从而完成自动替换,本方法最终对网络的forward改进变为:defforwardself,x:1out1=self.convx2out2=self.bnout3out=torch.mulout,x,原来是out*x,替换之后是torch.mulout,x,把符号函数换成torch的函数实现形式,4out=torch.addtorch.addout1,out2,out,原来是out1+out2,替换之后是torch.addout1,out2,相当于把符号函数换成torch的函数实现形式,5out=torch.multorch.addout,x,out6out=torch.mulout,37returnout最终返回结果其中,这样,就将二元运算符+、*自动地替换成torch.add和torch.mul算子,这样也能知道其确实是需要量化的网络层,因此能够再进行下一步量化算子的替换变为QuantizeAdd和QuantizeMul。

全文数据:

权利要求:

百度查询: 北京君正集成电路股份有限公司 一种快速替换二元运算符以便于量化的方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。

相关技术
相关技术
相关技术
相关技术