CN113971456A - 人工神经网络处理方法和系统 - Google Patents

人工神经网络处理方法和系统 Download PDF

Info

Publication number
CN113971456A
CN113971456A CN202110835501.1A CN202110835501A CN113971456A CN 113971456 A CN113971456 A CN 113971456A CN 202110835501 A CN202110835501 A CN 202110835501A CN 113971456 A CN113971456 A CN 113971456A
Authority
CN
China
Prior art keywords
weight
parameter
ann
processing
grid
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202110835501.1A
Other languages
English (en)
Inventor
D·卡雷拉
M·科莱拉
G·德索利
G·博拉基
B·罗西
P·弗拉尼托
L·弗里托利
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
STMicroelectronics SRL
Original Assignee
STMicroelectronics SRL
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from IT102020000018043A external-priority patent/IT202000018043A1/it
Application filed by STMicroelectronics SRL filed Critical STMicroelectronics SRL
Publication of CN113971456A publication Critical patent/CN113971456A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Image Analysis (AREA)

Abstract

本公开的各实施例涉及一种方法,包括:提供具有多个处理层的ANN处理级,处理层具有相应参数,相应参数包括至少一个权重参数集、至少一个输入/输出激活参数以及至少一个激活函数参数;将网格的维度参数设置为整数值,网格具有多个网格点并且由基矢量集来标识;选择相应处理层的权重参数集;将所选择的权重参数集矢量化,从而产生权重矢量集,权重矢量集被布置为权重矢量矩阵的项;将权重矢量矩阵归一化;对经归一化的权重矢量矩阵应用网格矢量量化LVQ处理,产生码字的码本;通过对码本的码字进行编码为网格的函数来进行索引,从而产生相应索引元组。归一化包括求解优化问题,优化问题具有第一项和正则化项ΩL

Description

