CN111382848A - 一种计算装置及相关产品 - Google Patents
一种计算装置及相关产品 Download PDFInfo
- Publication number
- CN111382848A CN111382848A CN201811619060.6A CN201811619060A CN111382848A CN 111382848 A CN111382848 A CN 111382848A CN 201811619060 A CN201811619060 A CN 201811619060A CN 111382848 A CN111382848 A CN 111382848A
- Authority
- CN
- China
- Prior art keywords
- summation
- unit
- instruction
- compression
- weight matrix
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Image Analysis (AREA)
- Machine Translation (AREA)
Abstract
本申请提供了一种计算装置及相关产品,所述计算装置包括压缩单元、运算单元以及控制器单元;通过采用压缩的方法对第一权值矩阵进行压缩,直至压缩后的神经网络模型达到比较好的压缩效果。通过本申请,可以保证神经网络模型的拓扑结构保持不变,从而避免了神经网络模型的拓扑结构出现不规则,减少了神经网络的运算量。
Description
技术领域
本申请涉及信息处理技术领域,具体涉及一种计算装置及相关产品。
背景技术
神经网络是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型, 这种网络由大量的节点(或称神经元)之间星湖连接构成,通过调整内部大量节点之间相互 连接的关系,利用输入神经元数据、权值产生输出数据模拟人脑的信息处理过程处理信息并 生成模式识别之后的结果。
目前,神经网络被广泛应用在计算机视觉的各个领域,如图像识别、物体检测、图像分 割等。然而,在实际应用中,神经网络模型往往有着数量庞大的模型参数(例如,超大规模 权值),在这种情况下,这意味着神经网络需要大量的计算资源和存储资源,大量的计算资源 和存储资源的开销会降低神经网络的运算速度,对硬件的传输带宽以及运算器的要求也大大 提高了,因此,如何在减少神经网络模型的参数的同时,降低神经网络的计算量变得十分重 要。
现有技术中,通过剪枝方法对神经网络模型的参数进行调整,以减少神经网络模型的参 数以及降低神经网络的计算量。以对神经网络的权值进行剪枝为例,如图1A所示,在对神 经网络的权值进行剪枝之前,神经网络的拓扑结构是规则的,然而,在对神经网络的权值进 行剪枝之后,容易导致神经网络模型中原有的规则的拓扑结构变得不规则。那么,如何避免 神经网络模型中的拓扑结构变得不规则是亟需解决的技术问题。
发明内容
本申请实施例提供了一种计算装置及相关产品,在神经网络压缩过程中,可以保证神经 网络模型的拓扑结构保持不变,从而避免了神经网络模型的拓扑结构出现不规则,减少了神 经网络的运算量。
第一方面,提供一种计算装置,所述计算装置用于执行机器学习模型机器学习计算,所 述计算装置包括:压缩单元、运算单元以及控制器单元;
所述控制器单元,用于获取针对第一输入数据的压缩请求,并根据所述压缩请求指示所 述压缩单元对所述第一输入数据进行压缩;其中,所述第一输入数据包括第一权值矩阵;
所述压缩单元,用于将第一权值矩阵压缩为第二权值矩阵;其中,所述第二权值矩阵包 括至少两个求和项;
所述控制器单元,还用于获取第二输入数据以及计算指令;所述第二输入数据包括所述 第二权值矩阵以及输入神经元数据;
所述控制器单元,还用于解析该计算指令得到多个运算指令,将所述多个运算指令以及 所述第二输入数据发送给运算单元;
所述运算单元获取所述运算指令,并根据所述运算指令以及所述第二输入数据执行神经 网络计算。
通过本申请,可以通过压缩单元将第一权值矩阵压缩得到第二权值矩阵,其中,第二权 值矩阵中包括至少两个求和项,并且,这两个求和项中的每个求和项包括多个压缩参数,继 而可以根据第二权值矩阵以及输入神经元数据执行神经网络计算,解决了现有技术中采用神 经网络剪枝算法容易带来的神经网络的拓扑结构出现不规则的情形,可以对神经网络进行深 度压缩,可以减少神经网络的计算量,提高运算速度。
第二方面,本申请实施例提供了一种机器学习运算装置,该机器学习运算装置包括一个 或者多个第一方面所述的计算装置。该机器学习运算装置用于从其他处理装置中获取待运算 数据和控制信息,并执行指定的机器学习运算,将执行结果通过I/O接口传递给其他处理装 置;
当所述机器学习运算装置包含多个所述计算装置时,所述多个所述计算装置间可以通过 特定的结构进行链接并传输数据;
其中,多个所述计算装置通过PCIE总线进行互联并传输数据,以支持更大规模的机器 学习的运算;多个所述计算装置共享同一控制***或拥有各自的控制***;多个所述计算装 置共享内存或者拥有各自的内存;多个所述计算装置的互联方式是任意互联拓扑。
第三方面,本申请实施例提供了一种组合处理装置,该组合处理装置包括如第三方面所 述的机器学习处理装置、通用互联接口,和其他处理装置。该机器学习运算装置与上述其他 处理装置进行交互,共同完成用户指定的操作。该组合处理装置还可以包括存储装置,该存 储装置分别与所述机器学习运算装置和所述其他处理装置连接,用于保存所述机器学习运算 装置和所述其他处理装置的数据。
第四方面,本申请实施例提供了一种神经网络芯片,该神经网络芯片包括上述第一方面 所述的计算装置、上述第二方面所述的机器学习运算装置或者上述第三方面所述的组合处理 装置。
第五方面,本申请实施例提供了一种神经网络芯片封装结构,该神经网络芯片封装结构 包括上述第四方面所述的神经网络芯片。
第六方面,本申请实施例提供了一种板卡,该板卡包括上述第五方面所述的神经网络芯 片封装结构。
第七方面,本申请实施例提供了一种电子装置,该电子装置包括上述第六方面所述的神 经网络芯片或者上述第六方面所述的板卡。
第八方面,本申请实施例还提供一种执行机器学习模型的计算方法,所述计算方法应用 于计算装置,计算装置用于执行机器学习计算;所述计算装置包括:压缩单元、运算单元以 及控制器单元;所述方法包括:
所述控制器单元获取针对第一输入数据的压缩请求,并根据所述压缩请求指示所述压缩 单元对所述第一输入数据进行压缩;其中,所述第一输入数据包括第一权值矩阵;
所述压缩单元,用于将第一权值矩阵压缩为第二权值矩阵;其中,所述第二权值矩阵包 括至少两个求和项;
所述控制器单元,还用于获取第二输入数据以及计算指令;所述第二输入数据包括所述 第二权值矩阵以及输入神经元数据;
所述控制器单元,还用于解析该计算指令得到多个运算指令,将所述多个运算指令以及 所述第二输入数据发送给运算单元;
所述运算单元,用于获取所述运算指令,并根据所述运算指令以及所述第二输入数据执 行神经网络计算。
在一些实施例中,所述电子设备包括数据处理装置、机器人、电脑、打印机、扫描仪、 平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或 医疗设备。
在一些实施例中,所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空 调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附 图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通 技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A是本申请实施例提供的一种对神经网络剪枝的操作示意图;
图1B是本申请实施例提供的一种计算装置的结构示意图;
图2是本申请实施例提供的一种控制单元的结构示意图;
图3是本申请实施例提供的一种神经网络运算方法的流程示意图;
图4是本申请实施例提供的一种神经网络压缩方法的流程示意图;
图5A是本申请实施例提供的一种神经网络架构的示意图;
图5B是本申请实施例提供的一种全连接层权值矩阵的示意图;
图5C是本申请实施例提供的一种卷积层中卷积核的结构示意图;
图6是本申请实施例提供的另一种计算装置的结构示意图;
图7是本申请实施例提供的主处理电路的结构示意图;
图8是本申请实施例提供的另一种计算装置的结构示意图;
图9是本申请实施例提供的树型模块的结构示意图;
图10是本申请实施例提供的又一种计算装置的结构图;
图11是本申请实施例提供的还一种计算装置的结构图;
图12是本申请实施例提供的另一种计算装置的结构图;
图13是本申请实施例提供的一种组合处理装置的结构图;
图14是本申请实施例提供的另一种组合处理装置的结构图;
图15是本申请实施例提供的一种板卡的结构示意图
图16是本申请实施例提供的一种神经网络压缩方法的流程示意图;
图17A是本申请实施例提供的一种神经网络压缩装置的结构示意图;
图17B是本申请实施例提供的一种压缩单元的结构示意图;
图18是本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描 述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的 实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属 于本申请保护的范围。
本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是 用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变 形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、***、产品 或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选 地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本 申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例, 也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的 是,本文所描述的实施例可以与其它实施例相结合。
本申请提供了一种压缩元,用于将第一权值矩阵压缩为第二权值矩阵,解决了现有技术 中采用神经网络剪枝算法容易带来的神经网络的拓扑结构出现不规则的情形。在实际应用中, 上述压缩单元可以用于神经网络计算中,具体地,用于执行神经网络计算的计算装置中,下 面结合图1B所示的计算装置对本发明进行介绍。
参阅图1B,图1B是本发明实施例提供的一种计算装置的结构示意图,该计算装置用于 执行机器学习计算,该计算装置包括:控制器单元11、运算单元12以及压缩单元13,其中, 控制器单元11分别与运算单元12以及压缩单元13连接;
其中,控制器单元11,用于获取针对第一输入数据的压缩请求,并根据所述压缩请求指 示所述压缩单元对所述第一输入数据进行压缩;其中,所述第一输入数据包括第一权值矩阵; 在一种可选方案中,该压缩请求可以通过数据输入输出单元进行触发的,该数据输入输出单 元具体可以为一个或多个数据I/O接口或I/O引脚;
所述压缩单元13,用于将所述第一权值矩阵压缩为第二权值矩阵;其中,第二权值矩阵 中包括至少两个求和项;
具体实现中,所述压缩单元13包括分解单元131、求解单元132以及训练单元133。其 中,分解单元131,用于将所述第一权值矩阵分解成第三权值矩阵;其中,所述第三权值矩 阵包括至少两个求和项;求解单元132,用于根据第一公式确定所述至少两个求和项中的每 个求和项的大小,所述第一公式为Q≈Q1+Q2+...+Qn;其中,所述Q表示第一权值矩阵;所述Q1表示所述至少两个求和项中的第一求和项,所述Q2表示所述至少两个求和项中的第二求和项,所述Qn表示所述至少两个求和项 中的第n求和项,训练单元133,用于调整所述至少两个求和项中 的每个求和项的大小,并通过训练压缩后的机器学习模型,以得到满足预设精度的第二权值 矩阵。
所述控制器单元11,还用于获取第二输入数据以及计算指令;所述第二输入数据包括第 二权值矩阵以及输入神经元数据;在一种可选方案中,具体的,获取第二输入数据以及计算 指令方式可以通过数据输入输出单元得到,该数据输入输出单元具体可以为一个或多个数据 I/O接口或I/O引脚。
所述控制器单元11,还用于解析该计算指令得到多个运算指令,将所述多个运算指令以 及所述第二输入数据发送给运算单元;
所述运算单元12,用于获取所述运算指令,并根据所述运算指令以及所述第二输入数据 执行神经网络计算。
在其中一个实现方式中,考虑到上述计算装置中设置有“压缩指令”,在这种情况下,控 制器单元11,用于获取第一输入数据以及压缩指令;其中,所述第一输入数据包括第一权值 矩阵;在一种可选方案中,具体的,获取第一输入数据以及压缩指令方式可以通过数据输入 输出单元得到,该数据输入输出单元具体可以为一个或多个数据I/O接口或I/O引脚。
所述控制器单元11,还用于解析该压缩指令得到多个操作指令,将所述多个操作指令以 及所述第一权值矩阵发送给压缩单元;
所述压缩单元13,用于根据所述多个操作指令将所述第一权值矩阵压缩为第二权值矩阵; 其中,所述第二权值矩阵包括至少两个求和项;
所述控制器单元11,还用于获取第二输入数据以及计算指令;所述第二输入数据包括所 述第二权值矩阵以及输入神经元数据;在一种可选方案中,具体的,获取第二输入数据以及 计算指令方式可以通过数据输入输出单元得到,该数据输入输出单元具体可以为一个或多个 数据I/O接口或I/O引脚。
所述控制器单元11,还用于解析该计算指令得到多个运算指令,将所述多个运算指令以 及所述第二输入数据发送给运算单元;
所述运算单元12,用于获取所述运算指令,并根据所述运算指令以及所述第二输入数据 执行神经网络计算。
具体实现中,所述运算单元12包括主处理电路101以及多个从处理电路102,所述主处 理电路101,用于对所述第二输入数据执行前序处理以及与所述多个从处理电路之间传输数 据以及运算指令;
多个从处理电路102,用于依据从所述主处理电路传输的数据以及运算指令并行执行中 间运算得到多个中间结果,并将多个中间结果传输给所述主处理电路;
主处理电路101,用于对所述多个中间结果执行后续处理得到所述计算指令的计算结果。
可选的,上述第二输入数据具体可以包括:第二权值矩阵以及输入神经元数据。上述计 算结果具体可以为:神经网络运算的结果即输出神经元数据。
在其中一个实施方式中,上述计算装置还可以包括:该存储单元10和直接内存访问单元 50,存储单元10可以包括:寄存器、缓存中的一个或任意组合,具体的,所述缓存,用于存 储所述计算指令;所述寄存器,用于存储所述输入数据和标量;所述缓存为高速暂存缓存。 直接内存访问单元50用于从存储单元10读取或存储数据。
本申请实施例中,如图2所示,该控制器单元11包括:指令缓存单元110、指令处理单 元111、依赖关系处理单元112以及存储队列单元113;
指令缓存单元110,用于存储所述人工神经网络运算关联的计算指令,在第零计算指令 在被执行的过程中,同时将未被提交执行的其他指令缓存在所述指令缓存单元110中,当所 述第零计算指令执行完之后,如果第一计算指令是指令缓存单元110中未被提交指令中最早 的一条指令,则所述第一计算指令将被提交,一旦提交,该指令进行的操作对装置状态的改 变将无法撤销;
所述指令处理单元111,用于从所述指令缓存单元获取所述计算指令,并对所述计算指 令解析得到多个操作指令;
所述依赖关系处理单元112,用于在具有多个操作指令时,确定第一操作指令与所述第 一操作指令之前的第零操作指令是否存在关联关系,如所述第一操作指令与所述第零操作指 令存在关联关系,则将所述第一操作指令存储到指令队列单元113内,在所述第零操作指令 执行完毕后,所述第一操作指令与所述第零操作指令的关联关系解除,则从所述指令队列单 元113中提取所述第一操作指令传输至所述运算单元;
所述确定该第一操作指令与第一操作指令之前的第零操作指令是否存在关联关系包括:
依据所述第一操作指令提取所述第一操作指令中所需数据(例如矩阵)的第一存储地址 区间,依据所述第零操作指令提取所述第零操作指令中所需矩阵的第零存储地址区间,如所 述第一存储地址区间与所述第零存储地址区间具有重叠的区域,则确定所述第一操作指令与 所述第零操作指令具有关联关系,如所述第一存储地址区间与所述第零存储地址区间不具有 重叠的区域,则确定所述第一操作指令与所述第零操作指令不具有关联关系。
存储队列单元113,用于存储指令队列,该指令队列包括:按该队列的前后顺序待执行 的多个操作指令或计算指令。
本申请实施例中,如图2所示,所述指令处理单元111包括取指模块、译码模块以及指 令队列,其中,所述取指模块,用于从所述指令缓存单元110中获取神经网络的计算指令; 所述译码模块用于对所述取指模块获取的计算指令进行译码,得到神经网络的操作指令;所 述指令队列用于对译码后得到的操作指令,按照待执行的先后顺序进行顺序存储。
举例说明,在一个可选的技术方案中,主运算处理电路也可以包括一个控制器单元,该 控制器单元可以包括主指令处理单元,具体用于将指令译码成微指令。当然在另一种可选方 案中,从运算处理电路也可以包括另一个控制器单元,该另一个控制器单元包括从指令处理 单元,具体用于接收并处理微指令。上述微指令可以为指令的下一级指令,该微指令可以通 过对指令的拆分或解码后获得,能被进一步解码为各部件、各单元或各处理电路的控制信号。
在一种可选方案中,该计算指令的结构可以如下表所示。
表1
操作码 | 寄存器或立即数 | 寄存器/立即数 | ... |
上表中的省略号表示可以包括多个寄存器或立即数。
在另一种可选方案中,该计算指令可以包括:一个或多个操作域以及一个操作码。该计 算指令可以包括神经网络运算指令,也可以包括上述所涉及的压缩指令。以神经网络运算指 令为例,如表1所示,其中,寄存器号0、寄存器号1、寄存器号2、寄存器号3、寄存器号4可以为操作域。其中,每个寄存器号0、寄存器号1、寄存器号2、寄存器号3、寄存器号4 可以是一个或者多个寄存器的号码。
表2
上述寄存器可以为片外存储器,当然在实际应用中,也可以为片内存储器,用于存储数 据,该数据具体可以为n维数据,n为大于等于1的整数,例如,n=1时,为1维数据,即向量,如n=2时,为2维数据,即矩阵,如n=3或3以上时,为多维张量。
在本发明实施例中,所述计算装置执行所述神经网络运算的过程如图3所示,包括:
步骤S1、控制器单元接收压缩指令,将压缩指令译码解析为多个操作指令,并将多个操 作指令发送给压缩单元。
控制器单元从存储单元读取压缩指令之后,将压缩指令解析为操作指令,并将所述操作 指令发送至压缩单元。具体的,控制器单元11中指令处理单元111的取指模块从指令缓存单 元110中获取压缩指令,并将该指令传送至译码模块,所述译码模块对所述压缩指令进行译 码,得到操作指令,并将所述操作指令根据预设指令规则拆分为操作码和各个不同的操作域, 其中,操作码和操作域的组成与作用可参照前文,在此不再赘述。所述译码模块将译码后得 到的操作指令传送至指令队列中进行顺序存储,在所述指令队列中,根据所述运操作指令的 操作码和操作与获取该指令对应的待处理数据的数据地址,并将所述数据地址传送至依赖关 系处理单元112中,依赖关系处理单元分析该指令与正在执行的指令是否存在关联关系,若 存在,则将该操作指令存储到存储队列单元113中直至所述关联关系解除,若不存在关联关 系,则将该操作指令发送至压缩单元中执行对应的操作。
S2、压缩单元接收控制单元发送的操作指令,并根据从存储单元中读取的第一权值矩阵 进行压缩处理,以得到满足预设精度的第二权值矩阵。
下面结合图4所示的本发明实施例提供的神经网络压缩方法的流程示意图,具体阐述本 发明实施例是如何实现针对第一权值矩阵的压缩,以得到第二权值矩阵的,可以包括但不限 于如下步骤:
步骤S21、将所述第一权值矩阵分解成第三权值矩阵;其中,所述第三权值矩阵包括至 少两个求和项。
具体实现中,第一权值矩阵中的权值数据可以为任意实数。这里,权值数据是指神经网 络层与层之间的连接值,也即神经元之间的信息传递强度。
在其中一个实施方式中,第三权值矩阵中包括两个求和项,例如,第一求和项其中,第一求和项中包括(n1-1)个压缩参数K1值;第二求和项其中,第二求和项中包括(n2-1)个压缩参数K2值。这里,压缩 参数K1以及压缩参数K2为未知数,也即,在对第一权值矩阵进行分解时,可以确定第一权 值矩阵可以分解为两个求和项,但是不确定这两个求和项的具体大小。这里,当n1与n2不同 时,表示Q1和Q2可以是不同个数的矩阵相乘。当n1与n2相同时,表示Q1和Q2是相同个 数的矩阵相乘。
在其中另一个实施方式中,第三权值矩阵中的求和项的数量为n个,这里,n为大于2 的正整数。这n个求和项中包括的压缩参数K的数量为个,其中,D=n。以将第一权值矩阵分为三个求和项为例,待求解的压缩参数K可以包括(n1-1)个压缩参数K1、 (n2-1)个压缩参数K2以及(n3-1)个压缩参数K3。
步骤S22、根据第一公式确定所述至少两个求和项中的每个求和项的大小,所述第一公 式为Q≈Q1+Q2+...+Qn;其中,所述Q表示第一权值矩阵;所述Q1表示所述至少两个求和项中的第一求和项,所述Q2表示所述至少两个求和项中的第二求和项,所述Qn表示所述至少两个求和项中的第n求和项,
具体实现中,第一公式中的n表示求和项的数量,第一求和项以及第二求和项中的“*” 表示矩阵的乘积运算。
在其中一个实施方式中,当第三权值矩阵中包括两个求和项时,第一公式可以表示为:
Q≈Q1+Q2 (1.1)
在其中另一个实施方式中,当第三权值矩阵中包括至少两个求和项时,第一公式可以表 示为:
Q≈Q1+Q2+...+Qn (1.2)
上述公式(1.2)中,n为大于2的正整数。
具体实现中,根据所述第一公式和第二公式确定所述至少两个求和项中的每个求和项的 大小,所述第二公式为||Q-(Q1+Q2+......+Qn)||≤T,其中,所述T表示预设的误差阈值。
具体实现中,这里所涉及的预设的误差阈值可以为5%-10%之间。可以理解的是,设置 的预设的误差阈值越小,根据第一公式以及第二公式确定的至少两个求和项可以更好的表示 第一权值矩阵的属性特征。
步骤S23、调整所述至少两个求和项中的每个求和项的大小,并通过训练压缩后的机器 学习模型,以得到满足预设精度的第二权值矩阵。
具体实现中,调整所述至少两个求和项中的每个求和项的大小的过程,其实质是压缩参 数K值的动态变化过程,以寻找最佳的压缩参数K。随着压缩参数K值发生变化,针对第一 权值矩阵与第二权值矩阵之间的压缩比也会发生变化。
以语音识别的应用场景为例,在某一段单词序列中,可能存在一些单词被错误地***、 删除或替换的情况。例如,对于包含N个单词的一段初始识别文字而言,如果有I个单词背 ***、D个单词被删除以及E个文字被替换,那么,词错误率WER(Word Error Rate,WER) 为:
WER=(I+D+E)/N (1.4)
其中,错误率WER通常用百分比表示。
在采用神经网络模型识别该段单词序列时,可以得到该段单词序列的词错误率的检测精 度。在本发明实施例中,这里所涉及的预设精度为压缩前的神经网络模型针对词错误率WER 的检测精度。例如,该预设精度为70%。在一般情况下,压缩后的神经网络的错误率WER 会变大,这意味着压缩后的神经网络的精度会变差。
在发明实施例中,通过测量不同压缩比(压缩参数K值不同)所对应的神经网络模型的 词错误率的检测精度,以得到满足预设精度的第二权值矩阵。
在一种优选的实施方式中,所述训练单元,用于调整所述至少两个求和项中的每个求和 项的大小,并通过训练压缩后的机器学习模型,以得到满足预设精度的第二权值矩阵,包括:
所述训练单元,具体用于调整所述至少两个求和项中的每个求和项的大小,并通过训练 压缩后的机器学习模型,以得到满足预设精度并且与所述第一权值矩阵之间的压缩比满足预 设压缩比的第二权值矩阵。
可以理解的是,在该实施方式中,当前状态下的压缩参数K值不仅可以使得神经网络模 型获得最优的压缩效果,还可以使得该压缩后的神经网络模型在检测词错误率WER时满足 预设精度。在神经网络模型处于最优的压缩效果时,可以进一步地减少神经网络的运算量。
以神经网络的全连接层为例,全连接层是指对n-1层和n层而言,n-1层的任意一个节点, 都和n层的所有节点有连接。具体地,参见图5A,是本发明实施例提供的一种神经网络的一 维全连接层的结构示意图,如图5A所示,该神经网络包括输入层、隐含层以及输出层,其 中,输入层到隐含层之间的这一全连接层的二维参数矩阵为(3,4),该二维参数矩阵(3,4) 表示在输入层到隐含层之间的全连接层结构中,输入神经元的个数为3,输出神经元的个数 为4,权值数量为12。具体实现中,这12个权值可以表示为4行3列的权值矩阵,其权值矩 阵的表现形式可以如图5B所示。
在全连接层神经网络中,所述第一公式包括:M≈M1+M2;所述两个求和项包括第一求和项M1和第二求和项M2,所述第一求和项所述第一求和项M1中包括(n1-1)个压缩参数K1;所述(n1-1)个压缩参数K1中的第1个压缩参数K11用于 表征所述M11的输出神经元的个数,所述(n1-1)个压缩参数K1中的第(n1-1)个压缩参 数用于表征所述的输入神经元的个数;所述第二求和项所述第二求和项M2中包括(n2-1)个压缩参数K2,所述(n2-1)个压缩参数中的第1个 压缩参数K21用于表征所述M21的输出神经元的个数,所述(n2-1)个压缩参数中的第(n2-1) 个压缩参数用于表征所述的输入神经元的个数;所述K1和所述K2为大于0且 小于等于min(Nin,Nout)的正整数。
如前所述,调整两个求和项的每个求和项的大小的过程,其实质是压缩参数K值的动态 变化过程,以寻找最佳的压缩参数K。具体实现中,压缩参数K值不同,也即基于多个不同 压缩比对第一权值矩阵进行压缩,这里,在全连接层神经网络中,压缩比为
在实际应用中,可以采用自适应算法(例如,遗传算法)来确定全连接层神经网络中的 个压缩参数K值,这里,D是指第一公式中的求和项数,从而得到满足预设精度和 /或满足压缩效果的第二权值矩阵。接下来具体阐述是如何采用遗传算法来确定全连接层神经 网络中的个压缩参数K(例如,Kij)值的:
步骤1:随机产生种群:设定种群的规模为P个,设置最大迭代次数Tmax,例如,Tmax=100。 在初始状态下,设置迭代次数计数器t=0;交叉概率Pc=A(例如,A=0.4),变异概率Pm=B (例如,B=0.6),种群的矩阵每一行表示一个基因串个体,每一列表示个体的数目;这里, 每一个个体是一组关于压缩参数K(例如,Kij)值的解;
步骤2:计算种群中每个个体的适应度;这里,适应度是指该个体对应的第一权值矩阵 与第二权值矩阵的压缩比和/或精度,其中,压缩比用于表征针对神经网络的压缩效果。
步骤3:将选择算子作用于种群,把优化的个体直接遗传到下一代;
步骤4:将交叉算子中作用于种群,对于任意两个个体,随机产生若干基因串的位置点, 交换两个个体该位置上的值;
步骤5:将变异算子作用于种群,对于任意个体,随机产生若干基因串的位置,然后改 动这些位置上的值;这里,变异是指随机改变Kij的值;
步骤6:保留每一代中适应度最高的个体,进入下一代;
步骤7:判断是否达到最大迭代次数Tmax,若t=Tmax,则输出具有最大适应度的个体,终 止计算;否则,跳到步骤2继续执行。
在其中另一个实施方式中,通过自适应算法确定的个压缩参数K可以使得第二 权值矩阵满足预设精度的同时,第一权值矩阵与第二权值矩阵的压缩比满足预设压缩比,也 即,针对该神经网络模型的压缩获得较优的压缩效果。
以神经网络的卷积层为例,如图5C所示,卷积层可以认为是一个四维矩阵 (Nfin,Nfout,Kx,Ky),其中,Nfin为输入特征图像的数量,Nfout为输出特征图像的数量, (Kx,Ky)为卷积层中卷积核的大小。
在卷积层神经网络中,所述卷积层神经网络包括Nfin*Nfout个卷积核;所述第一公式包括: F≈F1*F2;其中,F表示所述Nfin*Nfout个卷积核中的任意一个卷积核;所述F1为第一求和 项;所述F2为第二求和项;所述第一求和项所述第一求和项F1中包 括(n1-1)个压缩参数R1;所述第二求和项所述第二求和项F2中 包括(n2-1)个压缩参数R2,(Kx,Ky)表示卷积核的大小,所述R1和所述R2为大于0 且小于等于min(Kx,Ky)的正整数。
具体实现中,压缩参数R值不同,也即基于多个不同压缩比对第一权值矩阵进行压缩, 这里,在卷积层神经网络中,压缩比
以神经网络的长短时记忆LSTM层(LSTM,Long Short-term Memory)为例,LSTM层的权值由多个全连接层权值组成。假设LSTM层的权值由t个全连接层权值组成,t为大于0的正整数。例如,第j个全连接层权值分别为(Nin_j,Nout_j),其中,Nin_j表示第j个全连接 层输入神经元个数,Nout_j表示第j个全连接层输出神经元个数,第j个全连接层的权值数量 为Nin_j*Nout_j。
在LSTM层神经网络中,所述LSTM层包括N个全连接层,所述N为大于0的正整数; 针对第j个全连接层,所述第一公式包括:Mj≈Mj_1*Mj_2;所述第j个全连接层中的两 个求和项包括第一求和项Mj_1和第二求和项Mj_2,所述第一求和项所述第一求和项Mj_1中包括(n1-1)个压缩参数S1;所 述(n1-1)个压缩参数S1中的第1个压缩参数Sj_11用于表征所述Mj_1的输出神经元的个 数,所述(n1-1)个压缩参数S1中的第(n1-1)个压缩参数用于表征所述的 输入神经元的个数;所述第二求和项所述第二求和项 Mj_2中包括(n2-1)个压缩参数S2,所述(n2-1)个压缩参数中的第1个压缩参数Sj_21用于表征所述Mj_21的输出神经元的个数,所述(n2-1)个压缩参数中的第(n2-1)个压缩 参数用于表征所述的输入神经元的个数;所述S1和所述S2为大于0且小于等 于min(Nin,Nout)的正整数。
如前所述,调整两个求和项的每个求和项的大小的过程,其实质是压缩参数S值的动态 变化过程,以寻找最佳的压缩参数S。在实际应用中,可以通过上述自适应算法来确定卷积 层神经网络中的个压缩参数S值,从而得到满足预设精度的第二权值矩阵。
具体实现中,针对第j个全连接层,压缩参数S值不同,也即基于多个不同压缩比对第 一权值矩阵进行压缩,这里,在第j个全连接层中,压缩比
通过本发明实施例,控制器单元在获取到压缩指令后,将其进行解析可以得到多个操作 指令,之后,将这多个操作指令以及第一权值矩阵发送给压缩单元,继而压缩元通过对第一 权值矩阵进行分解,可以得到第二权值矩阵。具体实现中,第二权值矩阵中包括至少两个求 和项,继而通过调整这至少两个求和项中的每个求和项的大小,以及结合训练压缩后的机器 学习模型,以得到满足预设精度的第二权值矩阵,解决了现有技术中采用神经网络剪枝算法 容易带来的神经网络的拓扑结构出现不规则的情形。此外,对神经网络进行压缩,可以减少 神经网络的运算量,进而提高运算速度。
S3、控制器单元获取第二输入数据以及计算指令,其中,第二输入数据包括第二权值矩 阵及输入神经元数据。
S4、控制器单元将计算指令解析为运算指令,将运算指令以及第二输入数据发送给运算 单元。
具体实现中,针对控制器单元获取计算指令,并将计算指令进行解析,以得到多个运算 指令的实现方式,请参考前述控制器单元获取压缩指令的文字描述,此处不多加赘述。
S5、运算单元接收控制器单元发送的运算指令,并根据运算指令以及第二输入数据执行 神经网络计算。
在实际应用中,这里所涉及的神经网络计算可以包括人工神经网络运算,也可以包括卷 积神经网络运算等等。
以人工神经网络运算为例,对于人工神经网络运算来说,如果该人工神经网络运算具有 多层运算,多层运算的输入神经元和输出神经元并非是指整个神经网络的输入层中神经元和 输出层中神经元,而是对于网络中任意相邻的两层,处于网络正向运算下层中的神经元即为 输入神经元,处于网络正向运算上层中的神经元即为输出神经元。以卷积神经网络为例,设 一个卷积神经网络有L层,K=1,2,...,L-1,对于第K层和第K+1层来说,我们将第K层称 为输入层,其中的神经元为所述输入神经元,第K+1层称为输出层,其中的神经元为所述输 出神经元。即除最顶层外,每一层都可以作为输入层,其下一层为对应的输出层。
具体实现中,对于神经网络中的运算可以为神经网络中的一层的运算,对于多层神经网 络,其实现过程是,在正向运算中,当上一层人工神经网络执行完成之后,下一层的运算指 令会将运算单元中计算出的输出神经元作为下一层的输入神经元进行运算(或者是对该输出 神经元进行某些操作再作为下一层的输入神经元),同时,将权值也替换为下一层的权值;在 反向运算中,当上一层人工神经网络的反向运算执行完成后,下一层运算指令会将运算单元 中计算出的输入神经元梯度作为下一层的输出神经元梯度进行运算(或者是对该输入神经元 梯度进行某些操作再作为下一层的输出神经元梯度),同时将权值替换为下一层的权值。
以完成神经网络的正向运算过程为例,首先,运算单元从存储单元中读取第二输入数据, 其中,第二输入数据包括第二权值矩阵以及输入神经元数据。
其次,主处理电路读取相对应的神经元数据,并将所述神经元数据按照指定顺序依次广 播给各个从处理电路。在实际应用中,神经元数据可以只广播一次,从处理电路接收该数据 后暂存到缓存或寄存器中,便于对其进行复用。此外,神经元数据也可以进行多次广播,从 处理电路接收到数据之后直接使用,无需复用。在一种可能的实施方式中,主处理电路读取 所述神经元数据之后,直接将神经元数据进行广播。
之后,每个从处理电路将读入的神经元数据和第二权值矩阵根据运算指令进行内积运算, 而后将内积结果传递回主处理电路。
在其中一个实施方式中,从处理电路可以将每次执行内积运算得到的部分和传输回主处 理电路进行累加;在在其中一个实施方式中,也可以将每次从处理电路执行的内积运算得到 的部分和保存在从处理电路的寄存器和/或片上缓存中,累加结束之后传输回主处理电路;在 其中一个实施方式中,也可以将每次从处理电路执行的内积运算得到的部分和在部分情况下 保存在从处理电路的寄存器和/或片上缓存中进行累加,部分情况下传输到主处理电路进行累 加,累加结束之后传输回主处理电路。
最后,主处理电路将各从处理电路的结果进行累加、激活等操作后,直到完成神经网络 的正向运算过程,得到预测结果和实际结果间的误差值,即最后一层的神经元梯度数据,保 存到存储单元。
在本发明实施例中,运算单元12可以设置成一主多从结构。在一种可选实施例中,运算 单元12如图6所示,可以包括一个主处理电路101和多个从处理电路102。在一个实施例里, 如图6所示,多个从处理电路呈阵列分布;每个从处理电路与相邻的其他从处理电路连接, 主处理电路连接所述多个从处理电路中的k个从处理电路,所述k个从处理电路为:第1行 的n个从处理电路、第m行的n个从处理电路以及第1列的m个从处理电路,需要说明的是, 如图6所示的K个从处理电路仅包括第1行的n个从处理电路、第m行的n个从处理电路以及第1列的m个从处理电路,即该k个从处理电路为多个从处理电路中直接与主处理电路连接的从处理电路。
K个从处理电路,用于在所述主处理电路以及多个从处理电路之间的数据以及指令的转 发。
可选的,如图7所示,该主处理电路还可以包括:转换处理电路110、激活处理电路111、 加法处理电路112中的一种或任意组合;
转换处理电路110,用于将主处理电路接收的数据块或中间结果执行第一数据结构与第 二数据结构之间的互换(例如连续数据与离散数据的转换);或将主处理电路接收的数据块或 中间结果执行第一数据类型与第二数据类型之间的互换(例如定点类型与浮点类型的转换);
激活处理电路111,用于执行主处理电路内数据的激活运算;
加法处理电路112,用于执行加法运算或累加运算。
所述主处理电路,用于将确定所述输入神经元为广播数据,权值为分发数据,将分发数 据分配成多个数据块,将所述多个数据块中的至少一个数据块以及多个运算指令中的至少一 个运算指令发送给所述从处理电路;
所述多个从处理电路,用于依据该运算指令对接收到的数据块执行运算得到中间结果, 并将运算结果传输给所述主处理电路;
所述主处理电路,用于将多个从处理电路发送的中间结果进行处理得到该计算指令的结 果,将该计算指令的结果发送给所述控制器单元。
所述从处理电路包括:乘法处理电路;
所述乘法处理电路,用于对接收到的数据块执行乘积运算得到乘积结果;
转发处理电路(可选的),用于将接收到的数据块或乘积结果转发。
累加处理电路,所述累加处理电路,用于对该乘积结果执行累加运算得到该中间结果。
另一个实施例里,该运算指令为矩阵乘以矩阵的指令、累加指令、激活指令等等计算指 令。
下面通过神经网络运算指令来说明如图1B所示的计算装置的具体计算方法。对于神经 网络运算指令来说,其实际需要执行的公式可以为:s=s(∑wxi+b),其中,即将权值w乘 以输入数据xi,进行求和,然后加上偏置b后做激活运算s(h),得到最终的输出结果s。
在一种可选的实施方案中,如图8所示,所述运算单元包括:树型模块40,所述树型模 块包括:一个根端口401和多个支端口404,所述树型模块的根端口连接所述主处理电路, 所述树型模块的多个支端口分别连接多个从处理电路中的一个从处理电路;上述树型模块具 有收发功能,所述树型模块具有收发功能,用于转发所述主处理电路与所述多个从处理电路 之间的数据块、权值以及运算指令,即可以将主处理电路的数据传送给各个从处理电路,也 可以将各个从处理电路的数据传送给主处理电路。
可选的,该树型模块为计算装置的可选择结果,其可以包括至少1层节点,该节点为具 有转发功能的线结构,该节点本身可以不具有计算功能。如树型模块具有零层节点,即无需 该树型模块。
可选的,该树型模块可以为n叉树结构,例如,如图9所示的二叉树结构,当然也可以 为三叉树结构,该n可以为大于等于2的整数。本申请具体实施方式并不限制上述n的具体 取值,上述层数也可以为2,从处理电路可以连接除倒数第二层节点以外的其他层的节点, 例如可以连接如图9所示的倒数第一层的节点。
可选的,上述运算单元可以携带单独的缓存,如图10所示,可以包括:神经元缓存单元, 该神经元缓存单元63缓存该从处理电路的输入神经元向量数据和输出神经元值数据。
如图11所示,该运算单元还可以包括:权值缓存单元64,用于缓存该从处理电路在计 算过程中需要的权值数据。
在一种可选实施例中,运算单元12如图12所示,可以包括分支处理电路103;其具体 的连接结构如图12所示,其中,
主处理电路101与分支处理电路103(一个或多个)连接,分支处理电路103与一个或 多个从处理电路102连接;
分支处理电路103,用于执行转发主处理电路101与从处理电路102之间的数据或指令。
在一种可选实施例中,以神经网络运算中的全连接运算为例,过程可以为:y=f(wx+b), 其中,x为输入神经元矩阵,w为权值矩阵,b为偏置标量,f为激活函数,具体可以为:sigmoid 函数,tanh、relu、softmax函数中的任意一个。这里假设为二叉树结构,具有8个从处理电 路,其实现的方法可以为:
控制器单元从存储单元内获取输入神经元矩阵x,权值矩阵w以及全连接运算指令,将 输入神经元矩阵x,权值矩阵w以及全连接运算指令传输给主处理电路;
主处理电路确定该输入神经元矩阵x为广播数据,确定权值矩阵w为分发数据,将权值 矩阵w拆分成8个子矩阵,然后将8个子矩阵通过树型模块分发给8个从处理电路,将输入 神经元矩阵x广播给8个从处理电路,
从处理电路并行执行8个子矩阵与输入神经元矩阵x的乘法运算和累加运算得到8个中 间结果,将8个中间结果发送给主处理电路;
主处理电路,用于将8个中间结果排序得到wx的运算结果,将该运算结果执行偏置b 的运算后执行激活操作得到最终结果y,将最终结果y发送至控制器单元,控制器单元将该 最终结果y输出或存储至存储单元内。
如图1B所示的计算装置执行神经网络正向运算指令的方法具体可以为:
控制器单元从指令存储单元内提取神经网络正向运算指令、神经网络运算指令对应的操 作域以及至少一个操作码,控制器单元将该操作域传输至数据访问单元,将该至少一个操作 码发送至运算单元。
控制器单元从存储单元内提取该操作域对应的权值w和偏置b(当b为0时,不需要提 取偏置b),将权值w和偏置b传输至运算单元的主处理电路,控制器单元从存储单元内提取 输入数据Xi,将该输入数据Xi发送至主处理电路。
主处理电路依据该至少一个操作码确定为乘法运算,确定输入数据Xi为广播数据,确定 权值数据为分发数据,将权值w拆分成n个数据块;
控制器单元的指令处理单元依据该至少一个操作码确定乘法指令、偏置指令和累加指令, 将乘法指令、偏置指令和累加指令发送至主处理电路,主处理电路将该乘法指令、输入数据 Xi以广播的方式发送给多个从处理电路,将该n个数据块分发给该多个从处理电路(例如具 有n个从处理电路,那么每个从处理电路发送一个数据块);多个从处理电路,用于依据该乘 法指令将该输入数据Xi与接收到的数据块执行乘法运算得到中间结果,将该中间结果发送至 主处理电路,该主处理电路依据该累加指令将多个从处理电路发送的中间结果执行累加运算 得到累加结果,依据该偏置指令将该累加结果执行加偏置b得到最终结果,将该最终结果发 送至该控制器单元。
另外,加法运算和乘法运算的顺序可以调换。
本申请提供的技术方案通过一个指令即神经网络运算指令即实现了神经网络的乘法运算 以及偏置运算,在神经网络计算的中间结果均无需存储或提取,减少了中间数据的存储以及 提取操作,所以其具有减少对应的操作步骤,提高神经网络的计算效果的优点。
本申请还揭露了一个机器学习运算装置,其包括一个或多个在本申请中提到的计算装置, 用于从其他处理装置中获取待运算数据和控制信息,执行指定的机器学习运算,执行结果通 过I/O接口传递给***设备。***设备譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口, 服务器。当包含一个以上计算装置时,计算装置间可以通过特定的结构进行链接并传输数据, 譬如,通过PCIE总线进行互联并传输数据,以支持更大规模的机器学习的运算。此时,可 以共享同一控制***,也可以有各自独立的控制***;可以共享内存,也可以每个加速器有 各自的内存。此外,其互联方式可以是任意互联拓扑。
该机器学习运算装置具有较高的兼容性,可通过PCIE接口与各种类型的服务器相连接。
本申请还揭露了一个组合处理装置,其包括上述的机器学习运算装置,通用互联接口, 和其他处理装置。机器学习运算装置与其他处理装置进行交互,共同完成用户指定的操作。 图13为组合处理装置的示意图。
其他处理装置,包括中央处理器CPU、图形处理器GPU、神经网络处理器等通用/专用 处理器中的一种或以上的处理器类型。其他处理装置所包括的处理器数量不做限制。其他处 理装置作为机器学习运算装置与外部数据和控制的接口,包括数据搬运,完成对本机器学习 运算装置的开启、停止等基本控制;其他处理装置也可以和机器学习运算装置协作共同完成 运算任务。
通用互联接口,用于在所述机器学习运算装置与其他处理装置间传输数据和控制指令。 该机器学习运算装置从其他处理装置中获取所需的输入数据,写入机器学习运算装置片上的 存储装置;可以从其他处理装置中获取控制指令,写入机器学习运算装置片上的控制缓存; 也可以读取机器学习运算装置的存储模块中的数据并传输给其他处理装置。
可选的,该结构如图14所示,还可以包括存储装置,存储装置分别与所述机器学习运算 装置和所述其他处理装置连接。存储装置用于保存在所述机器学习运算装置和所述其他处理 装置的数据,尤其适用于所需要运算的数据在本机器学习运算装置或其他处理装置的内部存 储中无法全部保存的数据。
该组合处理装置可以作为手机、机器人、无人机、视频监控设备等设备的SOC片上***, 有效降低控制部分的核心面积,提高处理速度,降低整体功耗。此情况时,该组合处理装置 的通用互联接口与设备的某些部件相连接。某些部件譬如摄像头,显示器,鼠标,键盘,网 卡,wifi接口。
在一些实施例里,还申请了一种芯片,其包括了上述机器学习运算装置或组合处理装置。
在一些实施例里,申请了一种芯片封装结构,其包括了上述芯片。
在一些实施例里,申请了一种板卡,其包括了上述芯片封装结构。参阅图15,图15提 供了一种板卡,上述板卡除了包括上述芯片389以外,还可以包括其他的配套部件,该配套 部件包括但不限于:存储器件390、接口装置391和控制器件392;
所述存储器件390与所述芯片封装结构内的芯片通过总线连接,用于存储数据。所述存 储器件可以包括多组存储单元393。每一组所述存储单元与所述芯片通过总线连接。可以理 解,每一组所述存储单元可以是DDR SDRAM(英文:Double Data Rate SDRAM,双倍速率 同步动态随机存储器)。
DDR不需要提高时钟频率就能加倍提高SDRAM的速度。DDR允许在时钟脉冲的上升沿和下降沿读出数据。DDR的速度是标准SDRAM的两倍。在一个实施例中,所述存储装置 可以包括4组所述存储单元。每一组所述存储单元可以包括多个DDR4颗粒(芯片)。在一个 实施例中,所述芯片内部可以包括4个72位DDR4控制器,上述72位DDR4控制器中64bit 用于传输数据,8bit用于ECC校验。可以理解,当每一组所述存储单元中采用DDR4-3200 颗粒时,数据传输的理论带宽可达到25600MB/s。
在一个实施例中,每一组所述存储单元包括多个并联设置的双倍速率同步动态随机存储 器。DDR在一个时钟周期内可以传输两次数据。在所述芯片中设置控制DDR的控制器,用 于对每个所述存储单元的数据传输与数据存储的控制。
所述接口装置与所述芯片封装结构内的芯片电连接。所述接口装置用于实现所述芯片与 外部设备(例如服务器或计算机)之间的数据传输。例如在一个实施例中,所述接口装置可 以为标准PCIE接口。比如,待处理的数据由服务器通过标准PCIE接口传递至所述芯片,实 现数据转移。优选的,当采用PCIE 3.0X 16接口传输时,理论带宽可达到16000MB/s。在另 一个实施例中,所述接口装置还可以是其他的接口,本申请并不限制上述其他的接口的具体 表现形式,所述接口单元能够实现转接功能即可。另外,所述芯片的计算结果仍由所述接口 装置传送回外部设备(例如服务器)。
所述控制器件与所述芯片电连接。所述控制器件用于对所述芯片的状态进行监控。具体 的,所述芯片与所述控制器件可以通过SPI接口电连接。所述控制器件可以包括单片机(Micro Controller Unit,MCU)。如所述芯片可以包括多个处理芯片、多个处理核或多个处理电路, 可以带动多个负载。因此,所述芯片可以处于多负载和轻负载等不同的工作状态。通过所述 控制装置可以实现对所述芯片中多个处理芯片、多个处理和或多个处理电路的工作状态的调 控。
在一些实施例里,申请了一种电子设备,其包括了上述板卡。
电子设备包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影 仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、 电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪 和/或心电图仪。
在本发明实施例中,考虑到针对神经网络的压缩方法可以包括但不限于应用在上述计算 装置中,还可以应用在其它场景下,例如,减少神经网络的精度损失。基于此,下面结合图 16所示的本发明实施例提供的神经网络压缩方法的流程示意图,具体说明本发明是如何实现 针对第一权值矩阵的压缩,以得到第二权值矩阵的,可以包括但不限于如下步骤:
步骤S100、获取第一输入数据;其中,所述第一输入数据包括第一权值矩阵。
具体实现中,第一权值矩阵中的权值数据可以为任意实数。这里,权值数据是指神经网 络层与层之间的连接值,也即神经元之间的信息传递强度。
步骤S102、将所述第一权值矩阵压缩为第二权值矩阵;其中,第二权值矩阵中包括至少 两个求和项。
在其中一个实施方式中,所述将所述第一权值矩阵调整为第二权值矩阵,包括:
将所述第一权值矩阵分解成第三权值矩阵;其中,所述第三权值矩阵包括至少两个求和 项;
根据第一公式确定所述至少两个求和项中的每个求和项的大小,所述第一公式为Q≈Q1+Q2+...+Qn;其中,所述Q表示第一权值矩阵;所述Q1表示所述至少两个求和项中 的第一求和项,所述Q2表示所述至少两个求和项中的第二求和项,所述Qn表示所述至少两个求和项中的第n求和项,
调整所述至少两个求和项中的每个求和项的大小,并通过训练压缩后的机器学习模型, 以得到满足预设精度的第二权值矩阵。
具体实现中,第一公式中的n表示求和项的数量,第一求和项以及第二求和项中的“*” 表示矩阵的乘积运算。
在其中一个实施方式中,当第三权值矩阵中包括两个求和项时,第一公式可以表示为:
Q≈Q1+Q2 (1.1)
在其中另一个实施方式中,当第三权值矩阵中包括至少两个求和项时,第一公式可以表 示为:
Q≈Q1+Q2+...+Qn (1.2)
上述公式(1.2)中,n为大于2的正整数。
例如,第一公式可以表示为如下所示:
具体实现中,将第一权值矩阵压缩为第二权值矩阵的实现过程中,当应用到不同的神经 网络时(例如,全连接层神经网络、卷积层神经网络、LSTM层神经网络),上述所涉及的针 对第一权值矩阵的分解操作、求解至少两个求和项中的每个求和项以及调整至少两个求和项 中的每个求和项以获得满足预设精度的第二权值矩阵将有所差异,接下来将进行具体阐述:
(1)全连接层神经网络:
全连接层是指对n-1层和n层而言,n-1层的任意一个节点,都和n层的所有节点有连接。 具体地,参见图5A,是本发明实施例提供的一种神经网络的一维全连接层的结构示意图,如 图5A所示,该神经网络包括输入层、隐含层以及输出层,其中,输入层到隐含层之间的这 一全连接层的二维参数矩阵为(3,4),该二维参数矩阵(3,4)表示在输入层到隐含层之间的 全连接层结构中,输入神经元的个数为3,输出神经元的个数为4,权值数量为12。具体实 现中,这12个权值可以表示为4行3列的权值矩阵,其权值矩阵的表现形式可以如图5B所 示。
在全连接层神经网络中,所述第一公式包括:M≈M1+M2;所述两个求和项包括第一求和项M1和第二求和项M2,所述第一求和项所述第一求和项M1中包括(n1-1)个压缩参数K1;所述(n1-1)个压缩参数K1中的第1个压缩参数K11用于 表征所述M11的输出神经元的个数,所述(n1-1)个压缩参数K1中的第(n1-1)个压缩参 数用于表征所述的输入神经元的个数;所述第二求和项所述第二求和项M2中包括(n2-1)个压缩参数K2,所述(n2-1)个压缩参数中的第1个 压缩参数K21用于表征所述M21的输出神经元的个数,所述(n2-1)个压缩参数中的第(n2-1) 个压缩参数用于表征所述的输入神经元的个数;所述K1和所述K2为大于0且 小于等于min(Nin,Nout)的正整数。
如前所述,调整两个求和项的每个求和项的大小的过程,其实质是压缩参数K值的动态 变化过程,以寻找最佳的压缩参数K。具体实现中,压缩参数K值不同,也即基于多个不同 压缩比对第一权值矩阵进行压缩,这里,在全连接层神经网络中,压缩比为
在实际应用中,可以采用自适应算法(例如,遗传算法)来确定全连接层神经网络中的 个压缩参数K值,这里,D是指第一公式中的求和项数,从而得到满足预设精度和 /或满足压缩效果的第二权值矩阵。接下来具体阐述是如何采用遗传算法来确定全连接层神经 网络中的个压缩参数K(例如,Kij)值的:
步骤1:随机产生种群:设定种群的规模为P个,设置最大迭代次数Tmax,例如,Tmax=100。 在初始状态下,设置迭代次数计数器t=0;交叉概率Pc=A(例如,A=0.4),变异概率Pm=B (例如,B=0.6),种群的矩阵每一行表示一个基因串个体,每一列表示个体的数目;这里, 每一个个体是一组关于压缩参数K(例如,Kij)值的解;
步骤2:计算种群中每个个体的适应度;这里,适应度是指该个体对应的第一权值矩阵 与第二权值矩阵的压缩比和/或精度,其中,压缩比用于表征针对神经网络的压缩效果。
步骤3:将选择算子作用于种群,把优化的个体直接遗传到下一代;
步骤4:将交叉算子中作用于种群,对于任意两个个体,随机产生若干基因串的位置点, 交换两个个体该位置上的值;
步骤5:将变异算子作用于种群,对于任意个体,随机产生若干基因串的位置,然后改 动这些位置上的值;这里,变异是指随机改变Kij的值;
步骤6:保留每一代中适应度最高的个体,进入下一代;
步骤7:判断是否达到最大迭代次数Tmax,若t=Tmax,则输出具有最大适应度的个体,终 止计算;否则,跳到步骤2继续执行。
在其中另一个实施方式中,通过自适应算法确定的个压缩参数K可以使得第二 权值矩阵满足预设精度的同时,第一权值矩阵与第二权值矩阵的压缩比满足预设压缩比,也 即,针对该神经网络模型的压缩获得较优的压缩效果。
(2)卷积层神经网络:
以神经网络的卷积层为例,如图5C所示,卷积层可以认为是一个四维矩阵 (Nfin,Nfout,Kx,Ky),其中,Nfin为输入特征图像的数量,Nfout为输出特征图像的数量, (Kx,Ky)为卷积层中卷积核的大小。
在卷积层神经网络中,所述卷积层神经网络包括Nfin*Nfout个卷积核;所述第一公式包括: F≈F1*F2;其中,F表示所述Nfin*Nfout个卷积核中的任意一个卷积核;所述F1为第一求和 项;所述F2为第二求和项;所述第一求和项所述第一求和项F1中包 括(n1-1)个压缩参数R1;所述第二求和项所述第二求和项F2中 包括(n2-1)个压缩参数R2,(Kx,Ky)表示卷积核的大小,所述R1和所述R2为大于0 且小于等于min(Kx,Ky)的正整数。
具体实现中,压缩参数R值不同,也即基于多个不同压缩比对第一权值矩阵进行压缩, 这里,在卷积层神经网络中,压缩比
(3)LSTM层神经网络:
以神经网络的长短时记忆LSTM层(LSTM,Long Short-term Memory)为例,LSTM层的权值由多个全连接层权值组成。假设LSTM层的权值由t个全连接层权值组成,t为大于0的正整数。例如,第j个全连接层权值分别为(Nin_j,Nout_j),其中,Nin_j表示第j个全连接 层输入神经元个数,Nout_j表示第j个全连接层输出神经元个数,第j个全连接层的权值数量 为Nin_j*Nout_j。
在LSTM层神经网络中,所述LSTM层包括N个全连接层,所述N为大于0的正整数; 针对第j个全连接层,所述第一公式包括:Mj≈Mj_1*Mj_2;所述第j个全连接层中的两 个求和项包括第一求和项Mj_1和第二求和项Mj_2,所述第一求和项所述第一求和项Mj_1中包括(n1-1)个压缩参数S1;所 述(n1-1)个压缩参数S1中的第1个压缩参数Sj_11用于表征所述Mj_1的输出神经元的个 数,所述(n1-1)个压缩参数S1中的第(n1-1)个压缩参数用于表征所述的 输入神经元的个数;所述第二求和项所述第二求和项 Mj_2中包括(n2-1)个压缩参数S2,所述(n2-1)个压缩参数中的第1个压缩参数Sj_21用于表征所述Mj_21的输出神经元的个数,所述(n2-1)个压缩参数中的第(n2-1)个压缩 参数用于表征所述的输入神经元的个数;所述S1和所述S2为大于0且小于等 于min(Nin,Nout)的正整数。
如前所述,调整两个求和项的每个求和项的大小的过程,其实质是压缩参数S值的动态 变化过程,以寻找最佳的压缩参数S。在实际应用中,可以通过上述自适应算法来确定卷积 层神经网络中的个压缩参数S值,从而得到满足预设精度的第二权值矩阵。
具体实现中,针对第j个全连接层,压缩参数S值不同,也即基于多个不同压缩比对第 一权值矩阵进行压缩,这里,在第j个全连接层中,压缩比
步骤S104、根据第二输入数据执行神经网络计算,其中,第二输入数据包括第二权值矩 阵以及神经元数据。
在实际应用中,这里所涉及的神经网络计算可以包括人工神经网络运算,也可以包括卷 积神经网络运算等等。
以人工神经网络运算为例,对于人工神经网络运算来说,如果该人工神经网络运算具有 多层运算,多层运算的输入神经元和输出神经元并非是指整个神经网络的输入层中神经元和 输出层中神经元,而是对于网络中任意相邻的两层,处于网络正向运算下层中的神经元即为 输入神经元,处于网络正向运算上层中的神经元即为输出神经元。以卷积神经网络为例,设 一个卷积神经网络有L层,K=1,2,...,L-1,对于第K层和第K+1层来说,我们将第K层称 为输入层,其中的神经元为所述输入神经元,第K+1层称为输出层,其中的神经元为所述输 出神经元。即除最顶层外,每一层都可以作为输入层,其下一层为对应的输出层。
具体实现中,对于神经网络中的运算可以为神经网络中的一层的运算,对于多层神经网 络,其实现过程是,在正向运算中,当上一层人工神经网络执行完成之后,下一层的运算指 令会将运算单元中计算出的输出神经元作为下一层的输入神经元进行运算(或者是对该输出 神经元进行某些操作再作为下一层的输入神经元),同时,将权值也替换为下一层的权值;在 反向运算中,当上一层人工神经网络的反向运算执行完成后,下一层运算指令会将运算单元 中计算出的输入神经元梯度作为下一层的输出神经元梯度进行运算(或者是对该输入神经元 梯度进行某些操作再作为下一层的输出神经元梯度),同时将权值替换为下一层的权值。
本发明实施例通过对第一权值矩阵进行分解,可以得到包含多个压缩参数的至少两个求 和项,之后,根据公式求解这至少两个求和项中的每个求和项,并通过训练压缩后的神经网 络以获得满足预设精度的第二权值矩阵,解决了现有技术中采用神经网络剪枝算法容易带来 的神经网络的拓扑结构出现不规则的情形,可以对神经网络进行深度压缩,可以减少神经网 络的计算量,提高运算速度。
为了便于更好地实施本发明实施例的上述方案,本发明还对应提供了一种神经网络压缩 装置,下面结合附图来进行详细说明:
如图17A所示的本发明实施例提供的神经网络压缩装置的结构示意图,该神经网络压缩 装置包括:获取单元300、压缩单元13以及计算单元304;
其中,所述获取单元300,用于获取第一输入数据;其中,所述第一输入数据包括第一 权值矩阵;
所述压缩单元13,用于将所述第一权值矩阵压缩为第二权值矩阵;其中,所述第二权值 矩阵中包括至少两个求和项;
所述计算单元304,用于根据第二输入数据执行神经网络计算,其中,所述第二输入数 据包括所述第二权值矩阵以及输入神经元数据。
在其中一个实施方式中,如图17B所示,压缩单元13包括分解单元130、求解单元131 以及训练单元132;
其中,所述分解单元130,用于将所述第一权值矩阵分解成第三权值矩阵;其中,所述 第三权值矩阵包括至少两个求和项;
所述求解单元131,用于根据第一公式确定所述至少两个求和项中的每个求和项的大小, 所述第一公式为Q≈Q1+Q2+...+Qn;其中,所述Q表示第一权值矩阵;所述Q1表示所述至 少两个求和项中的第一求和项,所述Q2表示所述至少两个求和项中 的第二求和项,所述Qn表示所述至少两个求和项中的第n求和项,
所述训练单元132,用于调整所述至少两个求和项中的每个求和项的大小,并通过训练 压缩后的机器学习模型,以得到满足预设精度的第二权值矩阵。
可选的,所述求解单元131,具体用于根据所述第一公式和第二公式确定所述至少两个 求和项中的每个求和项的大小,所述第二公式为||Q-(Q1+Q2+......+Qn)||≤T,其中,所述 T表示预设的误差阈值。
可选的,所述训练单元132,具体用于调整所述至少两个求和项中的每个求和项的大小, 并通过训练压缩后的机器学习模型,以得到满足预设精度并且与所述第一权值矩阵之间的压 缩比满足预设压缩比的第二权值矩阵。
可选的,所述神经网络包括全连接层神经网络;所述第一公式包括:M≈M1+M2;所述两个求和项包括第一求和项M1和第二求和项M2,所述第一求和项所述第一求和项M1中包括(n1-1)个压缩参数K1;所述(n1-1) 个压缩参数K1中的第1个压缩参数K11用于表征所述M11的输出神经元的个数,所述(n1-1) 个压缩参数K1中的第(n1-1)个压缩参数用于表征所述的输入神经元的个数; 所述第二求和项所述第二求和项M2中包括(n2-1)个压缩参 数K2,所述(n2-1)个压缩参数中的第1个压缩参数K21用于表征所述M21的输出神经元的 个数,所述(n2-1)个压缩参数中的第(n2-1)个压缩参数用于表征所述的输 入神经元的个数;所述K1和所述K2为大于0且小于等于min(Nin,Nout)的正整数。
可选的,所述神经网络包括卷积层神经网络;所述卷积层神经网络包括Nfin*Nfout个卷积 核;所述第一公式包括:F≈F1*F2;其中,F表示所述Nfin*Nfout个卷积核中的任意一个卷 积核;所述F1为第一求和项;所述F2为第二求和项;所述第一求和项所述第一求和项F1中包括(n1-1)个压缩参数R1;所述第二求和项所述第二求和项F2中包括(n2-1)个压缩参数R2,(Kx,Ky)表示卷积核的大小,所述R1 和所述R2为大于0且小于等于min(Kx,Ky)的正整数。
可选的,所述神经网络包括LSTM层神经网络,所述LSTM层包括N个全连接层,所述N为大于0的正整数;针对第j个全连接层,所述第一公式包括:Mj≈Mj_1*Mj_2;所 述第j个全连接层中的两个求和项包括第一求和项Mj_1和第二求和项Mj_2,所述第一求和 项所述第一求和项Mj_1中包括(n1-1)个压缩参数S1; 所述(n1-1)个压缩参数S1中的第1个压缩参数Sj_11用于表征所述Mj_1的输出神经元的 个数,所述(n1-1)个压缩参数S1中的第(n1-1)个压缩参数用于表征所述的输入神经元的个数;所述第二求和项所述第二求和项 Mj_2中包括(n2-1)个压缩参数S2,所述(n2-1)个压缩参数中的第1个压缩参数Sj_21用于表征所述Mj_21的输出神经元的个数,所述(n2-1)个压缩参数中的第(n2-1)个压缩 参数用于表征所述的输入神经元的个数;所述S1和所述S2为大于0且小于等 于min(Nin,Nout)的正整数。
本发明实施例通过对第一权值矩阵进行分解,可以得到包含压缩参数的至少两个求和项, 之后,根据公式求解这至少两个求和项中的每个求和项,并通过训练压缩后的神经网络以获 得满足预设精度的第二权值矩阵,解决了现有技术中采用神经网络剪枝算法容易带来的神经 网络的拓扑结构出现不规则的情形,对神经网络进行深度压缩,可以减少神经网络的计算量, 提高运算速度。
为了便于更好地实施本发明实施例的上述方案,本发明还对应提供了另一种电子设备, 下面结合附图来进行详细说明:
如图18示出的本发明实施例提供的电子设备的结构示意图,电子设备40可以包括处理 器401、存储器404和通信模块405,处理器401、存储器404和通信模块405可以通过总线 406相互连接。存储器404可以是高速随机存储记忆体(Random Access Memory,RAM)存储器,也可以是非易失性的存储器(non-volatile memory),例如至少一个磁盘存储器。存储 器404可选的还可以是至少一个位于远离前述处理器401的存储***。存储器404用于存储 应用程序代码,可以包括操作***、网络通信模块、用户接口模块以及数据处理程序,通信 模块405用于与外部设备进行信息交互;处理器401被配置用于调用该程序代码,执行以下 步骤:
获取第一输入数据;其中,所述第一输入数据包括第一权值矩阵;
将所述第一权值矩阵压缩为第二权值矩阵;其中,所述第二权值矩阵中包括至少两个求 和项;
根据第二输入数据执行神经网络计算,其中,所述第二输入数据包括所述第二权值矩阵 以及输入神经元数据。
其中,处理器401将所述第一权值矩阵压缩为第二权值矩阵;其中,所述第二权值矩阵 中包括至少两个求和项,可以包括:
将所述第一权值矩阵分解成第三权值矩阵;其中,所述第三权值矩阵包括至少两个求和 项;
根据第一公式确定所述至少两个求和项中的每个求和项的大小,所述第一公式为Q≈Q1+Q2+...+Qn;其中,所述Q表示第一权值矩阵;所述Q1表示所述至少两个求和项中 的第一求和项,所述Q2表示所述至少两个求和项中的第二求和项,所述Qn表示所述至少两个求和项中的第n求和项,
调整所述至少两个求和项中的每个求和项的大小,并通过训练压缩后的机器学习模型, 以得到满足预设精度的第二权值矩阵。
其中,处理器401根据第一公式确定所述至少两个求和项中的每个求和项的大小,所述 第一公式为Q≈Q1+Q2.+...+Qn,可以包括:
根据所述第一公式和第二公式确定所述至少两个求和项中的每个求和项的大小,所述第 二公式为||Q-(Q1+Q2+......+Qn)||≤T,其中,所述T表示预设的误差阈值。
其中,处理器401调整所述至少两个求和项中的每个求和项的大小,并通过训练压缩后 的机器学习模型,以得到满足预设精度的第二权值矩阵,可以包括:
调整所述至少两个求和项中的每个求和项的大小,并通过训练压缩后的机器学习模型, 以得到满足预设精度并且与所述第一权值矩阵之间的压缩比满足预设压缩比的第二权值矩 阵。
其中,所述神经网络为全连接层神经网络;所述第一公式包括:M≈M1+M2;所述两个求和项包括第一求和项M1和第二求和项M2,所述第一求和项所述第一求和项M1中包括(n1-1)个压缩参数K1;所述(n1-1)个压缩参数K1中的第1 个压缩参数K11用于表征所述M11的输出神经元的个数,所述(n1-1)个压缩参数K1中的第 (n1-1)个压缩参数用于表征所述的输入神经元的个数;所述第二求和项所述第二求和项M2中包括(n2-1)个压缩参数K2,所述(n2-1) 个压缩参数中的第1个压缩参数K21用于表征所述M21的输出神经元的个数,所述(n2-1) 个压缩参数中的第(n2-1)个压缩参数用于表征所述的输入神经元的个数;所 述K1和所述K2为大于0且小于等于min(Nin,Nout)的正整数。
其中,所述神经网络为卷积层神经网络;所述卷积层神经网络包括Nfin*Nfout个卷积核; 所述第一公式包括:F≈F1*F2;其中,F表示所述Nfin*Nfout个卷积核中的任意一个卷积核; 所述F1为第一求和项;所述F2为第二求和项;所述第一求和项所述 第一求和项F1中包括(n1-1)个压缩参数R1;所述第二求和项所 述第二求和项F2中包括(n2-1)个压缩参数R2,(Kx,Ky)表示卷积核的大小,所述R1 和所述R2为大于0且小于等于min(Kx,Ky)的正整数。
其中,所述神经网络为LSTM层神经网络;所述LSTM层神经网络包括N个全连接层,所述N为大于0的正整数;针对第j个全连接层,所述第一公式包括:Mj≈Mj_1*Mj_2; 所述第j个全连接层中的两个求和项包括第一求和项Mj_1和第二求和项Mj_2,所述第一求 和项所述第一求和项Mj_1中包括(n1-1)个压缩参数S1; 所述(n1-1)个压缩参数S1中的第1个压缩参数Sj_11用于表征所述Mj_1的输出神经元的 个数,所述(n1-1)个压缩参数S1中的第(n1-1)个压缩参数用于表征所述的输入神经元的个数;所述第二求和项所述第二求和项 Mj_2中包括(n2-1)个压缩参数S2,所述(n2-1)个压缩参数中的第1个压缩参数Sj_21用于表征所述Mj_21的输出神经元的个数,所述(n2-1)个压缩参数中的第(n2-1)个压缩 参数用于表征所述的输入神经元的个数;所述S1和所述S2为大于0且小于等 于min(Nin,Nout)的正整数。
需要说明的是,本发明实施例中的电子设备40中处理器的执行步骤可参考上述各方法实 施例中图16实施例中的电子设备运行的具体实现方式,这里不再赘述。
在实际应用中,电子设备40中的处理器401包括但不限于只有一个。在其中一个实施 方式中,电子设备40中还包括处理图像的图形处理器GPU(GPU,Graphic ProcessingUni), 也还可以包括嵌入式神经网络处理器(NPU,Neural-network Process Units)。此时,针对神经 网络的压缩方法可以被集成在NPU中。在其中一个实施方式中,处理器401可以控制NPU 执行针对第一权值矩阵的压缩方法。
在具体实现中,如前所述,电子设备40可以包括数据处理装置、机器人、电脑、打印机、 扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用 电器、和/或医疗设备,本发明实施例不作具体限定。
本发明实施例还提供了一种计算机存储介质,用于存储为上述图16所示的电子设备所用 的计算机软件指令,其包含用于执行上述方法实施例所涉及的程序。通过执行存储的程序, 可以实现针对第一权值矩阵的压缩,以得到满足预设精度的第二权值矩阵,从而避免了神经 网络模型的拓扑结构出现不规则,减少了神经网络的运算量。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动 作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据 本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说 明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本申请所必须 的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可 以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。 例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功 能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到 另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或 直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性 或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部 件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元 上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个 单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以 采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以 存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现 有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计 算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算 机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的 存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程 序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括: 闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方 式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对 于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之 处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (23)
1.一种计算装置,其特征在于,所述计算装置用于执行机器学习计算,所述计算装置包括:压缩单元、运算单元以及控制器单元;
所述控制器单元,用于获取针对第一输入数据的压缩请求,并根据所述压缩请求指示所述压缩单元对所述第一输入数据进行压缩;其中,所述第一输入数据包括第一权值矩阵;
所述压缩单元,用于将第一权值矩阵压缩为第二权值矩阵;其中,所述第二权值矩阵包括至少两个求和项;
所述控制器单元,还用于获取第二输入数据以及计算指令;所述第二输入数据包括所述第二权值矩阵以及输入神经元数据;
所述控制器单元,还用于解析该计算指令得到多个运算指令,将所述多个运算指令以及所述第二输入数据发送给运算单元;
所述运算单元,用于获取所述运算指令,并根据所述运算指令以及所述第二输入数据执行神经网络计算。
2.根据权利要求1所述的计算装置,其特征在于,所述压缩单元包括:分解单元、求解单元和训练单元;
其中,所述分解单元,用于将所述第一权值矩阵分解成第三权值矩阵;其中,所述第三权值矩阵包括至少两个求和项;
所述求解单元,用于根据第一公式确定所述至少两个求和项中的每个求和项的大小,所述第一公式为Q≈Q1+Q2+...+Qn;其中,所述Q表示第一权值矩阵;所述Q1表示所述至少两个求和项中的第一求和项,所述Q2表示所述至少两个求和项中的第二求和项,所述Qn表示所述至少两个求和项中的第n求和项,
所述训练单元,用于调整所述至少两个求和项中的每个求和项的大小,并通过训练压缩后的机器学习模型,以得到满足预设精度的第二权值矩阵。
3.根据权利要求2所述的计算装置,其特征在于,所述求解单元,用于根据第一公式确定所述至少两个求和项中的每个求和项的大小,所述第一公式为Q≈Q1+Q2.+...+Qn,包括:
所述求解单元,具体用于根据所述第一公式和第二公式确定所述至少两个求和项中的每个求和项的大小,所述第二公式为||Q-(Q1+Q2+......+Qn)||≤T,其中,所述T表示预设的误差阈值。
4.根据权利要求2所述的计算装置,其特征在于,所述训练单元,用于调整所述至少两个求和项中的每个求和项的大小,并通过训练压缩后的机器学习模型,以得到满足预设精度的第二权值矩阵,包括:
所述训练单元,具体用于调整所述至少两个求和项中的每个求和项的大小,并通过训练压缩后的机器学习模型,以得到满足预设精度并且与所述第一权值矩阵之间的压缩比满足预设压缩比的第二权值矩阵。
5.根据权利要求2至4任一项所述的计算装置,其特征在于,所述计算装置用于执行全连接层神经网络计算;所述第一公式包括:M≈M1+M2;所述两个求和项包括第一求和项M1和第二求和项M2,所述第一求和项所述第一求和项M1中包括(n1-1)个压缩参数K1;所述(n1-1)个压缩参数K1中的第1个压缩参数K11用于表征所述M11的输出神经元的个数,所述(n1-1)个压缩参数K1中的第(n1-1)个压缩参数用于表征所述的输入神经元的个数;所述第二求和项所述第二求和项M2中包括(n2-1)个压缩参数K2,所述(n2-1)个压缩参数中的第1个压缩参数K21用于表征所述M21的输出神经元的个数,所述(n2-1)个压缩参数中的第(n2-1)个压缩参数用于表征所述的输入神经元的个数;所述K1和所述K2为大于0且小于等于min(Nin,Nout)的正整数。
7.根据权利要求2-4任一项所述的计算装置,其特征在于,所述计算装置用于执行LSTM层神经网络计算,所述LSTM层包括N个全连接层,所述N为大于0的正整数;针对第j个全连接层,所述第一公式包括:Mj≈Mj_1*Mj_2;所述第j个全连接层中的两个求和项包括第一求和项Mj_1和第二求和项Mj_2,所述第一求和项所述第一求和项Mj_1中包括(n1-1)个压缩参数S1;所述(n1-1)个压缩参数S1中的第1个压缩参数Sj_11用于表征所述Mj_1的输出神经元的个数,所述(n1-1)个压缩参数S1中的第(n1-1)个压缩参数用于表征所述的输入神经元的个数;所述第二求和项所述第二求和项Mj_2中包括(n2-1)个压缩参数S2,所述(n2-1)个压缩参数中的第1个压缩参数Sj_21用于表征所述Mj_21的输出神经元的个数,所述(n2-1)个压缩参数中的第(n2-1)个压缩参数用于表征所述的输入神经元的个数;所述S1和所述S2为大于0且小于等于min(Nin,Nout)的正整数。
8.根据权利要求1所述的计算装置,其特征在于,其特征在于,所述运算单元包括:一个主处理电路和多个从处理电路;
所述主处理电路对所述第二输入数据执行前序处理以及与所述多个从处理电路之间传输数据和运算指令;
所述多个从处理电路根据从所述主处理电路传输的数据以及运算指令并行执行中间运算得到多个中间结果,并将所述多个中间结果传输给所述主处理电路;
所述主处理电路对所述多个中间结果执行后续处理得到所述计算指令的计算结果。
9.根据权利要求1所述的计算装置,其特征在于,所述计算装置还包括:存储单元和直接内存访问单元,所述存储单元包括:寄存器、缓存中任意组合;
所述缓存,用于存储所述第一输入数据以及所述第二输入数据;
所述寄存器,用于存储所述第一输入数据以及所述第二输入数据中标量数据;
所述缓存包括高速暂存缓存;
所述控制器单元包括:指令存储单元、指令存储单元和存储队列单元;
所述指令存储单元,用于存储人工神经网络运算关联的计算指令;
所述指令处理单元,用于对所述计算指令解析得到多个运算指令;
所述存储队列单元,用于存储指令队列,该指令队列包括:按该队列的前后顺序待执行的多个运算指令或计算指令;
所述控制单元包括主处理电路,所述主处理电路包括:依赖关系处理单元;
所述依赖关系处理单元,用于确定第一运算指令与所述第一运算指令之前的第零运算指令是否存在关联关系,如所述第一运算指令与所述第零运算指令存在关联关系,将所述第一运算指令缓存在所述指令存储单元内,在所述第零运算指令执行完毕后,从所述指令存储单元提取所述第一运算指令传输至所述运算单元;
所述确定该第一运算指令与第一运算指令之前的第零运算指令是否存在关联关系包括:
依据所述第一运算指令提取所述第一运算指令中所需数据的第一存储地址区间,依据所述第零运算指令提取所述第零运算指令中所需数据的第零存储地址区间,如所述第一存储地址区间与所述第零存储地址区间具有重叠的区域,确定所述第一运算指令与所述第零运算指令具有关联关系,如所述第一存储地址区间与所述第零存储地址区间不具有重叠的区域,确定所述第一运算指令与所述第零运算指令不具有关联关系。
10.一种机器学习运算装置,其特征在于,所述机器学习运算装置包括一个或多个如权利要求1-9任一项所述的计算装置,用于从其他处理装置中获取待运算输入数据和控制信息,并执行指定的机器学习运算,将执行结果通过I/O接口传递给其他处理装置;
当所述机器学习运算装置包含多个所述计算装置时,所述多个所述计算装置间可以通过特定的结构进行连接并传输数据;
其中,多个所述计算装置通过快速外部设备互连总线PCIE总线进行互联并传输数据,以支持更大规模的机器学习的运算;多个所述计算装置共享同一控制***或拥有各自的控制***;多个所述计算装置共享内存或者拥有各自的内存;多个所述计算装置的互联方式是任意互联拓扑。
11.一种组合处理装置,其特征在于,所述组合处理装置包括如权利要求10所述的机器学习运算装置,通用互联接口、存储装置和其他处理装置;
所述机器学习运算装置与所述其他处理装置进行交互,共同完成用户指定的计算操作;该存储装置分别与所述机器学习运算装置和所述其他处理装置连接,用于保存所述机器学习运算装置和所述其他处理装置的数据。
12.一种神经网络芯片,其特征在于,所述机器学习芯片包括如权利要求10所述的机器学习运算装置或如权利要求11所述的组合处理装置或如权利要求11所述的组合处理装置。
13.一种电子设备,其特征在于,所述电子设备包括如所述权利要求12所述的芯片。
14.一种板卡,其特征在于,所述板卡包括:存储器件、接口装置和控制器件以及如权利要求12所述的神经网络芯片;
其中,所述神经网络芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;
所述存储器件,用于存储数据;
所述接口装置,用于实现所述芯片与外部设备之间的数据传输;
所述控制器件,用于对所述芯片的状态进行监控。
15.一种执行机器学习模型的计算方法,其特征在于,所述计算方法应用于计算装置,所述计算装置用于执行机器学习计算;所述计算装置包括:压缩单元、运算单元以及控制器单元;所述方法包括:
所述控制器单元获取针对第一输入数据的压缩请求,并根据所述压缩请求指示所述压缩单元对所述第一输入数据进行压缩;其中,所述第一输入数据包括第一权值矩阵;
所述压缩单元,用于将第一权值矩阵压缩为第二权值矩阵;其中,所述第二权值矩阵包括至少两个求和项;
所述控制器单元获取第二输入数据以及计算指令;所述第二输入数据包括所述第二权值矩阵以及输入神经元数据;
所述控制器单元解析该计算指令得到多个运算指令,将所述多个运算指令以及所述第二输入数据发送给运算单元;
所述运算单元获取所述运算指令,并根据所述运算指令以及所述第二输入数据执行神经网络计算。
16.根据权利要求15所述的方法,其特征在于,所述压缩单元包括:分解单元、求解单元以及训练单元;
其中,所述分解单元,用于将所述第一权值矩阵分解成第三权值矩阵;其中,所述第三权值矩阵包括至少两个求和项;
所述求解单元,用于根据第一公式确定所述至少两个求和项中的每个求和项的大小,所述第一公式为Q≈Q1+Q2+...+Qn;其中,所述Q表示第一权值矩阵;所述Q1表示所述至少两个求和项中的第一求和项,所述Q2表示所述至少两个求和项中的第二求和项,所述Qn表示所述至少两个求和项中的第n求和项,
所述训练单元,用于调整所述至少两个求和项中的每个求和项的大小,并通过训练压缩后的机器学习模型,以得到满足预设精度的第二权值矩阵。
17.根据权利要求16所述的方法,其特征在于,所述求解单元,用于根据第一公式确定所述至少两个求和项中的每个求和项的大小,所述第一公式为Q≈Q1+Q2.+...+Qn,包括:
所述求解单元,具体用于根据所述第一公式和第二公式确定所述至少两个求和项中的每个求和项的大小,所述第二公式为||Q-(Q1+Q2+......+Qn)||≤T,其中,所述T表示预设的误差阈值。
18.根据权利要求16所述的方法,其特征在于,所述训练单元,用于调整所述所述至少两个求和项中的每个求和项的大小,并通过训练压缩后的机器学习模型,以得到满足预设精度的第二权值矩阵,包括:
所述训练单元,具体用于调整所述至少两个求和项中的每个求和项的大小,并通过训练压缩后的机器学习模型,以得到满足预设精度并且与所述第一权值矩阵之间的压缩比满足预设压缩比的第二权值矩阵。
19.根据权利要求16-18任一项所述的方法,其特征在于,所述计算装置用于执行全连接层神经网络计算;所述第一公式包括:M≈M1+M2;所述两个求和项包括第一求和项M1和第二求和项M2,所述第一求和项所述第一求和项M1中包括(n1-1)个压缩参数K1;所述(n1-1)个压缩参数K1中的第1个压缩参数K11用于表征所述M11的输出神经元的个数,所述(n1-1)个压缩参数K1中的第(n1-1)个压缩参数用于表征所述的输入神经元的个数;所述第二求和项所述第二求和项M2中包括(n2-1)个压缩参数K2,所述(n2-1)个压缩参数中的第1个压缩参数K21用于表征所述M21的输出神经元的个数,所述(n2-1)个压缩参数中的第(n2-1)个压缩参数用于表征所述的输入神经元的个数;所述K1和所述K2为大于0且小于等于min(Nin,Nout)的正整数。
21.根据权利要求16-18任一项所述的方法,其特征在于,所述计算装置用于执行LSTM层神经网络计算,所述LSTM层包括N个全连接层,所述N为大于0的正整数;针对第j个全连接层,所述第一公式包括:Mj≈Mj_1*Mj_2;所述第j个全连接层中的两个求和项包括第一求和项Mj_1和第二求和项Mj_2,所述第一求和项所述第一求和项Mj_1中包括(n1-1)个压缩参数S1;所述(n1-1)个压缩参数S1中的第1个压缩参数Sj_11用于表征所述Mj_1的输出神经元的个数,所述(n1-1)个压缩参数S1中的第(n1-1)个压缩参数用于表征所述的输入神经元的个数;所述第二求和项所述第二求和项Mj_2中包括(n2-1)个压缩参数S2,所述(n2-1)个压缩参数中的第1个压缩参数Sj_21用于表征所述Mj_21的输出神经元的个数,所述(n2-1)个压缩参数中的第(n2-1)个压缩参数用于表征所述的输入神经元的个数;所述S1和所述S2为大于0且小于等于min(Nin,Nout)的正整数。
22.根据权利要求15所述的方法,其特征在于,所述运算单元包括:一个主处理电路和多个从处理电路;
所述主处理电路对所述第二输入数据执行前序处理以及与所述多个从处理电路之间传输数据和运算指令;
所述多个从处理电路根据从所述主处理电路传输的数据以及运算指令并行执行中间运算得到多个中间结果,并将所述多个中间结果传输给所述主处理电路;
所述主处理电路对所述多个中间结果执行后续处理得到所述计算指令的计算结果。
23.根据权利要求15所述的方法,其特征在于,所述计算装置还包括:存储单元和直接内存访问单元,所述存储单元包括:寄存器、缓存中任意组合;
所述缓存存储所述第一输入数据以及所述第二输入数据;
所述寄存器存储所述第一输入数据以及所述第二输入数据中的标量;所述缓存包括高速暂存缓存;
所述控制器单元包括:指令存储单元、指令存储单元和存储队列单元;
所述指令存储单元存储人工神经网络运算关联的计算指令;
所述指令处理单元对所述计算指令解析得到多个运算指令;
所述存储队列单元存储指令队列,该指令队列包括:按该队列的前后顺序待执行的多个运算指令或计算指令;
所述控制单元包括主处理电路,所述主处理电路包括:依赖关系处理单元;
所述依赖关系处理单元确定第一运算指令与所述第一运算指令之前的第零运算指令是否存在关联关系,如所述第一运算指令与所述第零运算指令存在关联关系,将所述第一运算指令缓存在所述指令存储单元内,在所述第零运算指令执行完毕后,从所述指令存储单元提取所述第一运算指令传输至所述运算单元;
所述确定该第一运算指令与第一运算指令之前的第零运算指令是否存在关联关系包括:
依据所述第一运算指令提取所述第一运算指令中所需数据的第一存储地址区间,依据所述第零运算指令提取所述第零运算指令中所需数据的第零存储地址区间,如所述第一存储地址区间与所述第零存储地址区间具有重叠的区域,确定所述第一运算指令与所述第零运算指令具有关联关系,如所述第一存储地址区间与所述第零存储地址区间不具有重叠的区域,确定所述第一运算指令与所述第零运算指令不具有关联关系。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910029922.8A CN111382835A (zh) | 2018-12-27 | 2018-12-27 | 一种神经网络压缩方法、电子设备及计算机可读介质 |
CN201811619060.6A CN111382848A (zh) | 2018-12-27 | 2018-12-27 | 一种计算装置及相关产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811619060.6A CN111382848A (zh) | 2018-12-27 | 2018-12-27 | 一种计算装置及相关产品 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910029922.8A Division CN111382835A (zh) | 2018-12-27 | 2018-12-27 | 一种神经网络压缩方法、电子设备及计算机可读介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111382848A true CN111382848A (zh) | 2020-07-07 |
Family
ID=71219244
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811619060.6A Pending CN111382848A (zh) | 2018-12-27 | 2018-12-27 | 一种计算装置及相关产品 |
CN201910029922.8A Pending CN111382835A (zh) | 2018-12-27 | 2018-12-27 | 一种神经网络压缩方法、电子设备及计算机可读介质 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910029922.8A Pending CN111382835A (zh) | 2018-12-27 | 2018-12-27 | 一种神经网络压缩方法、电子设备及计算机可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN111382848A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113197582B (zh) * | 2021-04-27 | 2022-03-25 | 浙江大学 | 一种高通用性的心电数据压缩感知***、终端和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160217369A1 (en) * | 2015-01-22 | 2016-07-28 | Qualcomm Incorporated | Model compression and fine-tuning |
CN106991477A (zh) * | 2016-01-20 | 2017-07-28 | 南京艾溪信息科技有限公司 | 一种人工神经网络压缩编码装置和方法 |
US20180046915A1 (en) * | 2016-08-12 | 2018-02-15 | Beijing Deephi Intelligence Technology Co., Ltd. | Compression of deep neural networks with proper use of mask |
US20180046914A1 (en) * | 2016-08-12 | 2018-02-15 | Beijing Deephi Intelligence Technology Co., Ltd. | Compression method for deep neural networks with load balance |
WO2018107414A1 (zh) * | 2016-12-15 | 2018-06-21 | 上海寒武纪信息科技有限公司 | 压缩/解压缩神经网络模型的装置、设备和方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9600762B2 (en) * | 2013-04-12 | 2017-03-21 | Qualcomm Incorporated | Defining dynamics of multiple neurons |
CN104809426B (zh) * | 2014-01-27 | 2019-04-05 | 日本电气株式会社 | 卷积神经网络的训练方法、目标识别方法及装置 |
JP6784162B2 (ja) * | 2016-12-13 | 2020-11-11 | 富士通株式会社 | 情報処理装置、プログラム及び情報処理方法 |
US10776697B2 (en) * | 2017-04-18 | 2020-09-15 | Huawei Technologies Co., Ltd. | System and method for training a neural network |
CN107480774A (zh) * | 2017-08-11 | 2017-12-15 | 山东师范大学 | 基于集成学习的动态神经网络模型训练方法和装置 |
CN107844826B (zh) * | 2017-10-30 | 2020-07-31 | 中国科学院计算技术研究所 | 神经网络处理单元及包含该处理单元的处理*** |
CN107944555B (zh) * | 2017-12-07 | 2021-09-17 | 广州方硅信息技术有限公司 | 神经网络压缩和加速的方法、存储设备和终端 |
-
2018
- 2018-12-27 CN CN201811619060.6A patent/CN111382848A/zh active Pending
- 2018-12-27 CN CN201910029922.8A patent/CN111382835A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160217369A1 (en) * | 2015-01-22 | 2016-07-28 | Qualcomm Incorporated | Model compression and fine-tuning |
CN106991477A (zh) * | 2016-01-20 | 2017-07-28 | 南京艾溪信息科技有限公司 | 一种人工神经网络压缩编码装置和方法 |
CN108427990A (zh) * | 2016-01-20 | 2018-08-21 | 北京中科寒武纪科技有限公司 | 神经网络计算***和方法 |
US20180046915A1 (en) * | 2016-08-12 | 2018-02-15 | Beijing Deephi Intelligence Technology Co., Ltd. | Compression of deep neural networks with proper use of mask |
US20180046914A1 (en) * | 2016-08-12 | 2018-02-15 | Beijing Deephi Intelligence Technology Co., Ltd. | Compression method for deep neural networks with load balance |
WO2018107414A1 (zh) * | 2016-12-15 | 2018-06-21 | 上海寒武纪信息科技有限公司 | 压缩/解压缩神经网络模型的装置、设备和方法 |
Non-Patent Citations (1)
Title |
---|
刘春阳,粱德群,宋焕生,吴更石: "神经网络在图像压缩技术中的应用" * |
Also Published As
Publication number | Publication date |
---|---|
CN111382835A (zh) | 2020-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109104876B (zh) | 一种运算装置及相关产品 | |
CN109543832B (zh) | 一种计算装置及板卡 | |
US11307865B2 (en) | Data processing apparatus and method | |
CN109522052B (zh) | 一种计算装置及板卡 | |
TWI827432B (zh) | 計算裝置、機器學習運算裝置、組合處理裝置、神經網絡芯片、電子設備、板卡、及計算方法 | |
CN110163363B (zh) | 一种计算装置及方法 | |
CN111353591A (zh) | 一种计算装置及相关产品 | |
CN110163350B (zh) | 一种计算装置及方法 | |
CN110059797B (zh) | 一种计算装置及相关产品 | |
CN111047022A (zh) | 一种计算装置及相关产品 | |
CN109753319B (zh) | 一种释放动态链接库的装置及相关产品 | |
CN111045728B (zh) | 一种计算装置及相关产品 | |
CN110059809B (zh) | 一种计算装置及相关产品 | |
CN109711540B (zh) | 一种计算装置及板卡 | |
CN111930681A (zh) | 一种计算装置及相关产品 | |
CN109740730B (zh) | 运算方法、装置及相关产品 | |
CN109740729B (zh) | 运算方法、装置及相关产品 | |
CN109711538B (zh) | 运算方法、装置及相关产品 | |
CN111382848A (zh) | 一种计算装置及相关产品 | |
CN111047021A (zh) | 一种计算装置及相关产品 | |
US11307866B2 (en) | Data processing apparatus and method | |
US11086634B2 (en) | Data processing apparatus and method | |
CN111198714B (zh) | 重训练方法及相关产品 | |
CN111047024A (zh) | 一种计算装置及相关产品 | |
CN111291871A (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 |