神经网络量化方法、装置及电子设备.pdf
《神经网络量化方法、装置及电子设备.pdf》由会员分享,可在线阅读,更多相关《神经网络量化方法、装置及电子设备.pdf(21页完成版)》请在专利查询网上搜索。
1、(19)中华人民共和国国家知识产权局 (12)发明专利申请 (10)申请公布号 (43)申请公布日 (21)申请号 201911361072.8 (22)申请日 2019.12.24 (71)申请人 北京旷视科技有限公司 地址 100190 北京市海淀区中关村大街1号 10层1018室 (72)发明人 周争光姚聪王鹏陈坤鹏 (74)专利代理机构 北京超凡宏宇专利代理事务 所(特殊普通合伙) 11463 代理人 董艳芳 (51)Int.Cl. G06N 3/04(2006.01) G06N 3/08(2006.01) G06N 3/063(2006.01) G06N 20/00(2019.01)。
2、 (54)发明名称 神经网络量化方法、 装置及电子设备 (57)摘要 本发明提供了一种神经网络量化方法、 装置 及电子设备, 该方法包括: 在神经网络的迭代训 练过程中, 利用输入层中各神经元的缩放因子, 在输入层的各个输出通道对输入层中各神经元 的初始激活值进行量化计算, 输出输入层的下一 隐含层的各神经元的激活值; 将神经网络的各个 隐含层逐一作为当前层, 对每个当前层均执行以 下量化操作: 基于当前层中各神经元的激活值确 定当前层中各神经元的缩放因子, 利用当前层中 各神经元的缩放因子, 在当前层的各个输出通道 对当前层中各神经元的激活值进行量化计算, 输 出当前层的下一层的各神经元的激。
3、活值; 当迭代 训练完成时, 将当前神经网络作为量化后的神经 网络。 本发明提升了神经网络的识别精度。 权利要求书3页 说明书14页 附图3页 CN 111105017 A 2020.05.05 CN 111105017 A 1.一种神经网络量化方法, 其特征在于, 包括: 在神经网络的迭代训练过程中, 基于所述神经网络的输入层接收到的输入数据确定所 述输入层中各神经元的初始激活值, 基于所述初始激活值确定所述输入层中各神经元的缩 放因子, 利用所述输入层中各神经元的缩放因子, 在所述输入层的各个输出通道对所述输 入层中各神经元的初始激活值进行量化计算, 输出所述输入层的下一隐含层的各神经元的。
4、 激活值; 将所述神经网络的各个隐含层逐一作为当前层, 对每个所述当前层均执行以下量化操 作: 接收所述当前层中各神经元的激活值, 基于所述当前层中各神经元的激活值确定所述 当前层中各神经元的缩放因子, 利用所述当前层中各神经元的缩放因子, 在所述当前层的 各个输出通道对所述当前层中各神经元的激活值进行量化计算, 输出所述当前层的下一层 的各神经元的激活值; 当所述迭代训练完成时, 将当前神经网络作为量化后的神经网络。 2.根据权利要求1所述的方法, 其特征在于, 所述基于所述当前层中各神经元的激活值 确定所述当前层中各神经元的缩放因子的步骤, 包括: 获取所述当前层的权重, 并将所述当前层的。
5、权重输入预先设置的第一量化函数进行量 化; 基于所述当前层中各神经元的激活值及量化后的所述当前层的权重确定所述当前层 中各神经元的中间激活值; 基于所述当前层中各神经元的中间激活值确定所述当前层中各神经元的缩放因子。 3.根据权利要求2所述的方法, 其特征在于, 所述利用所述当前层中各神经元的缩放因 子, 在所述当前层的各个输出通道对所述当前层中各神经元的激活值进行量化计算, 输出 所述当前层的下一层的各神经元的激活值的步骤, 包括: 将所述中间激活值分别输入至所述当前层中各神经元对应输出通道中预先设置的第 二量化函数, 得到各输出通道中量化后的所述中间激活值; 基于各输出通道中量化后的所述中。
6、间激活值与各通道在当前层中对应的神经元的缩 放因子的乘积, 确定所述当前层中各神经元的激活值的量化计算结果; 将所述当前层中各神经元的激活值的量化计算结果作为所述当前层的下一层的各神 经元的激活值。 4.根据权利要求2所述的方法, 其特征在于, 所述基于所述当前层中各神经元的激活值 及量化后的所述当前层的权重确定所述当前层中各神经元的中间激活值的步骤, 包括: 在所述当前层的各个输出通道中分别对各通道在当前层中对应的神经元的激活值和 量化后的所述当前层的权重进行卷积运算, 得到所述当前层中各神经元的卷积运算结果; 将所述当前层中各神经元的卷积运算结果分别输入至预设的第一非线性激活函数, 得 到。
7、所述当前层中各神经元的中间激活值。 5.根据权利要求2所述的方法, 其特征在于, 所述隐含层包括全连接层; 基于所述当前层中各神经元的中间激活值确定所述当前层中各神经元的缩放因子的 步骤, 包括: 对所述当前层中各神经元的中间激活值均执行以下操作: 对所述中间激活值进行全局平均池化运算, 得到池化运算结果; 权利要求书 1/3 页 2 CN 111105017 A 2 获取所述隐含层中第一全连接层的第一浮点型权重, 将所述池化运算结果和所述全连 接层的浮点型权重输入预设的第二非线性激活函数; 获取所述隐含层中第二全连接层的第二浮点型权重, 将所述第二非线性激活函数的输 出结果输入预设的第三非线。
8、性激活函数, 得到所述当前层中各神经元的缩放因子; 其中, 所 述第一全连接层和所述第二全连接层为所述全连接层的任意两层。 6.根据权利要求5所述的方法, 其特征在于, 所述当前层为第l层, 所述第二非线性激活 函数为ReLU激活函数, 所述第三非线性激活函数为Sigmoid函数; 所述当前层的各神经元的缩放因子的计算算式为: 其中,Wl2为所述第二浮点型权重, Wl1为所述第一浮点 型权重, GAP(Al)为所述池化运算结果, Al为所述神经网络中第l层的神经元的中间激活值。 7.根据权利要求2所述的方法, 其特征在于, 所述隐含层包括卷积层; 所述基于所述当前层中各神经元的中间激活值确定所。
9、述当前层中各神经元的缩放因 子的步骤, 包括: 对所述当前层中各神经元的中间激活值均执行以下操作: 获取所述卷积层中大小为1x1的任意一层卷积层的权重; 对所述中间激活值和所述卷积层的权重进行卷积运算, 并将得到的卷积运算结果输入 预设的第三非线性激活函数, 获得所述当前层中各神经元的缩放因子。 8.根据权利要求7所述的方法, 其特征在于, 所述当前层为第l层, 所述第三非线性激活 函数Sigmoid函数; 所述当前层的各神经元的缩放因子的计算算式为: 其中, Wl3为所述神经网络中任意一个大小为1x1的卷积层的权重, 为卷积运算符, Al 为所述神经网络中第l层的神经元的中间激活值。 9.根。
10、据权利要求1-8任一项所述的方法, 其特征在于, 所述方法还包括: 当所述神经网络的各个隐含层均完成所述量化操作后, 对当前的神经网络进行反向传 播以更新所述神经网络中各层的权重; 重复执行所述量化操作和所述反向传播的操作, 直至所述神经网络完成迭代训练; 将待检测图像输入所述量化后的神经网络, 得到图像识别结果。 10.一种神经网络量化装置, 其特征在于, 包括: 初始值确定模块, 用于在神经网络的迭代训练过程中, 基于所述神经网络的输入层接 收到的输入数据确定所述输入层中各神经元的初始激活值, 基于所述初始激活值确定所述 输入层中各神经元的缩放因子, 利用所述输入层中各神经元的缩放因子, 。
11、在所述输入层的 各个输出通道对所述输入层中各神经元的初始激活值进行量化计算, 输出所述输入层的下 一隐含层的各神经元的激活值; 量化计算模块, 用于将所述神经网络的各个隐含层逐一作为当前层, 对每个所述当前 层均执行以下量化操作: 接收所述当前层中各神经元的激活值, 基于所述当前层中各神经 元的激活值确定所述当前层中各神经元的缩放因子, 利用所述当前层中各神经元的缩放因 权利要求书 2/3 页 3 CN 111105017 A 3 子, 在所述当前层的各个输出通道对所述当前层中各神经元的激活值进行量化计算, 输出 所述当前层的下一层的各神经元的激活值; 量化结束模块, 用于在所述迭代训练完成时。
12、, 将当前神经网络作为量化后的神经网络。 11.一种电子设备, 其特征在于, 包括: 处理器和存储装置; 所述存储装置上存储有计算机程序, 所述计算机程序在被所述处理器运行时执行如权 利要求1至9任一项所述的方法。 12.一种计算机可读存储介质, 所述计算机可读存储介质上存储有计算机程序, 其特征 在于, 所述计算机程序被处理器运行时执行上述权利要求1至9任一项所述的方法的步骤。 权利要求书 3/3 页 4 CN 111105017 A 4 神经网络量化方法、 装置及电子设备 技术领域 0001 本发明涉及机器学习技术领域, 尤其是涉及一种神经网络量化方法、 装置及电子 设备。 背景技术 00。
13、02 随着神经网络在图像分类、 物体检测、 图像分割等计算机视觉方向的应用技术日 渐成熟, 对于将神经网络移植到移动终端的需求量也越来越大。 但高性能神经网络具有参 数量庞大、 计算量大的特点, 使其难以有效应用于移动终端。 为了降低神经网络的计算复杂 度以缓解神经网络的移植问题, 研究人员提出了多种神经网络压缩与加速方法, 诸如, 将神 经网络量化成低精度网络的方法, 降低了神经网络的计算时间。 然而, 低精度网络由于参数 较少, 表达能力欠缺、 训练困难进而影响到神经网络的识别精度, 因此, 现有的网络量化方 法得到的神经网络还存在识别精度较低的问题。 发明内容 0003 有鉴于此, 本发。
14、明的目的在于提供一种神经网络量化方法、 装置及电子设备, 能够 提升神经网络的识别精度。 0004 为了实现上述目的, 本发明实施例采用的技术方案如下: 0005 第一方面, 本发明实施例提供了一种神经网络量化方法, 包括: 在神经网络的迭代 训练过程中, 基于所述神经网络的输入层接收到的输入数据确定所述输入层中各神经元的 初始激活值, 基于所述初始激活值确定所述输入层中各神经元的缩放因子, 利用所述输入 层中各神经元的缩放因子, 在所述输入层的各个输出通道对所述输入层中各神经元的初始 激活值进行量化计算, 输出所述输入层的下一隐含层的各神经元的激活值; 将所述神经网 络的各个隐含层逐一作为当。
15、前层, 对每个所述当前层均执行以下量化操作: 接收所述当前 层中各神经元的激活值, 基于所述当前层中各神经元的激活值确定所述当前层中各神经元 的缩放因子, 利用所述当前层中各神经元的缩放因子, 在所述当前层的各个输出通道对所 述当前层中各神经元的激活值进行量化计算, 输出所述当前层的下一层的各神经元的激活 值; 当所述迭代训练完成时, 将当前神经网络作为量化后的神经网络。 0006 进一步, 本发明实施例提供了第一方面的第一种可能的实施方式, 其中, 所述基于 所述当前层中各神经元的激活值确定所述当前层中各神经元的缩放因子的步骤, 包括: 获 取所述当前层的权重, 并将所述当前层的权重输入预先。
16、设置的第一量化函数进行量化; 基 于所述当前层中各神经元的激活值及量化后的所述当前层的权重确定所述当前层中各神 经元的中间激活值; 基于所述当前层中各神经元的中间激活值确定所述当前层中各神经元 的缩放因子。 0007 进一步, 本发明实施例提供了第一方面的第二种可能的实施方式, 其中, 所述利用 所述当前层中各神经元的缩放因子, 在所述当前层的各个输出通道对所述当前层中各神经 元的激活值进行量化计算, 输出所述当前层的下一层的各神经元的激活值的步骤, 包括: 将 说明书 1/14 页 5 CN 111105017 A 5 所述中间激活值分别输入至所述当前层中各神经元对应输出通道中预先设置的第二。
17、量化 函数, 得到各输出通道中量化后的所述中间激活值; 基于各输出通道中量化后的所述中间 激活值与各通道在当前层中对应的神经元的缩放因子的乘积, 确定所述当前层中各神经元 的激活值的量化计算结果; 将所述当前层中各神经元的激活值的量化计算结果作为所述当 前层的下一层的各神经元的激活值。 0008 进一步, 本发明实施例提供了第一方面的第三种可能的实施方式, 其中, 所述基于 所述当前层中各神经元的激活值及量化后的所述当前层的权重确定所述当前层中各神经 元的中间激活值的步骤, 包括: 在所述当前层的各个输出通道中分别对各通道在当前层中 对应的神经元的激活值和量化后的所述当前层的权重进行卷积运算,。
18、 得到所述当前层中各 神经元的卷积运算结果; 将所述当前层中各神经元的卷积运算结果分别输入至预设的第一 非线性激活函数, 得到所述当前层中各神经元的中间激活值。 0009 进一步, 本发明实施例提供了第一方面的第四种可能的实施方式, 其中, 所述隐含 层包括全连接层; 基于所述当前层中各神经元的中间激活值确定所述当前层中各神经元的 缩放因子的步骤, 包括: 对所述当前层中各神经元的中间激活值均执行以下操作: 对所述中 间激活值进行全局平均池化运算, 得到池化运算结果; 获取所述隐含层中第一全连接层的 第一浮点型权重, 将所述池化运算结果和所述全连接层的浮点型权重输入预设的第二非线 性激活函数;。
19、 获取所述隐含层中第二全连接层的第二浮点型权重, 将所述第二非线性激活 函数的输出结果输入预设的第三非线性激活函数, 得到所述当前层中各神经元的缩放因 子; 其中, 所述第一全连接层和所述第二全连接层为所述全连接层的任意两层。 0010 进一步, 本发明实施例提供了第一方面的第五种可能的实施方式, 其中, 所述当前 层为第l层, 所述第二非线性激活函数为ReLU激活函数, 所述第三非线性激活函数为 Sigmoid函数; 所述当前层的各神经元的缩放因子的计算算式为: 0011 0012其中,Wl2为所述第二浮点型权重, Wl1为所述第一 浮点型权重, GAP(Al)为所述池化运算结果, Al为所。
20、述神经网络中第l层的神经元的中间激活 值。 0013 进一步, 本发明实施例提供了第一方面的第六种可能的实施方式, 其中, 所述隐含 层包括卷积层; 所述基于所述当前层中各神经元的中间激活值确定所述当前层中各神经元 的缩放因子的步骤, 包括: 对所述当前层中各神经元的中间激活值均执行以下操作: 获取所 述卷积层中大小为1x1的任意一层卷积层的权重; 对所述中间激活值和所述卷积层的权重 进行卷积运算, 并将得到的卷积运算结果输入预设的第三非线性激活函数, 获得所述当前 层中各神经元的缩放因子。 0014 进一步, 本发明实施例提供了第一方面的第七种可能的实施方式, 其中, 所述当前 层为第l层,。
21、 所述第三非线性激活函数Sigmoid函数; 所述当前层的各神经元的缩放因子的 计算算式为: 0015 0016其中, Wl3为所述神经网络中任意一个大小为1x1的卷积层的权重,为卷积运算 说明书 2/14 页 6 CN 111105017 A 6 符, Al为所述神经网络中第l层的神经元的中间激活值。 0017 进一步, 本发明实施例提供了第一方面的第八种可能的实施方式, 其中, 所述方法 还包括: 当所述神经网络的各个隐含层均完成所述量化操作后, 对当前的神经网络进行反 向传播以更新所述神经网络中各层的权重; 重复执行所述量化操作和所述反向传播的操 作, 直至所述神经网络完成迭代训练; 将。
22、待检测图像输入所述量化后的神经网络, 得到图像 识别结果。 0018 第二方面, 本发明实施例还提供了一种神经网络量化装置, 包括: 初始值确定模 块, 用于在神经网络的迭代训练过程中, 基于所述神经网络的输入层接收到的输入数据确 定所述输入层中各神经元的初始激活值, 基于所述初始激活值确定所述输入层中各神经元 的缩放因子, 利用所述输入层中各神经元的缩放因子, 在所述输入层的各个输出通道对所 述输入层中各神经元的初始激活值进行量化计算, 输出所述输入层的下一隐含层的各神经 元的激活值; 量化计算模块, 用于将所述神经网络的各个隐含层逐一作为当前层, 对每个所 述当前层均执行以下量化操作: 接。
23、收所述当前层中各神经元的激活值, 基于所述当前层中 各神经元的激活值确定所述当前层中各神经元的缩放因子, 利用所述当前层中各神经元的 缩放因子, 在所述当前层的各个输出通道对所述当前层中各神经元的激活值进行量化计 算, 输出所述当前层的下一层的各神经元的激活值; 量化结束模块, 用于在所述迭代训练完 成时, 将当前神经网络作为量化后的神经网络。 0019 第三方面, 本发明实施例提供了一种电子设备, 包括: 处理器和存储装置; 所述存 储装置上存储有计算机程序, 所述计算机程序在被所述处理器运行时执行上述第一方面任 一项所述的方法。 0020 第四方面, 本发明实施例提供了一种计算机可读存储介。
24、质, 所述计算机可读存储 介质上存储有计算机程序, 所述计算机程序被处理器运行时执行上述第一方面任一项所述 的方法的步骤。 0021 本发明实施例提供了一种神经网络量化方法、 装置及电子设备, 该方法包括: 在神 经网络的迭代训练过程中, 首先基于神经网络的输入层接收到的输入数据确定输入层中各 神经元的初始激活值, 基于初始激活值确定输入层中各神经元的缩放因子, 利用输入层中 各神经元的缩放因子, 在输入层的各个输出通道对输入层中各神经元的初始激活值进行量 化计算, 输出输入层的下一隐含层的各神经元的激活值; 然后将神经网络的各个隐含层逐 一作为当前层, 对每个当前层均执行以下量化操作: 接收。
25、当前层中各神经元的激活值, 基于 当前层中各神经元的激活值确定当前层中各神经元的缩放因子, 利用当前层中各神经元的 缩放因子, 在当前层的各个输出通道对当前层中各神经元的激活值进行量化计算, 输出当 前层的下一层的各神经元的激活值; 当迭代训练完成时, 将当前神经网络作为量化后的神 经网络。 一方面, 通过对当前层中各神经元的激活值进行量化计算, 降低了神经网络的计算 复杂度, 另一方面, 由于当前层中各神经元对应的缩放因子是基于当前层中各神经元的激 活值确定的, 而当前层中各神经元的激活值是基于输入数据得到的, 从而使各神经元对应 的缩放因子可以根据输入数据自适应变化, 提升了神经网络的识别。
26、精度。 0022 本发明实施例的其他特征和优点将在随后的说明书中阐述, 或者, 部分特征和优 点可以从说明书推知或毫无疑义地确定, 或者通过实施本发明实施例的上述技术即可得 知。 说明书 3/14 页 7 CN 111105017 A 7 0023 为使本发明的上述目的、 特征和优点能更明显易懂, 下文特举较佳实施例, 并配合 所附附图, 作详细说明如下。 附图说明 0024 为了更清楚地说明本发明具体实施方式或现有技术中的技术方案, 下面将对具体 实施方式或现有技术描述中所需要使用的附图作简单地介绍, 显而易见地, 下面描述中的 附图是本发明的一些实施方式, 对于本领域普通技术人员来讲, 在。
27、不付出创造性劳动的前 提下, 还可以根据这些附图获得其他的附图。 0025 图1示出了本发明实施例所提供的一种电子设备的结构示意图; 0026 图2示出了本发明实施例所提供的一种神经网络量化方法流程图; 0027 图3示出了本发明实施例所提供的现有的量化计算流程图; 0028 图4示出了本发明实施例所提供的一种目标量化算法的量化计算流程图; 0029 图5示出了本发明实施例所提供的另一种目标量化算法的量化计算流程图; 0030 图6示出了本发明实施例所提供的一种神经网络量化装置结构框图; 0031 图7示出了本发明实施例所提供的一种神经网络量化装置结构框图。 具体实施方式 0032 为使本发明。
28、实施例的目的、 技术方案和优点更加清楚, 下面将结合附图对本发明 的技术方案进行描述, 显然, 所描述的实施例是本发明一部分实施例, 而不是全部的实施 例。 0033 考虑到现有的网络量化方法得到的神经网络还存在识别精度较低的问题, 为改善 此问题, 本发明实施例提供了一种神经网络量化方法、 装置及电子设备, 可应用于提升神经 网络的识别精度。 以下对本发明实施例进行详细介绍。 0034 实施例一: 0035 首先, 参照图1来描述用于实现本发明实施例的一种神经网络量化方法、 装置及电 子设备的示例电子设备100。 0036 如图1所示的一种电子设备的结构示意图, 电子设备100包括一个或多个。
29、处理器 102、 一个或多个存储装置104、 输入装置106、 输出装置108以及图像采集装置110, 这些组件 通过总线系统112和/或其它形式的连接机构(未示出)互连。 应当注意, 图1所示的电子设备 100的组件和结构只是示例性的, 而非限制性的, 根据需要, 所述电子设备也可以具有其他 组件和结构。 0037 所述处理器102可以采用数字信号处理器(DSP)、 现场可编程门阵列(FPGA)、 可编 程逻辑阵列(PLA)中的至少一种硬件形式来实现, 所述处理器102可以是中央处理单元 (CPU)、 图形处理单元(GPU)或者具有数据处理能力和/或指令执行能力的其它形式的处理 单元中的一种。
30、或几种的组合, 并且可以控制所述电子设备100中的其它组件以执行期望的 功能。 0038 所述存储装置104可以包括一个或多个计算机程序产品, 所述计算机程序产品可 以包括各种形式的计算机可读存储介质, 例如易失性存储器和/或非易失性存储器。 所述易 失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。 所述非 说明书 4/14 页 8 CN 111105017 A 8 易失性存储器例如可以包括只读存储器(ROM)、 硬盘、 闪存等。 在所述计算机可读存储介质 上可以存储一个或多个计算机程序指令, 处理器102可以运行所述程序指令, 以实现下文所 述的本发明实施。
31、例中(由处理器实现)的客户端功能以及/或者其它期望的功能。 在所述计 算机可读存储介质中还可以存储各种应用程序和各种数据, 例如所述应用程序使用和/或 产生的各种数据等。 0039 所述输入装置106可以是用户用来输入指令的装置, 并且可以包括键盘、 鼠标、 麦 克风和触摸屏等中的一个或多个。 0040 所述输出装置108可以向外部(例如, 用户)输出各种信息(例如, 图像或声音), 并 且可以包括显示器、 扬声器等中的一个或多个。 0041 所述图像采集装置110可以拍摄用户期望的图像(例如照片、 视频等), 并且将所拍 摄的图像存储在所述存储装置104中以供其它组件使用。 0042 示例性。
32、地, 用于实现根据本发明实施例的神经网络量化方法、 装置及电子设备的 示例电子设备可以被实现为诸如智能手机、 平板电脑、 计算机等智能终端。 0043 实施例二: 0044 参见图2所示的神经网络量化方法流程图, 该方法可以由诸如前述电子设备执行, 在一种实施方式中, 该电子设备可以为配置有神经网络模型的处理设备(诸如服务器或计 算机等), 该方法主要包括以下步骤S202步骤S206: 0045 步骤S202, 在神经网络的迭代训练过程中, 基于神经网络的输入层接收到的输入 数据确定输入层中各神经元的初始激活值, 基于初始激活值确定输入层中各神经元的缩放 因子, 利用输入层中各神经元的缩放因子。
33、, 在输入层的各个输出通道对输入层中各神经元 的初始激活值进行量化计算, 输出输入层的下一隐含层的各神经元的激活值。 0046 上述神经网络(也可以称为神经网络模型)的网络层主要包括输入层、 隐含层和输 出层, 神经网络的输入层、 输出层及每一层隐含层都包含若干个神经元, 不同网络层之间是 通过神经元之间的输出通道连接的。 在神经网络的迭代过程中, 当向神经网络输入数据时, 首先基于输入数据确定神经网络输入层各神经元的初始激活值, 然后对于输入层中各神经 元的初始激活值在输入层各神经元的输出通道进行量化计算得到隐含层中第一层各神经 元的激活值, 上述输入层中各神经元的缩放因子是在各神经元所连接。
34、的输出通道上基于各 神经元的初始激活值分别得到的。 0047 步骤S204, 将神经网络的各个隐含层逐一作为当前层, 对每个当前层均执行以下 量化操作: 接收当前层中各神经元的激活值, 基于当前层中各神经元的激活值确定当前层 中各神经元的缩放因子, 利用当前层中各神经元的缩放因子, 在当前层的各个输出通道对 当前层中各神经元的激活值进行量化计算, 输出当前层的下一层的各神经元的激活值。 0048 由于神经网络的隐含层可以包括一层或多层, 当上述隐含层包括多层时, 为了根 据输入层的各初始激活值更新神经网络中每一层每一个神经元的激活值, 从神经网络的输 入层开始, 依次对神经网络中隐含层的每一层。
35、执行量化操作, 直到通过量化操作得到输出 层各神经元的激活值, 即在本轮训练中, 神经网络中的所有神经元的激活值都被更新。 0049 上述当前层中各神经元的缩放因子是基于当前层中各神经元的激活值确定的, 而 当前层中各神经元的激活值是利用上一层中各神经元的缩放因子, 在上一层的各个输出通 道对上一层中各神经元的激活值进行量化计算得到的, 经过依次推导, 当前层中各神经元 说明书 5/14 页 9 CN 111105017 A 9 的缩放因子是由输入层中各神经元的初始激活值确定的, 而输入层中各神经元的初始激活 值是基于输入数据确定的, 因此, 当前层中各神经元的缩放因子是由神经网络的输入数据 。
36、确定的, 即当前层中各神经元的缩放因子可以随着输入数据的不同而自适应变化。 0050 步骤S206, 当迭代训练完成时, 将当前神经网络作为量化后的神经网络。 0051 在神经网络的每一轮迭代训练中, 对神经网络的输入层和隐含层中各神经元的激 活值执行上述量化操作, 以更新神经网络中所有神经元的激活值, 当神经网络的迭代训练 次数达到预设迭代次数时, 将当前完成迭代训练的神经网络作为量化后的神经网络。 0052 上述步骤S202中在输入层的各个输出通道对输入层中各神经元的初始激活值进 行量化计算的过程, 与上述步骤S204中在当前层的各个输出通道对当前层中各神经元的激 活值进行量化计算属于相同。
37、的量化计算过程, 区别仅为量化计算中输入的激活值不相同。 0053 本实施例提供的上述神经网络量化方法, 一方面, 通过对当前层中各神经元的激 活值进行量化计算, 降低了神经网络的计算复杂度, 另一方面, 由于当前层中各神经元对应 的缩放因子是基于当前层中各神经元的激活值确定的, 而当前层中各神经元的激活值是基 于输入数据得到的, 从而使各神经元对应的缩放因子可以根据输入数据自适应变化, 提升 了神经网络的识别精度。 0054 为了得到能够根据输入数据自适应变化的缩放因子, 本实施例提供了基于当前层 中各神经元的激活值确定当前层中各神经元的缩放因子的实施方式, 具体可参照如下步骤 (1)步骤(。
38、3)执行: 0055 步骤(1): 获取当前层的权重, 并将当前层的权重输入预先设置的第一量化函数进 行量化。 0056 上述当前层中各神经元的缩放因子可以是在各神经元的输出通道上基于当前层 中各神经元的激活值计算得到的。 在计算缩放因子时, 首先获取当前层的权重, 由于该权重 为全精度的浮点型权重, 为了减小神经网络的计算复杂度, 将当前层的权重输入预先设置 的第一量化函数进行量化, 以将当前层的权重由高精度权重转换为低精度权重。 上述对于 当前层权重进行量化的第一量化函数的计算算式可以是: 0057 Qw(Wl)1/n|Wl|l1sign(Wl) 0058 其中 , Qw为 第一量化函数的。
39、 函数符号 , Wl为 神经网 络中 第l 层的 权重 , n和c为第l层的输出和输入通道数, |Wl|l1表示Wl绝对值的累加, sign 为符号函数, 也可以称为sgn。 0059 步骤(2): 基于当前层中各神经元的激活值及量化后的当前层的权重确定当前层 中各神经元的中间激活值。 0060 首先, 在当前层的各个输出通道中分别对各通道在当前层中对应的神经元的激活 值和量化后的当前层的权重进行卷积运算, 得到当前层中各神经元的卷积运算结果。 上述 各输出通道是当前层中神经元与下一层中神经元的连接通道, 每个输出通道都分别连接了 当前层的任一神经元和下一层的任一神经元。 当上述当前层为神经网。
40、络的第l层时, 上述卷 积运算的计算算式为: 0061 0062其中, 为卷积运算符,为输出通道所连接的第l层中的神经元的激活值, 也 说明书 6/14 页 10 CN 111105017 A 10 即当前层的上一层的输出通道输出的激活值,为量化后的第l层的权重。 0063 其次, 将当前层中各神经元的卷积运算结果分别输入至预设的第一非线性激活函 数, 得到当前层中各神经元的中间激活值。 上述第一非线性激活函数可以是能够应用于神 经网络中的任意非线性激活函数。 当上述当前层为神经网络的第l层时, 当前输出通道所连 接的当前层神经元的中间激活值的计算算式为: 0064 Alh(Zl) 0065 。
41、其中, 上述Al为当前输出通道所连接的第l层神经元的中间激活值, 上述Zl为卷积 运算结果, h为第一非线性激活函数的函数符号。 0066 当神经网络包含BN(Batch Normalization)层时, 将BN层设置于上述第一非线性 激活函数之前, 即首先对当前层中各神经元的激活值进行归一化计算, 再将归一化后的结 果输入第一非线性激活函数, 得到当前层中各神经元的中间激活值。 0067 步骤(3): 基于当前层中各神经元的中间激活值确定当前层中各神经元的缩放因 子。 0068 上述神经元的缩放因子包括该神经元所连接的各个输出通道上的缩放因子, 由于 上述各神经元的中间激活值可以是各神经元。
42、对应连接的输出通道上计算得到的, 通过在各 神经元对应连接的输出通道上, 基于当前层中各神经元的中间激活值确定当前层中各神经 元的缩放因子, 使每个神经元所连接的输出通道都可以基于该通道的缩放因子进行量化计 算。 0069 由于现有的量化方法中的缩放因子一旦确定就不会改变, 为了提升神经网络的表 示能力, 提升神经网络的性能, 使缩放因子可以根据输入数据而自适应变化。 本实施例提供 了两种基于当前层中各神经元的中间激活值确定当前层中各神经元的缩放因子的具体实 施方式: 0070 实施方式一: 在该实施方式中, 上述神经网络中的隐含层包括全连接层。 0071 对当前层中各神经元的中间激活值均执行。
43、以下操作: 对中间激活值进行全局平均 池化运算, 得到池化运算结果; 获取神经网络中第一全连接层的第一浮点型权重, 将池化运 算结果和全连接层的浮点型权重输入预设的第二非线性激活函数; 获取神经网络中第二全 连接层的第二浮点型权重, 将第二非线性激活函数的输出结果输入预设的第三非线性激活 函数, 得到当前层中各神经元的缩放因子; 其中, 第一全连接层和第二全连接层为全连接层 中的任意两层。 该实施方式得到的缩放因子为施加于激活值的输出通道层面的缩放因子。 为了提升神经网络的表现且尽可能少地增加计算复杂度, 在上述缩放因子的计算中引入了 两个全连接层, 由于引入的全连接层的参数量和计算量占比很小。
44、, 因此并不会对神经网络 的计算复杂度产生较大的影响。 0072 在一种具体的实施方式中, 上述当前层为第l层, 第二非线性激活函数为ReLU激活 函数, 第三非线性激活函数为Sigmoid函数。 当前层的各神经元的缩放因子的计算算式为: 0073 0074其中,Wl2为第二浮点型权重, Wl1为第一浮点型权 重, GAP(Al)为池化运算结果, Al为神经网络中第l层的神经元的中间激活值。 在该实施方式 说明书 7/14 页 11 CN 111105017 A 11 中, 施加于激活值的缩放因子是基于通道层面的, 因此上述二值卷积运算可以表示为: 0075 0076其中, 1/n|Wl|l1。
45、为施加于权重的通道层面的缩放因子, 表示用位运算实现 的卷积。 0077 实施方式二: 在该实施方式中, 上述神经网络中的隐含层包括卷积层。 0078 对当前层中各神经元的中间激活值均执行以下操作: 获取卷积层中大小为1x1的 任意一层卷积层的权重; 对中间激活值和卷积层的权重进行卷积运算, 并将得到的卷积运 算结果输入预设的第三非线性激活函数, 获得当前层中各神经元的缩放因子。 在当前层中 神经元的输出通道上, 将上述神经元的中间激活值通过只含有一个卷积核的1x1的卷积层, 得到该输出通道所连接的神经元的缩放因子。 该缩放因子为施加于激活值的位置层面的缩 放因子。 0079 在一种具体的实施。
46、方式中, 当前层为第l层, 第三非线性激活函数Sigmoid函数。 当 前层的各神经元的缩放因子的计算算式为: 0080 0081其中, Wl3为神经网络中任意一个大小为1x1的卷积层的权重,为卷积运算符, Al 为神经网络中第l层的神经元的中间激活值。 在该实施方式中, 施加于激活值的缩放因子 是基于位置层面的, 因此上述二值卷积运算可以表示为: 0082 0083其中,dd为卷 积核的大小。 0084 为了减小神经网络的计算复杂度, 本实施例提供了利用当前层中各神经元的缩放 因子, 在当前层的各个输出通道对当前层中各神经元的激活值进行量化计算, 输出当前层 的下一层的各神经元的激活值的实施。
47、方式, 具体可参照如下步骤1步骤3执行: 0085 步骤1: 将中间激活值分别输入至当前层中各神经元对应输出通道中预先设置的 第二量化函数, 得到各输出通道中量化后的中间激活值。 0086 由于上述量化计算可以是在神经元连接的输出通道上进行的, 将神经元所连接的 输出通道上得到的中间激活值输入预先设置的第二量化函数中, 得到各输出通道中量化后 的中间激活值Qa(Al), 上述当前层为第l层, 上述第二量化函数的计算算式可以是: 0087 Qa(Al)sign(Al) 0088 步骤2: 基于各输出通道中量化后的中间激活值与各通道在当前层中对应的神经 元的缩放因子的乘积, 确定当前层中各神经元的。
48、激活值的量化计算结果。 0089 将神经元的输出通道中得到的上述量化后的中间激活值Qa(Al)与各输出通道在当 前层中对应的神经元的缩放因子的乘积, 作为该输出通道所连接的神经元的激活值的 量化计算结果, 该量化计算结果为其中, 说明书 8/14 页 12 CN 111105017 A 12 或者 0090 步骤3: 将当前层中各神经元的激活值的量化计算结果作为当前层的下一层的各 神经元的激活值。 0091 若当前层为第l层, 第l层神经元的激活值的量化计算结果即为: 0092 0093 上述第l层神经元的激活值的量化计算结果即为第l层神经元的激活值量化计算 后的输出激活值, 该输出激活值也为。
49、该通道所连接的第l+1层的神经元的激活值。 0094 通过分别将神经网络中各隐含层作为当前层, 可以依次得到隐含层各层神经元的 激活值, 直到根据隐含层的最后一层的神经元的激活值得到输出层的神经元的激活值, 则 该轮训练中对神经网络量化的前向传播过程完成, 上述前向传播过程为计算神经元的激活 值的过程。 0095 为了得到完成量化计算且训练完成的神经网络, 本实施例提供的神经网络量化方 法, 还包括: 当神经网络的各个隐含层均完成量化操作后, 对当前的神经网络进行反向传播 以更新神经网络中各层的权重。 重复执行量化操作和反向传播的操作, 直至神经网络完成 迭代训练。 将待检测图像输入量化后的神。
50、经网络, 得到图像识别结果。 在基于训练样本对神 经网络的迭代训练过程的每一轮迭代训练中, 首先基于量化的方法在前向传播中计算神经 元的激活值, 再对神经网络进行反向传播以更新神经网络中各层的权重, 由于神经网络的 量化计算中会使用到各层的权重, 基于更新后的各层的权重再基于量化的方法在前向传播 中计算神经元的激活值, 重复进行上述前向传播和反向传播过程, 直至达到预设的迭代训 练次数, 从而得到量化后的神经网络, 该量化后的神经网络为完成样本迭代训练的神经网 络。 由于上述量化训练后的神经网络是基于训练样本训练得到的, 将待测图像输入量化训 练后的神经网络, 通过使量化训练后的神经网络对待测。
- 内容关键字: 神经网络 量化 方法 装置 电子设备
高精度的低重频窄脉冲延迟控制电路.pdf
重金属污染土壤修复装置.pdf
微型扬声器音腔焊接装置.pdf
测试无人机避障功能的训练迷宫.pdf
半导体老化检测装置.pdf
车用尿素液的生产配比装置.pdf
管材转运稳定输送装置.pdf
灯光积木块.pdf
空压机滤芯.pdf
化工桶倒料机构.pdf
旋转式远端帽.pdf
细胞分类恒温箱.pdf
煤粉传输带用残余清洁机构.pdf
生物基可降解纤维面料生产用喂纱机构及针织大圆机.pdf
卷扬机调速机构.pdf
烧伤整形植皮辅助设备.pdf
快速充电电池组结构.pdf
高效率的废边吸附平台.pdf
变排量汽车空调压缩机后盖气动立式定心夹具.pdf
建筑保温板切割装置.pdf
高炉烟灰布袋除尘输灰系统.pdf
提高挤浆机的脱水装置.pdf
无人驾驶汽车辅助检修装置.pdf
类蛇毒肽的制备方法.pdf
中控系统探测方法、装置、设备及存储介质.pdf
有机电致发光材料及其制备方法与应用.pdf
涤纶线抗拉强度检测方法.pdf
与印度南瓜侧枝数量相关基因连锁的分子标记及应用.pdf
LED显示装置.pdf
云台摄像机及控制系统.pdf
高含有机质渣土低碳固化材料及其制备方法和应用.pdf
基于图像视觉处理的基坑位移监测系统.pdf
一种疏水型二氧化硅气凝胶绝热复合材料的制备方法.pdf
一种提高植物种子吸胀冷害抗性的方法.pdf
一种制备鲍鱼硫酸多糖的方法.pdf
一种茶树种植有机基肥.pdf
一种超临界萃取桂皮精油的方法.pdf
一种耐酸性混凝土的制备方法.pdf
一种两用笔筒袋.pdf
抗IL23P19抗体.pdf
玻镁板粘合剂.pdf
一种新型塔机平衡臂拉杆结构.pdf
一种叶菜类专用容器育苗基质.pdf
一种多层共挤软管用的粘结树脂.pdf
玉米纹枯病抗病基因GRMZM2G127328及应用.pdf
隔音构造系统.pdf
虎头兰无土栽培营养液.pdf
一种聚邻巯基苯胺纳米纤维的制备方法.pdf
一种耐热性矿渣加气混凝土砖的制作工艺.pdf
一体式细螺旋涂药棒.pdf
一种安全能够降解的一次性餐具.pdf