人工神经网络处理方法和系统
技术领域
例如,本说明书涉及用于人工神经网络(ANN)处理(例如,诸 如卷积神经网络(CNN)处理)的方法和系统。
例如,一个或多个实施例可以被应用于被配置为执行ANN处理 的硬件加速器引擎(例如,诸如神经处理单元(NPU))。
背景技术
卷积(人工)神经网络(简称为CNN)包括基于计算机的工具, 基于计算机的工具利用深度学习算法来执行图像处理任务。
将大型猫科动物的图像分类为豹或美洲虎可以作为这种处理的 示例被提及。
CNN包括多个层,例如多个(隐藏的)处理层,多个(隐藏的) 处理层被耦合到输入层,并且被配置为将数据处理应用于由其接收的 图像张量。处理层可以包括例如卷积和/或池化处理,并且CNN可以 包括经由隐藏层而被耦合到输入层的输出层。
卷积处理层使用过滤器(也被称为卷积内核)来执行输入图像数 据的卷积,并且将激活函数应用于卷积数据,从而产生特征集作为结 果。
池化处理层通过执行子采样(例如,诸如最大或平均采样)来减 小特征集的维度。
处理层可以使用多达数百万的参数值(也被称为权重)。通过训 练处理级(可能涉及大型训练数据集)来学习权重值,从而设置权重 值。
例如,CNN可以使用多个动物的图片来训练,并且可以被配置为 标识豹或美洲虎。
如上所述,数百万权重值可以在CNN处理中使用,CNN处理可 能使用大的存储器占位面积。
处理层可以涉及权重与特征矢量之间的大量点积运算,从而可能 导致高计算成本。
现有解决方案(例如,如在Choi,Y.,El-Khamy,M.,&Lee,J.: “Universal deepneural network compression”,2018,arXiv:1802.02271 中所讨论的)通过权重量化和无损源编码来调查深度神经网络(DNN) 的损耗压缩,以进行存储器有效的部署,从而通过DNN的通用随机 化网格量化而引入“通用”DNN压缩,通用随机化网格量化在网格 量化之前通过均匀随机抖动而将DNN权重随机化并且可以在无需依 赖其概率分布知识的情况下,对任何源近乎最佳地执行。该文献引用 了微调矢量的方法,该方法将DNN量化,从而在量化之后恢复性能 损失。
发明内容
发明人已经实现了诸如Choi等人的讨论的解决方案,该解决方 案可以表现出各种缺点,诸如:
在量化之后CNN的准确性降低;
使用附加的、可能计算繁琐的码字微调处理来应对这样的准 确性降低;以及
CNN性能下降的风险增加。
降低CNN的功耗和成本(例如,有助于可以基于边缘计算的物 联网(IOT)应用)因此是值得追求的目标。
被配置为执行ANN处理的处理电路(诸如神经处理单元(NPU)) 例如可以包括硬件加速器引擎,硬件加速器引擎包括与权重相关联的 压缩/解压缩功能,从而可能减少CNN的存储器存储约束。
相关硬件实现方式可能遭受缺点,诸如:
与获取权重和激活相关联的存储器瓶颈;和/或
存储器面积成本增加。
实施例可以有助于解决前述内容中讨论的缺点。
一个或多个实施例可以涉及对应的计算机程序产品。
为此,一个或多个实施例可以包括计算机程序产品,计算机程序 产品可以在至少一个处理电路(例如,计算机)的存储器中加载并且 包括用于当产品在至少一个处理电路上运行时执行方法步骤的软件 代码部分。如本文所使用的,对这样的计算机程序产品的引用被理解 为等同于对包含用于控制处理系统的指令的计算机可读介质的引用, 以便根据一个或多个实施例来协调方法的实现方式。对“至少一个计 算机”的引用旨在突出以模块化和/或分布式形式实现的一个或多个实 施例的可能性。
一个或多个实施例可以涉及对应的系统(HW加速器系统可以是 这样的系统的示例),对应的系统具有利用本文所例示的方法压缩的 权重。
一个或多个实施例可以涉及将这样的权重解压缩的对应的方法 和对应的计算机程序产品。
一个或多个实施例可以减少与执行CNN处理中的正推法有关的 计算负担。
因此,一个或多个实施例可以有助于避免与经常执行的运算相关 联的大型并行计算数据路径,诸如可能导致大量乘法加法累加运算 (例如与某个神经网络的系数(权重)数目成比例)的3D张量卷积。
一个或多个实施例可以提供以下优点中的一个或多个优点:
有助于CNN权重的压缩,从而降低了CNN处理的存储器影 响;
嵌入式架构中的权重存储面积被保存,从而降低了先进的子 纳米硅工艺技术中可能具有重要意义的存储器面积成本;
在减少与网格矢量量化相关联的量化误差时,有助于定制优 化,同时保持原始网络的准确性;
有效地抵消了与获取权重和激活相关联的存储器瓶颈的性 能下降(特别是对于大型权重张量,例如Fc、LSTM/GU层);
硬件复杂性降低,这有助于使用相对简单的解压缩电路块, 可能导致更有效的设计,也可以用于CNN加速框架;以及
减少了计算对带宽使用的影响。
在实施例中,计算机实现的方法包括:提供人工神经网络ANN 处理级,人工神经网络ANN处理级包括具有相应处理层参数的多个 处理层,处理层参数包括至少一个权重参数集、至少一个输入激活参 数、至少一个输出激活参数以及至少一个激活函数参数;将网格的维 度参数设置为整数值,网格具有多个网格点并且由基矢量集来标识; 选择ANN处理级的多个处理层中的相应处理层的权重参数集;对所 选择的权重参数集应用矢量化处理,产生权重矢量集作为结果并且将 权重矢量集布置为权重矢量矩阵的项;执行权重矢量矩阵的归一化处 理,从而产生经归一化的权重矢量矩阵作为结果;对经归一化的权重 矢量矩阵应用网格矢量量化LVQ处理,产生码字的码本作为结果; 对所产生的码本应用索引处理,索引包括根据网格L来对码本的码字 进行编码,产生相应索引元组作为结果;以及向用户电路提供所产生 的索引元组,其中执行权重矢量矩阵的归一化处理包括计算优化问 题,优化问题具有第一项和正则化项ΩL:第一项被配置为根据ANN 处理级的至少一个输入激活参数来提供经归一化的权重值,经归一化 的权重值近似于ANN处理级的至少一个输出激活参数;并且正则化 项ΩL被配置为将距离所选择的网格的网格点短距离的经归一化的权重值放大。
在实施例中,方法包括:实现具有多个处理层的人工神经网络 (ANN),处理层具有相应参数,处理层参数包括至少一个权重参数 集(wi)、至少一个输入激活参数(aj)、至少一个输出激活参数(bj) 以及至少一个激活函数参数(ρ);将网格的维度参数(d)设置为整 数值,网格具有多个网格点并且由基矢量集(b1,b2)来标识;选择 ANN的多个处理层中的相应处理层的权重参数集(wi);对所选择的 权重参数集(wi)应用矢量化处理,产生权重矢量集(u1,u2,u3) 并且将权重矢量集(u1,u2,u3)布置为权重矢量矩阵(U);执行权 重矢量矩阵(U)的归一化处理,从而产生经归一化的权重矢量矩阵 (U’);将网格矢量量化(LVQ)处理应用于经归一化的权重矢量矩 阵(U’),从而产生码字的码本;对所产生的码本应用索引处理,索 引包括根据网格来对码本的码字进行编码,产生相应索引元组(is, ia,ia LUT)以及向ANN的神经处理电路提供所产生的索引元组(is, ia,ia LUT),其中执行权重矢量矩阵(U)的归一化处理包括求解优化 问题,优化问题具有第一项和正则化项ΩL(u):第一项用于根据ANN的至少一个输入激活参数(aj)来提供经归一化的权重值,经归一化 的权重值近似于ANN的至少一个输出激活参数(bj);并且正则化项 ΩL(u)被配置为将与所选择的网格的网格点有距离的经归一化的权重 值放大。
在实施例中,非暂时性计算机可读介质的内容将计算系统配置为 执行方法,方法包括:实现具有多个处理层的人工神经网络(ANN), 处理层具有相应处理层参数,处理层参数包括至少一个权重参数集 (wi)、至少一个输入激活参数(aj)、至少一个输出激活参数(bj)以 及至少一个激活函数参数(ρ);将网格的维度参数(d)设置为整数 值,网格具有多个网格点并且由基矢量集(b1,b2)来标识;选择ANN 的多个处理层中的相应处理层的权重参数集(wi);对所选择的权重 参数集(wi)应用矢量化处理,产生权重矢量集(u1,u2,u3)并且将权重矢量集(u1,u2,u3)布置为权重矢量矩阵(U);执行权重矢 量矩阵(U)的归一化处理,从而产生经归一化的权重矢量矩阵(U’); 将网格矢量量化(LVQ)处理应用于经归一化的权重矢量矩阵(U’), 从而产生码字的码本;对所产生的码本应用索引处理,索引包括根据 网格来对码本的码字进行编码,产生相应索引元组(is,ia,ia LUT)以 及向ANN的神经处理电路提供所产生的索引元组(is,ia,ia LUT),其 中执行权重矢量矩阵(U)的归一化处理包括求解优化问题,优化问 题具有第一项和正则化项ΩL(u):第一项用于根据ANN的至少一个输 入激活参数(aj)来提供经归一化的权重值,经归一化的权重值近似 于ANN的至少一个输出激活参数(bj);并且正则化项ΩL(u)被配置 为将与所选择的网格的网格点有距离的经归一化的权重值放大。
在实施例中,设备包括:存储器;以及与存储器耦合的处理电路 系统,其中处理电路系统在操作中:将网格的维度参数(d)设置为 整数值,网格具有多个网格点并且由基矢量集(b1,b2)来标识;选 择人工神经网络(ANN)的多个处理层中的相应处理层的权重参数集(wi),ANN具有多个处理层,多个处理层具有相应处理层参数,处 理层参数包括至少一个权重参数集(wi)、至少一个输入激活参数(aj)、 至少一个输出激活参数(bj)以及至少一个激活函数参数(ρ);对所 选择的权重参数集(wi)应用矢量化处理,产生权重矢量集(u1,u2,u3)并且将权重矢量集(u1,u2,u3)布置为权重矢量矩阵(U);执 行权重矢量矩阵(U)的归一化处理,从而产生经归一化的权重矢量 矩阵(U’);将网格矢量量化(LVQ)处理应用于经归一化的权重矢 量矩阵(U’),从而产生码字的码本;以及索引所产生的码本,索引 包括根据网格来对码本的码字进行编码,从而产生相应索引元组(is, ia,ia LUT),其中执行权重矢量矩阵(U)的归一化处理包括求解优化 问题,优化问题具有第一项和正则化项ΩL(u):第一项用于根据ANN 的至少一个输入激活参数(aj)来提供经归一化的权重值,经归一化 的权重值近似于ANN的至少一个输出激活参数(bj);并且正则化项 ΩL(u)被配置为将与所选择的网格的网格点有距离的经归一化的权重 值放大。
在实施例中,系统包括:在操作中存储经压缩的经归一化的权重 值的存储器;处理核;以及与存储器和处理核耦合的硬件加速器引擎, 其中硬件加速器引擎在操作中:将所存储的经归一化的权重值解压 缩,从而产生经解压缩的权重值,并且根据所述经解压缩的权重值来 执行人工神经网络(ANN)的操作,其中所存储的经压缩的经归一化 的权重值对应于优化问题的求解,优化问题具有第一项和正则化项 ΩL(u):第一项用于根据ANN的至少一个输入激活参数(aj)来提供 经归一化的权重值,经归一化的权重值近似于ANN的至少一个输出 激活参数(bj);并且正则化项ΩL(u)被配置为将与所选择的网格的网 格点有距离的经归一化的权重值放大。
附图说明
现在将通过非限制性示例、参考附图来描述一个或多个实施例, 其中:
图1是示例性卷积神经网络CNN处理级的图;
图2是示例性硬件加速器引擎的图;
图3A和图3B是一个或多个实施例下的原理的示例性的图;
图4是根据本公开的方法的流程图;
图5A、图5B和图5C是一个或多个实施例下的原理的示例性的 图;
图6A和图6B是适用于执行图4的方法的一部分的函数的示例性 曲线图;
图7A至图7C是网格可选特征下的原理的示例性的图;
图8是一个或多个实施例下的原理的示例性的图;以及
图9是根据实施例的系统的功能框图。
具体实施方式
在随后的描述中,图示了一个或多个具体细节,旨在提供对本说 明书的实施例示例的深入理解。实施例可以在没有一个或多个具体细 节的情况下或者利用其他方法、组件、材料等来获得。在其他情况下, 已知的结构、材料或操作未详细图示或描述,以使得实施例的某些方 面将不被模糊。
本说明书的框架中对“实施例”或“一个实施例”的引用旨在指 示关于实施例的特定配置、结构或特性被包括在至少一个实施例中。 因此,在本说明书的一个或多个点中可能存在的诸如“在实施例中” 或者“在一个实施例中”的短语不一定指代同一实施例。
此外,特定构象、结构或特性在一个或多个实施例中可以以任何 适当方式进行组合。
本文中使用的标题/附图标记仅为了方便而提供,因此不限定实施 例的保护程度或范围。
贯穿本文附加的附图,相同的部分或元素使用相同的附图标记来 指示;为简洁起见,每个附图不会重复对应的描述。
此外,贯穿本说明书,例如在如人工神经网络(ANN)处理或卷 积神经网络(CNN)处理等表述中使用的措辞“神经网络(处理)” 旨在指定经由硬件(HW)和/或软件(SW)工具而执行的信号的机 器实现的处理。
除了输入层之外,输入层被配置为接收具有一定尺寸的输入图像 张量I,例如具有由图像宽度L乘以图像高度(例如,等于图像宽度 L)乘以图像深度(例如,1)乘以张量I中的图像数目(例如,1) 给出的尺寸的图像张量I,如图1所示的卷积神经网络(CNN)10还 可以包括多个处理层100、102、104、106、108、110,多个处理层包 括:
多个(隐藏)处理层100、102、104、106、108,其被耦合 到输入层并且被配置为将数据处理(诸如例如卷积和/或池化处理)应 用于从其接收的图像张量O;以及
经由隐藏层100、102、104、106、108耦合到输入层的输出 层110,输出层110包括例如完全连接层。
如图所示,处理层100、102、104、106、108可以被配置为产生 相应特征映射F1、F2、F3、F4。每个这样的特征映射可以具有由特 征映射宽度L1、L2、L3、L4乘以特征映射高度(可以等于宽度L1、 L2、L3、L4)乘以特征映射信道(例如,具有红色、绿色和蓝色的 RGB图像的三个信道)乘以映射数目所给出的尺寸。
在一个或多个实施例中,处理层100、102、104、106、108可以 具有多层感知器(简要地,MLP)架构,多层感知器架构包括被指示 为感知器的多个处理单元。
多个感知器中的单个第i感知器可以通过值的元组来标识,值包 括权重值wi、偏移值bi和激活函数ρi
如图1所例示的,卷积处理层(诸如被称为102的卷积处理层) (作为各个层的示例)包括具有尺寸的至少一个卷积内核(矩阵)wi, 卷积内核可以被表示为:
wi∈RC×H×T i=1,...K
其中:
H表示内核高度,
T表示内核宽度,
K表示内核的数目,例如,K=1,以及
C表示输入信道的数目,其可以等于输入特征映射F1的(图 像颜色)信道数目。
输出层110可以包括完全连接层,完全连接层是与前一层中的所 有激活具有连接的卷积层类型。
诸如102的卷积层(作为可能的示例再次采用)可以被配置为将 激活函数应用于滑动点积。
这样的运算可以被表示为例如:
Figure BDA0003176764410000091
其中:
wi T是权重矢量wi的转置版本(对应于内核),
a是例如由所考虑的层102之前的处理层100计算的输入特 征矢量,
ρ是层102的激活函数,以及
b是将激活函数ρ应用于内核和输入特征矢量的乘积所产生 的输出。
如图2中所例示的,神经处理单元或电路(NPU)20可以包括被 配置为执行CNN处理的处理电路系统。
文献EP 3 346 425 A1讨论了例如适用于加速CNN处理的NPU 电路。
如图2中所例示的,这样的NPU电路20包括:
片上系统200,被配置为托管处理电路系统;
时钟信号提供块或电路202;
用于以本身已知的方式,例如经由总线接口204来访问存储 器电路块的直接存储器访问(DMA)单元或电路206、206a;
多个输入/输出接口208、210;
流式开关电路块220,被配置用于管理板的不同元件之间的 数据流量;
权重编码/解码电路块230,被配置为处理来自存储器(例如, 由DMA 206检索并由流式开关220传递)的权重值;
配置加速器电路集232、232a、232b;以及
其他处理电路块集234、236、240,例如用于池化、激活、 杂项功能。
特别地,权重值可以从经编码的权重值开始解码,经编码的权重 值可以被编码(或压缩)来减少在NPU 20上运行CNN的存储器占 位面积。
例如,权重值可以通过向其应用量化处理来编码。
可以找到适用于执行这样的量化处理的矢量量化技术。例如,d 维矢量可以被映射到有限的矢量集C={ci:i=1,2,...,N},其中每个 矢量ci可以被指示为“码字”。所有码字的集合可以被指示为“码本”。 每个码字可以与被指示为“Voronoi区域”的最近邻居区域相关联。
在网格矢量量化(简称为LVQ)中,码本可以包括网格点,网格 点具有Voronoi区域的矩心作为近似矢量。
如本文所讨论的,维度d的网格L是d维欧几里德空间中的基矢 量b1,…,bd的全部整数线性组合集,其可以表示为:
L(b1,...,bd)={∑xibi|xi∈Z},bi∈Rd
如图3A和图3B所例示的,例如:
第一二维(d=2)网格具有第一对基矢量b1、b2,在笛卡尔 坐标中,其可以被表示为:b1=[1,0];b2=[0;1];并且
第二二维(d=2)网格,例如六边形网格,具有第二对基矢 量b1、b2,在笛卡尔坐标中,其可以被表示为:
Figure BDA0003176764410000111
b2=[0;1]。
在比较其他矢量量化技术中,LVQ可以表现出诸如以下的优点:
使用固定码本,因为网格点通过选择格基来确定;以及
快速量化和索引,因为网格结构有助于保持有组织的网格 点。
为简单起见,在前面关于具有设定权重值(例如,基于训练设置) 的经训练的CNN讨论了一个或多个实施例,但是应理解这样的情况 仅是示例性的,并且绝不是限制。
如图4所例示的,用于压缩权重值的方法40可以包括:
在CNN参数之中选择(框400)参数集来编码;例如,这 可以涉及选择处理层的类型,例如卷积或完全连接层;和/或针对网格, 选择维度参数值d来使用,例如整数、偶数值,诸如d=2或d=4;
执行权重值的矢量化(框402),其将权重值存储为矢量元素, 其中这样的矢量化可以包括接收权重值矩阵并且将数据变换处理应 用于权重值矩阵,从而如以下所讨论的产生权重矢量集合作为结果;
将归一化处理(框404)应用于所产生的权重矢量集,这样 的归一化包括如以下所讨论的求解优化问题;
使用所选择的(整数)维度参数值d来执行网格矢量量化 LVQ(框406),以选择用于量化的网格,从而产生码字的码本作为结 果;以及
通过应用LVQ来索引(框408)码字,索引包括使用索引元 组(is,ia,ia LUT)来对所选择的网格的第i元素进行编码。
为了简单起见,本文主要关于二维网格(例如,d=2)讨论了实 施例,但是应理解这样的网格维度仅是示例性的,并且绝不是限制。
应当注意的是,在一个或多个实施例中,选择作为内核尺寸的整 数倍数或除数的维度参数d的值可以是有利的,因为这可以有助于如 以下所讨论的权重值的矢量化402。
如图5A至图5C中所例示的,例如图1中的102所指示的卷积 层的权重值wi的矩阵可以被表示为多维网格wi,其元素是权重值, 网格wi具有网格高度H、网格宽度T、信道数目C和内核数目K。 例如可以通过索引集来标识多维网格wi的任何元素,每个维度一个 索引,例如,wi jlmn
为了简单起见,图5A至图5C指代矩阵具有相同高度、宽度和 信道数目的示例性情况,例如,H=C=T=3,但是应当理解的是, 这样的示例性值仅是示例性的,并且绝不是限制。
图5A至图5C是执行权重值402的矢量化的示例图,矢量化可 以包括:
选择处理矩阵wi的元素所遵循的矩阵维度的阶,例如,首 先信道维度C之后是宽度T,例如将元素的每个索引与维度相关联, 例如,将索引j关联到信道维度C,将索引l关联到宽度维度T,将 索引m关联到高度维度H并且将索引k关联到内核数目K;
提取矩阵wi的权重元素作为相应矢量u1、u2、u3沿所选择 的维度的元素,从而产生矢量集u1、u2、u3作为结果,矢量的尺寸d 等于所选择的维度参数值,例如,在所考虑的示例中,偶数值d=2; 以及
重新布置例如逐项堆叠所产生的矢量集而产生的矢量集u1、 u2、u3,从而产生具有逐项(例如,逐列)堆叠的权重矢量u1、u2、 u3的矩阵U。
如图5A至图5C中例示的,重新布置权重wi的矩阵/网格的权重 元素可以包括:
如图5A中例示的,从网格wi中提取第一组权重值u11、u12并且将这样的第一组值u11、u12重新布置在第一矢量u1中,例如u1= (u11,u12),其中第一组权重值u11、u12包括第一权重值u11和第二权重 值u12,第一权重值对应于网格wi中具有第一组索引值的元素,例如 u11=wi 1111,第二权重值对应于网格wi中具有第二组索引值的元素,其 中信道维度C的索引j相对于第一组索引值增加了1,例如u12=wi 2111
如图5B中所例示的,从权重wi的网格提取第二组权重值u21、 u22,并且将这样的第二组权重值u21、u22重新布置在第二矢量u2中, 例如u2=(u21,u22),其中第二组权重值u21、u22包括第三权重值u21和 第四权重值u22,第三权重值对应于网格wi中具有第三组索引值的元素,其中信道尺寸C的索引j相对于第二权重值u12增加1,例如u21= wi 3111,并且第四权重值对应于网格wi中具有第四组索引值的元素, 其中信道尺寸的索引j由于到达最大值而重置为1,并且宽度维度的 索引1相对于第三权重值u21而增加1,例如,u22=wi 1211
如图5C中所例示的,从权重wi的网格中提取第三组权重值 u21、u22并且将这样的第三组值u31、u32重新布置在第二矢量u2中, 例如u3=(u31,u32),其中第三组权重值u31、u32包括第五权重值u31和 第六权重值u32,第五权重值对应于网格wi中具有第五组索引值的元 素,其中信道维度C的索引j相对于第四权重值u12增加1,例如u31= wi 2211,第六权重值对应于网格wi中具有第六组索引值的元素,其中信 道维度C的索引j相对于第五权重值u31增加了1,例如u32=wi 3211
在所考虑的示例中,重新布置所产生的矢量集u1、u2、u3可以 产生具有第一矢量u1、第二矢量u2和第三矢量u3的矩阵U作为相 应第一、第二和第三列,U可以被表示为:
Figure BDA0003176764410000131
从图5A至图5C中所例示的从网格元素来收集值的方式可以基 本上沿一定维度(例如,信道维度C)遵循“牛耕式转行书写”路径, 在网格中“牛耕”时收集权重值并且每当已到达了与所选择的维度参 数d相等数目的“牛耕”时,将它们重新布置在矢量中。
在一个或多个实施例中,作为重新布置权重值402所产生的矩阵 U可以被用于应用归一化处理404,归一化处理404可以包括使用随 机梯度下降(SGD)来解决优化问题,优化问题可以被表示为:
Figure BDA0003176764410000132
其中
S表示所有训练样本的集合,
aj和bj分别是所选择的层(例如,图1中的102所示的层) 的输入和输出激活,
ρ是激活函数(例如,ReLU)并且
ΩL是根据重新布置权重值402所产生的矩阵U的值而计算 的正则化项。
具体地,正则化项ΩL(u)可以被表示为:
Figure BDA0003176764410000141
其中
σ2是统计方差,其值可以由用户设置,并且
cw是LVQ处理406中使用的网格L的码字矢量。
如果矩阵U的第k列uk也是网格L的码字,则这样的正则化项 被设计为达到最小值。
上述优化问题的选择可以基于以下理由:
给出相同的输入激活,问题的第一项(被表示为
Figure BDA0003176764410000142
)有助于产生可以充分近似CNN的输出激活的值; 以及
正则化项ΩL(u)可以有助于更靠近(距离减小)所选择的网 格L的各点(Voronoi区域质心)的权重。
图6A是函数ΩL(u)在三维笛卡尔空间中的曲线示例。
图6B是先前曲线针对不同的方差值σ1、σ2、σ3的投影,例如,σ1=0.25,σ2=0.3,σ3=0.4。
可选地,当计算正则化项ΩL(u)时,进一步的缩放因子λk可以被 应用于矩阵U,以改进权重矢量到所选择的网格L的匹配。
图7A至图7C是示出了当相对于二维(d=2)网格L向其应用 不同的缩放因子λ1、λ2、λ3时,矩阵U的元素的不同分布(由图中 填充的圆点来表示),二维(d=2)网格L具有基矢量b1、b2,基矢 量b1、b2在笛卡尔坐标(网格L的V氏区域质心由图中的交叉点来 表示)中可以被表示为:b1=[1,0];b2=[0;1],例如,λ1=1,λ2=0.5, λ3=0.15。
在一个或多个实施例中,降低缩放因子λ的值可以增加矩阵U相 对于所选择的网格L的元素分布密度。
如本文所例示的,在缩放或不缩放的情况下,求解归一化问题可 以向进一步的处理级(诸如执行网格矢量量化LVQ的级406)提供归 一化矩阵U’。
这可以涉及根据所选择的维度参数d来选择具有基矢量集的网格 L,网格L被配置为用作量化方案,其中网格L可以包括被指示作为 码本CB的有限点集,例如,CB可以包含具有最小范数的256个网 格点,其中网格点是码字cw。
如本文所例示的,将LVQ执行到经归一化的权重包括将归一化 矩阵的每个列映射到码本CB中的最近码字。
如本领域技术人员所理解的,如文献Conway,J.,and N.Sloane: “Fastquantizing and decoding and algorithms for lattice quantizers and codes”,IEEETransactions on Information Theory 28.2(1982):227-232 中所讨论的方法在执行这样的映射时有利。该文献讨论了针对每个网 格A_{n}(n geq 1)、D_{n}(n geq 2)、E_{6}、E_{7}、E_{8}和他们的 双重、最接近任意点的网格点,用于查找的非常快速的算法,使得如果这些网格被用于均匀分布式数据的矢量量化,则算法找到最小失真 网格点,并且如果网格被用作高斯信道的代码,则算法执行最大似然 解码。
图8是这样的映射处理的级的图示例。
如图8所例示的,执行任何权重矢量u1、u2、u3、uk的权重压缩 涉及:
如从相应权重矢量点开始的箭头所示,执行靠近所选择的网 格L的网格点的权重矢量的投影,投影表示由优化给出的移位;以及
如达到网格L中的相应交叉网格点的虚线箭头所示,执行向 最近网格点的矢量量化。
在文献Rault,P.and Guillemot,C.:“Indexing algorithms for Zn,An, Dn,andDn++lattice vector quantizers”,Multimedia,IEEE Transactions on.3.395-404,doi:10.1109/6046.966111中讨论的方法被发现在索引 网格点408中是有利的。
如本文所例示的,索引网格点408可以包括将任何格点x编码为 索引元组(is,ia,ia LUT),这可以包括:
将网格点x相对于网格L的固定最大范数归一化;
计算x的签名首元(signed leader)ls和绝对首元(absolute leader)la
根据网格点x和所计算的签名首元ls,计算网格点z的索引 元组的第一索引is
根据所计算的签名首元ls和所计算的绝对首元la,计算网格 点x的第二索引is;以及
将所计算的绝对首元la存储在查找表(LUT)中,并且根据 LUT来计算第三索引ia LUT
如本文所例示的,索引408可以被执行为使得存储经索引的码字 相对于存储完整码本使用减少的存储器量,从而有利于对网络权重的 整体压缩。
未压缩权重值的存储器影响可以通过给定每个权重值的32位(假 设浮点表示)的量来估计,该位的数目乘以权重的数目。
使用方法40和索引407的存储器占位空间可以仅被用于将LUT 与绝对首元值存储并且存储索引值的元组,有助于减小CNN处理的 存储器占位空间。NPU 20随后可以使用经压缩的权重来减少用于存 储这样的权重的存储器。以下的表I和II提供了如本文所例示的方法 40的存储器影响的估计。
表I
Figure BDA0003176764410000161
Figure BDA0003176764410000171
表II
Figure BDA0003176764410000172
在备选实施例中,首元的值可以借助生成函数来生成,代替存储 在LUT中。
如本领域技术人员所理解的,可以找到如文献Moureaux,J.-M, Loyer,P.andAntonini,M.“Low Complexity Indexing Method for Znand DnLattice Quantizers”,(1999),Communications,IEEE Transactions on. 46.1602–1609,doi:10.1109/26.737398中所讨论的方法适用于此目 的。
下表III可以总结在不同维度中计算地生成相应256和2048个绝 对首元的时间(以秒为单位)。
表III
Figure BDA0003176764410000173
如在前述内容中所讨论的,NPU 20的电路系统206、230可以被 配置用于:
例如经由直接存储器访问(DMA)电路系统206,从(较小 的)存储器电路中访问/检索使用例如本文所例示的方法40压缩的权 重值;
例如在飞行中,将所检索的经归一化的权重值解压缩230; 以及
使用作为解压缩230的结果获得的经归一化的权重值来执行 改进的CNN处理232、234、236。
如本文所例示的,NPU电路可以被配置为执行解压缩方法,例如 将(压缩)方法40的步骤如反向行走。解压缩方法可以被配置用于 例如使用相同的压缩/解压缩参数(例如,网格L类型的维度d的值), 与相关的方法(压缩)40协作。
这样的解压缩方法可以从硬件的角度具有低的复杂性,从而不仅 根据与存储器存储相关联的存储器占位空间减少而有助于神经处理 单元的操作,而且通过以下方式来促使NPU性能正面影响:
有助于每权重传送减少的数据量,从而减少与权重传送相关 联的处理延迟;以及
有助于CNN执行的“更紧”的硬件管线。
如本文所例示的,将权重“在飞行中”或者动态地解压缩可以指 代可以包括执行任务的解压缩逻辑,以在不需要大的中间缓冲区的情 况下,将直接进入或附接到硬件卷积单元的经压缩的索引的传入流解 码。这可以显著改进NPU单元20的性能,从而有助于管理存储器瓶 颈在执行某些类型的神经网络工作负载和算子(诸如又被称为矩阵/ 矢量乘法的全连接和递归网络(RNN)、长短期存储器(LSTM)或门 控递归单元(GRU)时)时占主导地位的关键路径。
图9是可以应用本文描述的实施例(例如,以上参考图1至图8 描述的实施例)的电子设备或系统900的实施例的功能框图。系统900 包括一个或多个处理核或电路902。处理核902可以包括例如一个或 多个处理器、状态机、微处理器、可编程逻辑电路、分立电路系统、 逻辑门、寄存器等以及其各种组合。处理核可以控制系统900的整体 操作、由系统900执行应用程序等。
系统900包括一个或多个存储器,诸如一个或多个易失性和/或非 易失性存储器,一个或多个存储器可以存储例如与系统900的控制相 关的全部或部分的指令和数据、由系统900执行的应用和操作等。如 图所示,系统900包括各自包括存储器管理电路系统或MMU910的 一个或多个高速缓存存储器904、一个或多个初级存储器906和一个 或多个次级存储器908。存储器904、906、908中的一个或多个可以 包括存储器阵列,存储器阵列在操作中可以由系统900执行的一个或 多个处理共享。
系统900可以包括一个或多个传感器920(例如,加速度计、压 力传感器、温度传感器等)、一个或多个接口930(例如,无线通信接 口、有线通信接口等)、一个或多个ANN电路(如图所示的卷积神经 网络(CNN)加速器电路940)和其他电路950(可以包括其他功能 电路、天线、电源等)以及主总线系统960。主总线系统960可以包 括与系统900的各种组件耦合的一个或多个数据、地址、功率和/或控 制总线。系统900还可以包括附加总线系统,诸如将高速缓存存储器 904和处理核902通信地耦合的总线系统962、将高速缓存存储器904 和初级存储器通信地耦合的总线系统964、将初级存储器和处理核902 通信地耦合的总线系统966以及将初级存储器和次级存储器908通信 地耦合的总线系统968。
一个或多个初级存储器906通常是系统900的工作存储器(例如, 处理核902工作的一个或多个存储器或者诸如CNN加速器电路系统 940的协同处理器工作的一个或多个存储器),并且可以通常是存储与 系统900执行的过程相关的代码和数据的有限尺寸的易失性存储器 (例如,DRAM)。为方便起见,本文中对存储器中存储的数据的引 用也可以指代存储器中存储的代码。在实施例中,可以在一个或多个 初级存储器中使用非易失性存储器,诸如SRAM、ReRAM、PCM、 MRAM、FRAM、多级存储器等。次级存储器908通常可以是存储指 令和数据的非易失性存储器,指令和数据可以在系统900需要的情况 下被检索并存储在初级存储器中。高速缓存存储器904可以是与次级 存储器908相比而相对快的存储器并且通常具有有限尺寸,有限尺寸 可以大于初级存储器906的尺寸。
高速缓存存储器904临时存储代码和数据,以供稍后由系统900 使用。代替从次级存储器908检索所需的代码或数据以存储在初级存 储器中,系统900可以首先检查高速缓存存储器904来查看数据或代 码是否已被存储在高速缓存存储器904中。高速缓存存储器904可以 通过减少检索系统900使用的数据和代码所需的时间和其他资源来显 著改进诸如系统900的系统的性能。当代码和数据被检索(例如,从 次级存储器908)以供系统900使用,或者数据或代码被写入(例如, 初级存储器或次级存储器908)时,数据或代码的副本可以被存储在 高速缓存存储器904中,以供稍后由系统900使用。各种高速缓存管 理例程可以被用来控制一个或多个高速缓存存储器904中存储的数 据。
以下概述了示例实施例,其中示例参考附图。如本文所例示的计 算机实现的方法(例如,40)包括:
提供人工神经网络ANN处理级(例如,10),人工神经网络 ANN处理级包括具有相应处理层参数(例如,L1、L2、L3、L4)的多 个处理层(例如,100、102、104、106、108),所述处理层参数包括 至少一个权重参数集(例如,wi)、至少一个输入激活参数(例如, aj)、至少一个输出激活参数(例如,bj)以及至少一个激活函数参数 (例如,ρ);
将网格的维度参数(例如,d)设置为整数值,所述网格具 有多个网格点并且由基矢量集(例如,b1、b2)来标识;
选择(例如,400)所述ANN处理级的所述多个处理层中的 相应处理层(例如,102)的权重参数集(例如,wi);
将矢量化处理(例如,402)应用于所述所选择的权重参数 集,从而产生权重矢量集(例如,u1、u2、u3)作为结果并且将所述 权重矢量集布置为权重矢量矩阵(例如,U)的项;
执行权重矢量矩阵的归一化处理(例如,404),从而产生经 归一化的权重矢量矩阵(例如,U’)作为结果;
对所述经归一化的权重矢量矩阵应用网格矢量量化LVQ处 理,产生码字的码本(例如,CB)作为结果;
将索引处理应(例如,408)应用于所述所产生的码本,所 述索引包括根据网格L来对码本的码字进行编码,从而产生相应索引 元组(例如,is、ia、ia LUT)作为结果;以及
向用户电路(例如,20)提供所述所产生的索引元组,
其中执行所述权重矢量矩阵的所述归一化处理包括计算优 化问题,优化问题具有:
第一项,被配置为根据ANN处理级的至少一个输入激 活参数来提供经归一化的权重值,经归一化的权重值近似于ANN处 理级的至少一个输出激活参数;以及
正则化项ΩL,被配置为将距离所选择的网格的所述网 格点短距离的经归一化的权重值放大。
如本文所例示的,所述正则化项ΩL(u)被配置为当距离权重矢量 矩阵的项uk的所选择的网格的所述网格点的所述距离可忽略时达到 最小值。
如本文所例示的,所述优化问题被表示为:
Figure BDA0003176764410000211
其中
S指示所述人工神经网络的所述多个处理层中的所选择的处 理层(例如,102)的所述处理层参数,
aj和bj是所述人工神经网络的所述多个处理层中的所选择的 处理层的所述处理层参数的输入和输出激活参数,
ρ是所述人工神经网络的所述多个处理层中的所选择的处理 层的所述处理层参数的激活函数参数,
uk是权重矢量矩阵的项,以及
λ是缩放因子。
如本文所例示的,所述正则化项ΩL(u)可以被表示为:
Figure BDA0003176764410000221
其中
σ2是统计方差参数,并且
cw是所述基矢量集中标识所述网格的基矢量。
如本文所例示的,计算所述正则化项ΩL(u)包括将缩放因子 (例如,λ1、λ2、λ3)应用于经归一化的权重矢量矩阵,缩放因子的 值例如在0和1之间。
如本文所例示的,所述归一化处理包括使用随机梯度下降SGD 处理来计算所述优化问题。
如本文所例示的,执行权重值的所述矢量化包括:
沿着一定维度的有序序列(例如,C、T、H、K)来处理至 少一个权重参数集中的元素(例如,wi);
沿着所述维度的有序序列,从至少一个权重参数集中提取权 重值;以及
通过将所述所提取的权重值布置为所述矢量集中的相应矢 量的元素,提供权重矢量集(例如,u1、u2、u3),其中所述权重矢量 集中的权重矢量具有相应矢量尺寸,矢量尺寸等于维度参数(例如, d)的所述整数值。
如本文所例示的,所述LVQ处理包括:
根据所述维度参数(例如,d)的所述整数值,选择具有多 个网格点的网格和基矢量集;以及
使用所选择的网格的基矢量集,对所述权重矢量集应用量 化。
如本文所例示的,所述ANN处理级是卷积神经网络CNN处理级。
如本文所例示的计算机程序产品包括指令,当程序由计算机执行 时,使得计算机执行本文所例示的方法。
本文中所例示的计算机可读介质已被存储,其中使用如本文所例 示的方法来获得经归一化的权重值。
如本文所例示的,根据权重值来操作被配置用于执行人工神经网 络ANN处理的硬件加速器引擎的方法包括:
访问(例如,206)使用本文所例示的方法获得的经归一化 的权重值;
将所访问的经归一化的权重值解压缩(例如,230)来产生 经解压缩的权重值;以及
根据所述经解压缩的权重值来执行人工神经网络ANN处理 (例如,10)。
如本文所例示的计算机程序产品包括指令,当程序由计算机执行 时,使得计算机执行操作硬件加速器引擎的方法。
如本文所例示的计算机可读介质包括指令,指令在由计算机执行 时,使得计算机执行操作硬件加速器引擎的方法。
如本文所例示的硬件加速器引擎电路(例如,20)包括存储器电 路系统,存储器电路系统在其中存储:
使用方法获得的经归一化的权重值;以及
在硬件加速器引擎中执行时,使得硬件加速器引擎执行以下 方法的指令:
访问(例如,206)所述经归一化的权重值;
将所访问的经归一化的权重值解压缩(例如,230)来 产生经解压缩的权重值;以及
根据所述经解压缩的权重值来执行ANN处理(例如, 10)。
应当理解的是,伴随该描述、在整个附图中例示的各个实现方案 不一定旨在以在图中例示的相同组合来采用。因此,一个或多个实施 例可以通过相对于附图中所例示的组合单独和/或不同的组合来采用 这些(非强制性)选项。
在不妨碍潜在原理的情况下,细节和实施例可以在不脱离保护范 围的情况下,相对于仅通过示例所描述的内容显著变化。保护范围由 所附权利要求来限定。
在实施例中,计算机实现的方法包括:提供人工神经网络ANN 处理级,人工神经网络ANN处理级包括具有相应处理层参数的多个 处理层,处理层参数包括至少一个权重参数集、至少一个输入激活参 数、至少一个输出激活参数以及至少一个激活函数参数;将网格的维 度参数设置为整数值,网格具有多个网格点并且由基矢量集来标识; 选择ANN处理级的多个处理层中的相应处理层的权重参数集;对所 选择的权重参数集应用矢量化处理,产生权重矢量集作为结果并且将 权重矢量集布置为权重矢量矩阵的项;执行权重矢量矩阵的归一化处 理,从而产生经归一化的权重矢量矩阵作为结果;对经归一化的权重 矢量矩阵应用网格矢量量化LVQ处理,产生码字的码本作为结果; 对所产生的码本应用索引处理,索引包括根据网格L来对码本的码字 进行编码,产生相应索引元组作为结果;以及向用户电路提供所产生 的索引元组,其中执行权重矢量矩阵的归一化处理包括计算优化问 题,优化问题具有第一项和正则化项ΩL:第一项被配置为根据ANN 处理级的至少一个输入激活参数来提供经归一化的权重值,经归一化 的权重值近似于ANN处理级的至少一个输出激活参数;并且正则化 项ΩL被配置为将距离所选择的网格的网格点短距离的经归一化的权重值放大。
在实施例中,方法包括:实现具有多个处理层的人工神经网络 (ANN),处理层具有相应参数,处理层参数包括至少一个权重参数 集(wi)、至少一个输入激活参数(aj)、至少一个输出激活参数(bj) 以及至少一个激活函数参数(ρ);将网格的维度参数(d)设置为整 数值,网格具有多个网格点并且由基矢量集(b1,b2)来标识;选择 ANN的多个处理层中的相应处理层的权重参数集(wi);对所选择的 权重参数集(wi)应用矢量化处理,产生权重矢量集(u1,u2,u3) 并且将权重矢量集(u1,u2,u3)布置为权重矢量矩阵(U);执行权 重矢量矩阵(U)的归一化处理,从而产生经归一化的权重矢量矩阵 (U’);将网格矢量量化(LVQ)处理应用于经归一化的权重矢量矩 阵(U’),从而产生码字的码本;对所产生的码本应用索引处理,索 引包括根据网格来对码本的码字进行编码,产生相应索引元组(is, ia,ia LUT)以及向ANN的神经处理电路提供所产生的索引元组(is, ia,ia LUT),其中执行权重矢量矩阵(U)的归一化处理包括求解优化 问题,优化问题具有第一项和正则化项ΩL(u):第一项用于根据ANN的至少一个输入激活参数(aj)来提供经归一化的权重值,经归一化 的权重值近似于ANN的至少一个输出激活参数(bj);并且正则化项 ΩL(u)被配置为将与所选择的网格的网格点有距离的经归一化的权重 值放大。
在实施例中,在与权重矢量矩阵(U)的项uk的所选择的网格的 网格点的距离可忽略时,正则化项ΩL(u)达到最小值。在实施例中, 优化问题被表示为:
Figure BDA0003176764410000251
其中
S指示ANN的所述多个处理层中的所选择的处理层的处理层参 数,
aj是ANN的多个处理层中的所选择的处理层的处理层参数的输 入激活参数并且bj是输出激活参数,
ρ是ANN的多个处理层中的所选择的处理层的处理层参数的激 活函数参数,
uk是权重矢量矩阵的项,以及
λ是缩放因子。
在实施例中,正则化项ΩL(u)可以被表示为:
Figure BDA0003176764410000252
其中
σ2是统计方差参数,并且
cw是基矢量集中标识所述网格的基矢量。
在实施例中,求解优化问题包括对经归一化的权重矢量矩阵(U) 应用第二缩放因子。在实施例中,第二缩放因子的值在0和1之间。 在实施例中,归一化处理包括使用随机梯度下降SGD处理来计算优 化问题。在实施例中,执行权重值的矢量化包括:沿着维度的有序序 列来处理至少一个权重参数集(wi)中的元素;沿着维度的有序序列, 从至少一个权重参数集(wi)中提取权重值;以及通过将所提取的权 重值布置为矢量集(u1,u2,u3)中的相应矢量的元素,提供权重矢 量集(u1,u2,u3),其中权重矢量集(u1,u2,u3)中的权重矢量具 有相应矢量尺寸,矢量尺寸等于维度参数(d)的整数值。在实施例 中,LVQ处理包括:根据维度参数(d)的整数值,选择具有多个网 格点的网格和基矢量集;以及使用所选择的网格的基矢量集,对权重 矢量集(u1,u2,u3)应用量化。在实施例中,ANN是卷积神经网络 (CNN)。在实施例中,方法包括:访问经归一化的权重矢量矩阵中 的经归一化的权重值;解压缩所访问的经归一化的权重值,以产生经 解压缩的权重值;以及使用ANN的硬件加速器引擎,根据经解压缩 的权重值来执行操作。
在实施例中,非暂时性计算机可读介质的内容将计算系统配置为 执行方法,方法包括:实现具有多个处理层的人工神经网络(ANN), 处理层具有相应处理层参数,处理层参数包括至少一个权重参数集 (wi)、至少一个输入激活参数(aj)、至少一个输出激活参数(bj)以 及至少一个激活函数参数(ρ);将网格的维度参数(d)设置为整数 值,网格具有多个网格点并且由基矢量集(b1,b2)来标识;选择ANN 的多个处理层中的相应处理层的权重参数集(wi);对所选择的权重 参数集(wi)应用矢量化处理,产生权重矢量集(u1,u2,u3)并且将权重矢量集(u1,u2,u3)布置为权重矢量矩阵(U);执行权重矢 量矩阵(U)的归一化处理,从而产生经归一化的权重矢量矩阵(U’); 将网格矢量量化(LVQ)处理应用于经归一化的权重矢量矩阵(U’), 从而产生码字的码本;对所产生的码本应用索引处理,索引包括根据 网格来对码本的码字进行编码,产生相应索引元组(is,ia,ia LUT)以 及向ANN的神经处理电路提供所产生的索引元组(is,ia,ia LUT),其 中执行权重矢量矩阵(U)的归一化处理包括求解优化问题,优化问 题具有第一项和正则化项ΩL(u):第一项用于根据ANN的至少一个输 入激活参数(aj)来提供经归一化的权重值,经归一化的权重值近似 于ANN的至少一个输出激活参数(bj);并且正则化项ΩL(u)被配置 为将与所选择的网格的网格点有距离的经归一化的权重值放大。在实 施例中,优化问题被表示为:
Figure BDA0003176764410000271
其中
S指示ANN的所述多个处理层中的所选择的处理层的处理层参 数,
aj是ANN的多个处理层中的所选择的处理层的处理层参数的输 入激活参数并且bj是输出激活参数,
ρ是ANN的多个处理层中的所选择的处理层的处理层参数的激 活函数参数,
uk是权重矢量矩阵的项,以及
λ是缩放因子。
在实施例中,方法包括:访问经归一化的权重矢量矩阵中的经归 一化的权重值;解压缩所访问的经归一化的权重值,以产生经解压缩 的权重值;以及使用ANN的硬件加速器引擎,根据经解压缩的权重 值来执行操作。在实施例中,内容包括指令,指令在由计算系统执行 时,使计算系统执行方法。
在实施例中,设备包括:存储器;以及与存储器耦合的处理电路 系统,其中处理电路系统在操作中:将网格的维度参数(d)设置为 整数值,网格具有多个网格点并且由基矢量集(b1,b2)来标识;选 择人工神经网络(ANN)的多个处理层中的相应处理层的权重参数集(wi),ANN具有多个处理层,多个处理层具有相应处理层参数,处 理层参数包括至少一个权重参数集(wi)、至少一个输入激活参数(aj)、 至少一个输出激活参数(bj)以及至少一个激活函数参数(ρ);对所 选择的权重参数集(wi)应用矢量化处理,产生权重矢量集(u1,u2,u3)并且将权重矢量集(u1,u2,u3)布置为权重矢量矩阵(U);执 行权重矢量矩阵(U)的归一化处理,从而产生经归一化的权重矢量 矩阵(U’);将网格矢量量化(LVQ)处理应用于经归一化的权重矢 量矩阵(U’),从而产生码字的码本;以及索引所产生的码本,索引 包括根据网格来对码本的码字进行编码,从而产生相应索引元组(is, ia,ia LUT),其中执行权重矢量矩阵(U)的归一化处理包括求解优化 问题,优化问题具有第一项和正则化项ΩL(u):第一项用于根据ANN 的至少一个输入激活参数(aj)来提供经归一化的权重值,经归一化 的权重值近似于ANN的至少一个输出激活参数(bj);并且正则化项 ΩL(u)被配置为将与所选择的网格的网格点有距离的经归一化的权重 值放大。在实施例中,在与权重矢量矩阵(U)的项uk的所选择的网 格的网格点的距离可忽略时,正则化项ΩL(u)达到最小值。在实施例中,优化问题被表示为:
Figure BDA0003176764410000281
其中
S指示ANN的所述多个处理层中的所选择的处理层的处理层参 数,
aj是ANN的多个处理层中的所选择的处理层的处理层参数的输 入激活参数并且bj是输出激活参数,
ρ是ANN的多个处理层中的所选择的处理层的处理层参数的激 活函数参数,
uk是权重矢量矩阵的项,以及
λ是缩放因子。
在实施例中,正则化项ΩL(u)可以被表示为:
Figure BDA0003176764410000291
其中
σ2是统计方差参数,并且
cw是基矢量集中标识网格的基矢量。
在实施例中,求解优化问题包括对经归一化的权重矢量矩阵(U) 应用第二缩放因子。在实施例中,第二缩放因子的值在0和1之间。 在实施例中,归一化处理包括使用随机梯度下降SGD处理来计算优 化问题。在实施例中,执行权重值的矢量化包括:沿着维度的有序序 列来处理至少一个权重参数集(wi)中的元素;沿着维度的有序序列, 从至少一个权重参数集(wi)中提取权重值;以及通过将所提取的权 重值布置为矢量集(u1,u2,u3)中的相应矢量的元素,提供权重矢 量集(u1,u2,u3),其中权重矢量集(u1,u2,u3)中的权重矢量具 有相应矢量尺寸,矢量尺寸等于维度参数(d)的整数值。在实施例 中,LVQ处理包括:根据维度参数(d)的整数值,选择具有多个网 格点的网格和基矢量集;以及使用所选择的网格的基矢量集,对权重 矢量集(u1,u2,u3)应用量化。在实施例中,ANN是卷积神经网络 (CNN)。在实施例中,处理电路系统在操作中:访问经归一化的权 重矢量矩阵中的经归一化的权重值;解压缩所访问的经归一化的权重 值,以产生经解压缩的权重值;以及根据经解压缩的权重值来执行 ANN的操作。
在实施例中,系统包括:在操作中存储经压缩的经归一化的权重 值的存储器;处理核;以及与存储器和处理核耦合的硬件加速器引擎, 其中硬件加速器引擎在操作中:将所存储的经归一化的权重值解压 缩,从而产生经解压缩的权重值,并且根据所述经解压缩的权重值来 执行人工神经网络(ANN)的操作,其中所存储的经压缩的经归一化 的权重值对应于优化问题的求解,优化问题具有第一项和正则化项 ΩL(u):第一项用于根据ANN的至少一个输入激活参数(aj)来提供 经归一化的权重值,经归一化的权重值近似于ANN的至少一个输出 激活参数(bj);并且正则化项ΩL(u)被配置为将与所选择的网格的网 格点有距离的经归一化的权重值放大。在实施例中,处理核在操作中: 生成所存储的经压缩的经归一化的权重值,生成包括:将网格的维度 参数(d)设置为整数值,网格具有多个网格点并且由基矢量集(b1, b2)来标识;选择ANN的多个处理层中的相应处理层的权重参数集 (wi),ANN具有多个处理层,多个处理层具有相应处理层参数,处 理层参数包括至少一个权重参数集(wi)、至少一个输入激活参数(aj)、 至少一个输出激活参数(bj)以及至少一个激活函数参数(ρ);对所 选择的权重参数集(wi)应用矢量化处理,产生权重矢量集(u1,u2, u3)并且将权重矢量集(u1,u2,u3)布置为权重矢量矩阵(U);执 行权重矢量矩阵(U)的归一化处理,从而产生经归一化的权重矢量 矩阵(U’);将网格矢量量化(LVQ)处理应用于经归一化的权重矢 量矩阵(U’),从而产生码字的码本;以及索引所产生的码本,索引 包括根据网格来对码本的码字进行编码,从而产生相应索引元组(is, ia,ia LUT),其中执行权重矢量矩阵(U)的归一化处理包括求解优化 问题。
在实施例中,一种系统包括:存储器,在操作中存储经压缩的经 归一化的权重值;处理电路系统,被耦合到存储器。处理电路系统在 操作中:实现人工神经网络;将所存储的经归一化的权重值解压缩, 从而产生经解压缩的权重值;以及根据经解压缩的权重值来执行ANN 的操作。所存储的经压缩的经归一化的权重值对应于优化问题的求 解,优化问题具有:第一项,用于根据ANN的至少一个输入激活参 数来提供经归一化的权重值,经归一化的权重值近似于ANN的至少 一个输出激活参数;以及正则化项,用于将与所选择的网格的网格点 有距离的经归一化的权重值放大。系统使用ANN对图像进行分类, 分类包括执行ANN的操作。在实施例中,处理电路系统在操作中生 成所存储的经压缩的经归一化的权重值,生成包括:将网格的维度参 数(d)设置为整数值,网格具有多个网格点并且由基矢量集(b1, b2)来标识;选择ANN的多个处理层中的相应处理层的权重参数集(wi),ANN具有多个处理层,多个处理层具有相应处理层参数,处 理层参数包括至少一个权重参数集(wi)、至少一个输入激活参数(aj)、 至少一个输出激活参数(bj)以及至少一个激活函数参数(ρ);对所选择的权重参数集(wi)应用矢量化处理,产生权重矢量集(u1,u2, u3),并且将权重矢量集(u1,u2,u3)布置为权重矢量矩阵(U);执 行权重矢量矩阵(U)的归一化处理,从而产生经归一化的权重矢量 矩阵(U’);将网格矢量量化(LVQ)处理应用于经归一化的权重矢 量矩阵(U’),从而产生码字的码本;以及对所产生的码本进行索引, 索引包括根据网格来将码本的码字编码,从而产生相应索引元组(is, ia,ia LUT),其中执行权重矢量矩阵(U)的归一化处理包括解决优化 问题。在实施例中,处理电路系统包括:处理核;以及硬件加速器引 擎,被耦合到存储器和处理核,其中硬件加速器引擎在操作中将所存 储的经归一化的权重值解压缩并执行ANN的操作。
一些实施例可以采用或包括计算机程序产品的形式。例如,根据 一个实施例,提供了包括计算机程序的计算机可读介质,计算机程序 被适配用于执行上述方法或功能中的一个或多个方法或功能。介质可 以是物理存储介质,诸如例如只读存储器(ROM)芯片,或诸如数字 多功能磁盘(DVD-ROM)、光盘(CD-ROM)、硬盘的盘、存储器、 网络、或者通过适当的驱动装置或经由适当的连接读取的便携式介质 制品,包括在一个或多个条形码中或者在一个或多个这样的计算机可 读介质上存储并被适当读取设备读取的其他相关代码中编码的便携 式介质制品。
此外,在一些实施例中,方法和/或功能中的一些或全部可以以其 他方式来实现或提供,诸如至少部分地在固件和/或硬件中实现,固件 和/或硬件包括但不限于一个或多个专用集成电路(ASICS)、数字信 号处理器、分立电路系统、逻辑门、标准集成电路、控制器(例如, 通过执行适当的指令,并且包括微控制器和/或嵌入式控制器)、现场 可编程门阵列(FPGA)、复杂可编程逻辑设备(CPLD)等以及采用 RFID技术的设备及其各种组合。
上述各种实施例可以被组合来提供进一步的实施例。根据需要, 实施例的各个方面可以被修改,以采用各种专利、申请和出版物的概 念来提供其他实施例。
鉴于上述描述,可以对实施例进行这些和其他改变。通常,在所 附权利要求中,所使用的术语不应被解释为将权利要求限制为说明书 和权利要求中所公开的特定实施例,而是应被解释为包括这样的权利 要求所要求保护的所有可能的实施例以及等同物的全部范围。因此, 权利要求不受本公开内容的限制。

Claims (31)

1.一种方法,包括:
实现具有多个处理层的人工神经网络(ANN),所述多个处理层具有相应处理层参数,所述处理层参数包括至少一个权重参数集(wi)、至少一个输入激活参数(aj)、至少一个输出激活参数(bj)以及至少一个激活函数参数(ρ);
将网格的维度参数(d)设置为整数值,所述网格具有多个网格点,并且由基矢量集(b1,b2)来标识;
选择所述ANN的所述多个处理层中的相应处理层的权重参数集(wi);
对所选择的所述权重参数集(wi)应用矢量化处理,产生权重矢量集(u1,u2,u3),并且将所述权重矢量集(u1,u2,u3)布置为权重矢量矩阵(U);
执行所述权重矢量矩阵(U)的归一化处理,产生经归一化的权重矢量矩阵(U’);
对所述经归一化的权重矢量矩阵(U’)应用网格矢量量化(LVQ)处理,产生码字的码本;
对所产生的所述码本应用索引处理,所述索引包括根据所述网格来对所述码本的码字进行编码,产生相应索引元组(is,ia,ia LUT);以及
向所述ANN的神经处理电路提供所产生的索引元组(is,ia,ia LUT),
其中执行所述权重矢量矩阵(U)的所述归一化处理包括:求解优化问题,所述优化问题具有:
第一项,用于根据所述ANN的所述至少一个输入激活参数(aj)来提供经归一化的权重值,所述经归一化的权重值近似于所述ANN的所述至少一个输出激活参数(bj);以及
正则化项ΩL(u),用于将与所选择的所述网格的所述网格点有距离的经归一化的权重值放大。
2.根据权利要求1所述的方法,其中在与所述权重矢量矩阵(U)的项uk的所选择的所述网格的所述网格点的距离可忽略时,所述正则化项ΩL(u)达到最小值。
3.根据权利要求1所述的方法,其中所述优化问题被表示为:
Figure FDA0003176764400000021
其中
S指示所述ANN的所述多个处理层中所选择的所述处理层的所述处理层参数,
aj是所述ANN的所述多个处理层中所选择的所述处理层的所述处理层参数的所述输入激活参数,并且bj是所述输出激活参数,
ρ是所述ANN的所述多个处理层中所选择的所述处理层的所述处理层参数的所述激活函数参数,
uk是所述权重矢量矩阵的项,以及
λ是缩放因子。
4.根据权利要求3所述的方法,其中所述正则化项ΩL被表示为:
Figure FDA0003176764400000022
其中
σ2是统计方差参数;并且
cw是所述基矢量集中标识所述网格的基矢量。
5.根据权利要求4所述的方法,其中求解所述优化问题包括:对所述经归一化的权重矢量矩阵(U)应用第二缩放因子。
6.根据权利要求5所述的方法,其中所述第二缩放因子的值在0与1之间。
7.根据权利要求1所述的方法,其中所述归一化处理包括:使用随机梯度下降(SGD)处理来求解所述优化问题。
8.根据权利要求1所述的方法,其中执行权重值的所述矢量化包括:
沿着维度的有序序列来处理所述至少一个权重参数集(wi)中的元素;
沿着所述维度的有序序列,从所述至少一个权重参数集(wi)提取权重值;以及
通过以下来提供权重矢量集(u1,u2,u3):将所提取的所述权重值布置为所述矢量集(u1,u2,u3)中的相应矢量的元素,其中所述权重矢量集(u1,u2,u3)中的权重矢量具有相应矢量尺寸,所述相应矢量尺寸等于所述维度参数(d)的所述整数值。
9.根据权利要求1所述的方法,其中所述LVQ处理包括:
根据所述维度参数(d)的所述整数值,选择具有多个网格点和基矢量集的所述网格;以及
使用所选择的所述网格的所述基矢量集,对所述权重矢量集(u1,u2,u3)应用量化。
10.根据权利要求1所述的方法,所述ANN是卷积神经网络(CNN)。
11.根据权利要求1所述的方法,包括:
访问所述经归一化的权重矢量矩阵中的经归一化的权重值;
解压缩所访问的所述经归一化的权重值,以产生经解压缩的权重值;以及
使用所述ANN的硬件加速器引擎,根据所述经解压缩的权重值来执行操作。
12.一种具有内容的非暂时性计算机可读介质,所述内容将计算设备配置为执行方法,所述方法包括:
实现具有多个处理层的人工神经网络(ANN),所述多个处理层具有相应处理层参数,所述处理层参数包括至少一个权重参数集(wi)、至少一个输入激活参数(aj)、至少一个输出激活参数(bj)以及至少一个激活函数参数(ρ);
将网格的维度参数(d)设置为整数值,所述网格具有多个网格点,并且由基矢量集(b1,b2)来标识;
选择所述ANN的所述多个处理层中的相应处理层的权重参数集(wi);
对所选择的所述权重参数集(wi)应用矢量化处理,产生权重矢量集(u1,u2,u3),并且将所述权重矢量集(u1,u2,u3)布置为权重矢量矩阵(U);
执行所述权重矢量矩阵(U)的归一化处理,产生经归一化的权重矢量矩阵(U’);
对所述经归一化的权重矢量矩阵(U’)应用网格矢量量化(LVQ)处理,产生码字的码本;
对所产生的所述码本应用索引处理,所述索引包括根据所述网格来对所述码本的码字进行编码,产生相应索引元组(is,ia,ia LUT);以及
向所述ANN的神经处理电路提供所产生的索引元组(is,ia,ia LUT),
其中执行所述权重矢量矩阵(U)的所述归一化处理包括:求解优化问题,所述优化问题具有:
第一项,用于根据所述ANN的所述至少一个输入激活参数(aj)来提供经归一化的权重值,所述经归一化的权重值近似于所述ANN的所述至少一个输出激活参数(bj);以及
正则化项ΩL(u),用于将与所选择的所述网格的所述网格点有距离的经归一化的权重值放大。
13.根据权利要求12所述的非暂时性计算机可读介质,其中所述优化问题被表示为:
Figure FDA0003176764400000041
其中
S指示所述ANN的所述多个处理层中所选择的所述处理层的所述处理层参数,
aj是所述ANN的所述多个处理层中所选择的所述处理层的所述处理层参数的所述输入激活参数,并且bj是所述输出激活参数,
ρ是所述ANN的所述多个处理层中所选择的所述处理层的所述处理层参数的所述激活函数参数,
uk是所述权重矢量矩阵的项,以及
λ是缩放因子。
14.根据权利要求12所述的非暂时性计算机可读介质,其中所述方法包括:
访问所述经归一化的权重矢量矩阵中的经归一化的权重值;
解压缩所访问的所述经归一化的权重值,以产生经解压缩的权重值;以及
使用所述ANN的硬件加速器引擎,根据所述经解压缩的权重值来执行操作。
15.根据权利要求12所述的非暂时性计算机可读介质,其中所述内容包括指令,所述指令在由所述计算系统执行时,使所述计算系统执行所述方法。
16.一种设备,包括:
存储器;以及
处理电路系统,被耦合到所述存储器,其中所述处理电路系统在操作中:
将网格的维度参数(d)设置为整数值,所述网格具有多个网格点,并且由基矢量集(b1,b2)来标识;
选择人工神经网络(ANN)的多个处理层中的相应处理层的权重参数集(wi),所述ANN具有多个处理层,所述多个处理层具有相应处理层参数,所述处理层参数包括至少一个权重参数集(wi)、至少一个输入激活参数(aj)、至少一个输出激活参数(bj)以及至少一个激活函数参数(ρ);
对所选择的所述权重参数集(wi)应用矢量化处理,产生权重矢量集(u1,u2,u3),并且将所述权重矢量集(u1,u2,u3)布置为权重矢量矩阵(U);
执行所述权重矢量矩阵(U)的归一化处理,产生经归一化的权重矢量矩阵(U’);
对所述经归一化的权重矢量矩阵(U’)应用网格矢量量化(LVQ)处理,产生码字的码本;以及
对所产生的所述码本进行索引,所述索引包括根据所述网格来对所述码本的码字进行编码,产生相应索引元组(is,ia,ia LUT),其中执行所述权重矢量矩阵(U)的所述归一化处理包括:求解优化问题,所述优化问题具有:
第一项,用于根据所述ANN的所述至少一个输入激活参数(aj)来提供经归一化的权重值,所述经归一化的权重值近似于所述ANN的所述至少一个输出激活参数(bj);以及
正则化项ΩL(u),用于将与所选择的所述网格的所述网格点有距离的经归一化的权重值放大。
17.根据权利要求16所述的设备,其中在与所述权重矢量矩阵(U)的项uk的所选择的网格的所述网格点的距离可忽略时,所述正则化项ΩL(u)达到最小值。
18.根据权利要求16所述的设备,其中所述优化问题被表示为:
Figure FDA0003176764400000061
其中
S指示所述ANN的所述多个处理层中所选择的所述处理层的所述处理层参数,
aj是所述ANN的所述多个处理层中所选择的所述处理层的所述处理层参数的所述输入激活参数,并且bj是所述输出激活参数,
ρ是所述ANN的所述多个处理层中所选择的所述处理层的所述处理层参数的所述激活函数参数,
uk是所述权重矢量矩阵的项,以及
λ是缩放因子。
19.根据权利要求16所述的设备,其中所述正则化项ΩL被表示为:
Figure FDA0003176764400000071
其中
σ2是统计方差参数;并且
cw是所述基矢量集中标识所述网格的基矢量。
20.根据权利要求19所述的设备,其中求解所述优化问题包括:对所述经归一化的权重矢量矩阵(U)应用第二缩放因子。
21.根据权利要求20所述的设备,其中所述第二缩放因子的值在0与1之间。
22.根据权利要求16所述的设备,其中所述归一化处理包括:使用随机梯度下降(SGD)处理来求解所述优化问题。
23.根据权利要求16所述的设备,其中执行权重值的所述矢量化包括:
沿着维度的有序序列来处理所述至少一个权重参数集(wi)中的元素;
沿着所述维度的有序序列,从所述至少一个权重参数集(wi)提取权重值;以及
通过以下来提供权重矢量集(u1,u2,u3):将所提取的所述权重值布置为所述矢量集(u1,u2,u3)中的相应矢量的元素,其中所述权重矢量集(u1,u2,u3)中的权重矢量具有相应矢量尺寸,所述相应矢量尺寸等于所述维度参数(d)的所述整数值。
24.根据权利要求16所述的设备,其中所述LVQ处理包括:
根据所述维度参数(d)的所述整数值,选择具有多个网格点的所述网格和基矢量集;以及
使用所选择的所述网格的所述基矢量集,对所述权重矢量集(u1,u2,u3)应用量化。
25.根据权利要求16所述的设备,其中所述ANN是卷积神经网络(CNN)。
26.根据权利要求16所述的设备,其中所述处理电路系统在操作中:
访问所述经归一化的权重矢量矩阵中的经归一化的权重值;
解压缩所访问的所述经归一化的权重值,以产生经解压缩的权重值;以及
根据所述经解压缩的权重值来执行所述ANN的操作。
27.一种系统,包括:
存储器,在操作中存储经压缩的经归一化的权重值;
处理核;以及
硬件加速器引擎,被耦合到所述存储器和所述处理核,其中所述硬件加速器引擎在操作中:
解压缩所存储的经归一化的权重值,产生经解压缩的权重值,以及
根据所述经解压缩的权重值来执行人工神经网络(ANN)的操作,其中所存储的所述经压缩的经归一化的权重值对应于优化问题的求解,所述优化问题具有:
第一项,用于根据所述ANN的至少一个输入激活参数(aj)来提供经归一化的权重值,所述经归一化的权重值近似于所述ANN的至少一个输出激活参数(bj);以及
正则化项ΩL(u),用于将与所选择的网格的网格点有距离的经归一化的权重值放大。
28.根据权利要求27所述的系统,其中所述处理核在操作中,生成所存储的所述经压缩的经归一化的权重值,所述生成包括:
将所述网格的维度参数(d)设置为整数值,所述网格具有多个网格点并且由基矢量集(b1,b2)来标识;
选择所述ANN的多个处理层中的相应处理层的权重参数集(wi),所述ANN具有多个处理层,所述多个处理层具有相应处理层参数,所述处理层参数包括所述至少一个权重参数集(wi)、所述至少一个输入激活参数(aj)、所述至少一个输出激活参数(bj)以及至少一个激活函数参数(ρ);
对所选择的所述权重参数集(wi)应用矢量化处理,产生权重矢量集(u1,u2,u3),并且将所述权重矢量集(u1,u2,u3)布置为权重矢量矩阵(U);
执行所述权重矢量矩阵(U)的归一化处理,产生经归一化的权重矢量矩阵(U’);
对经归一化的权重矢量矩阵(U’)应用网格矢量量化(LVQ)处理,产生码字的码本;以及
对所产生的所述码本进行索引,所述索引包括根据所述网格来对所述码本的码字进行编码,产生相应索引元组(is,ia,ia LUT),其中执行所述权重矢量矩阵(U)的所述归一化处理包括求解所述优化问题。
29.一种系统,包括:
存储器,在操作中存储经压缩的经归一化的权重值;
处理电路系统,被耦合到所述存储器,其中所述处理电路系统在操作中:
实现人工神经网络;
解压缩所存储的经归一化的权重值,产生经解压缩的权重值,以及
根据所述经解压缩的权重值来执行所述ANN的操作,其中所存储的所述经压缩的经归一化的权重值对应于优化问题的求解,所述优化问题具有:
第一项,用于根据所述ANN的至少一个输入激活参数来提供经归一化的权重值,所述经归一化的权重值近似于所述ANN的至少一个输出激活参数;以及
正则化项,用于将与所选择的网格的网格点有距离的经归一化的权重值放大;以及
使用所述ANN对图像进行分类,所述分类包括执行所述ANN的所述操作。
30.根据权利要求29所述的系统,其中所述处理电路系统在操作中生成所存储的所述经压缩的经归一化的权重值,所述生成包括:
将所述网格的维度参数(d)设置为整数值,所述网格具有多个网格点并且由基矢量集(b1,b2)来标识;
选择所述ANN的多个处理层中的相应处理层的权重参数集(wi),所述ANN具有多个处理层,所述多个处理层具有相应处理层参数,所述处理层参数包括至少一个权重参数集(wi)、至少一个输入激活参数(aj)、所述至少一个输出激活参数(bj)以及至少一个激活函数参数(ρ);
对所选择的所述权重参数集(wi)应用矢量化处理,产生权重矢量集(u1,u2,u3),并且将所述权重矢量集(u1,u2,u3)布置为权重矢量矩阵(U);
执行所述权重矢量矩阵(U)的归一化处理,从而产生经归一化的权重矢量矩阵(U’);
对所述经归一化的权重矢量矩阵(U’)应用网格矢量量化(LVQ)处理,产生码字的码本;以及
对所产生的所述码本进行索引,所述索引包括根据所述网格来对所述码本的码字进行编码,产生相应索引元组(is,ia,ia LUT),其中执行所述权重矢量矩阵(U)的所述归一化处理包括求解所述优化问题。
31.根据权利要求29所述的系统,其中所述处理电路系统包括:
处理核;以及
硬件加速器引擎,被耦合到所述存储器和所述处理核,其中所述硬件加速器引擎在操作中解压缩所存储的所述经归一化的权重值并且执行所述ANN的所述操作。
CN202110835501.1A 2020-07-24 2021-07-23 人工神经网络处理方法和系统 Pending CN113971456A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
IT102020000018043 2020-07-24
IT102020000018043A IT202000018043A1 (it) 2020-07-24 2020-07-24 Procedimenti e sistemi di elaborazione di rete neurale artificiale
US17/383,132 US20220027715A1 (en) 2020-07-24 2021-07-22 Artificial neural network processing methods and system
US17/383,132 2021-07-22

Publications (1)

Publication Number Publication Date
CN113971456A true CN113971456A (zh) 2022-01-25

Family

ID=79586331

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110835501.1A Pending CN113971456A (zh) 2020-07-24 2021-07-23 人工神经网络处理方法和系统

Country Status (1)

Country Link
CN (1) CN113971456A (zh)

Similar Documents

Publication Publication Date Title
US20220027715A1 (en) Artificial neural network processing methods and system
US20200134460A1 (en) Processing method and accelerating device
KR102434728B1 (ko) 처리방법 및 장치
US10599935B2 (en) Processing artificial neural network weights
EP3924892A1 (en) Adjusting activation compression for neural network training
US20180082181A1 (en) Neural Network Reordering, Weight Compression, and Processing
WO2020014590A1 (en) Generating a compressed representation of a neural network with proficient inference speed and power consumption
CN114207629A (zh) 用于在神经网络加速器中读写稀疏数据的系统和方法
KR20210096679A (ko) 인코딩된 데이터를 디코딩하기 위한 신경망 및 시스템
US11662904B2 (en) Non-volatile memory with on-chip principal component analysis for generating low dimensional outputs for machine learning
US11468316B2 (en) Cluster compression for compressing weights in neural networks
CN109389208B (zh) 数据的量化装置及量化方法
WO2022179588A1 (zh) 一种数据编码方法以及相关设备
Jain et al. Symmetric $ k $-means for deep neural network compression and hardware acceleration on FPGAs
Ko et al. Design and analysis of a neural network inference engine based on adaptive weight compression
CN114698395A (zh) 神经网络模型的量化方法和装置、数据处理的方法和装置
CN109389209B (zh) 处理装置及处理方法
US20210133570A1 (en) Neural network method and apparatus
WO2023051335A1 (zh) 数据编码方法、数据解码方法以及数据处理装置
KR20210053791A (ko) 뉴럴 네트워크의 데이터를 처리하는 방법 및 장치
Malach et al. Hardware-based real-time deep neural network lossless weights compression
CN113971456A (zh) 人工神经网络处理方法和系统
US20220129729A1 (en) Processor for neural network, processing method for neural network, and non-transitory computer readable storage medium
US20190221006A1 (en) Selecting encoding options
CN109212960B (zh) 基于权值敏感度的二值神经网络硬件压缩方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination