CN115481713A - 改进卷积神经网络进行计算的方法 - Google Patents

改进卷积神经网络进行计算的方法 Download PDF

Info

Publication number
CN115481713A
CN115481713A CN202110662142.4A CN202110662142A CN115481713A CN 115481713 A CN115481713 A CN 115481713A CN 202110662142 A CN202110662142 A CN 202110662142A CN 115481713 A CN115481713 A CN 115481713A
Authority
CN
China
Prior art keywords
convolutional
convolutional layer
layer
kernels
convolution
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
CN202110662142.4A
Other languages
English (en)
Inventor
谈力立
廖文财
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.)
Realtek Semiconductor Corp
Original Assignee
Realtek Semiconductor Corp
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
Application filed by Realtek Semiconductor Corp filed Critical Realtek Semiconductor Corp
Priority to CN202110662142.4A priority Critical patent/CN115481713A/zh
Priority to TW110125208A priority patent/TWI800866B/zh
Priority to US17/514,277 priority patent/US20220398429A1/en
Publication of CN115481713A publication Critical patent/CN115481713A/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/0464Convolutional networks [CNN, ConvNet]
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/15Correlation function computation including computation of convolution operations
    • G06F17/153Multidimensional correlation or convolution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Landscapes

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

Abstract

本发明公开一种改进卷积神经网络(CNN)进行计算的方法。CNN包括多个卷积层,每一卷积层用到N个卷积核,N为大于1的整数,且方法包括如下步骤。首先,根据这些卷积层都用到的卷积核数量,确定N个乘法器和N个加法器。接着,当CNN运行到第i个卷积层且第i个卷积层的N个卷积核都是K×1×1的大小时,使用这N个乘法器和这N个加法器在每一周期时分别计算第i个卷积层的N个卷积核的一次乘法运算和一次加法运算,使得K个周期后得到第i个卷积层的N个卷积核的N个输出结果,i为大于或等于1的整数,且K为大于1的整数。

Description

改进卷积神经网络进行计算的方法
技术领域
本发明涉及卷积神经网络(Convolutional Neural Network,CNN),特别涉及一种改进CNN进行计算的方法。
背景技术
CNN在语言识别方面能有出色表现,且梅尔频率倒谱系数 (Mel-FrequencyCepstral Coefficients,MFCC)已广泛作为CNN在语言识别方面的输入数据。然而,CNN实现时需要较多的存储资源和计算资源,且每一卷积层的卷积核(也称Filters)可能大小不同。例如,CNN处理MFCC时包括四个卷积层,且每一卷积层用到16个卷积核,但第1个卷积层的卷积核都是10×1×1的大小,第2个卷积层的卷积核则都是10×1×16的大小,且第3和第4个卷积层的卷积核又都是6×1×16的大小,因此会需要复杂的存储控制和中间缓存,并造成实现后的面积和功耗相对大。
发明内容
为此,本发明实施例提供一种改进CNN进行计算的方法。CNN 包括多个卷积层,每一卷积层用到N个卷积核,N为大于1的整数,且方法包括如下步骤。首先,根据这些卷积层都用到的卷积核数量,确定N个乘法器和N个加法器。接着,当CNN运行到第i个卷积层且第i个卷积层的N个卷积核都是K×1×1的大小时,使用这N个乘法器和这N个加法器在每一周期时分别计算第i个卷积层的N个卷积核的一次乘法运算和一次加法运算,使得K个周期后得到第i个卷积层的N个卷积核的N个输出结果,i为大于或等于1的整数,且K 为大于1的整数。
优选地,方法还包括当CNN运行到第j个卷积层且第j个卷积层的N个卷积核都是P×1×N的大小时,使用这N个乘法器和这N个加法器在每一周期时计算第j个卷积层的这N个卷积核中的目标卷积核的N次乘法运算和N次加法运算,使得P个周期后得到该目标卷积核的一个输出结果,j为大于或等于1的整数,且P为大于1的整数。
优选地,CNN还包括多个全连接层(Fully Connected Layers),且方法还包括当CNN运行到第k个全连接层且第k个全连接层的输入数据的总数量为M*N时,使用这N个乘法器和这N个加法器在每一周期时完成输入数据的N笔数据的转换计算,使得M个周期后得到第k个全连接层的输出结果,k和M为大于或等于1的整数。
为使得能够更进一步了解本发明的特征及技术内容,请参考以下有关本发明的详细说明与附图,然而所提供的附图仅用于提供参考与说明,并非用来对本发明加以限制。
附图说明
图1是本发明实施例所提供的改进CNN以在不同卷积层使用不同大小卷积核的方法的步骤流程图。
图2是本发明实施例所提供的CNN处理MFCC时的示意图。
图3A至图3C是图1的方法应用在图2的第1个卷积层时的示意图。
具体实施方式
以下通过特定的具体实施例来说明本发明的实施方式,本领域技术人员可由本说明书所提供的内容了解本发明的优点与效果。本发明可通过其他不同的具体实施例执行或应用,本说明书中的各项细节也可以基于不同观点与应用,在不悖离本发明的构思下进行各种修改与变更。另外,应当理解本发明的附图仅为简单示意说明,并非依据实际大小的描绘。以下的实施方式将进一步详细说明本发明的相关技术内容,但所提供的内容并非用以限制本发明的保护范围。
应当理解的是,虽然本文中可能会使用到“第一”、“第二”、“第三”等术语来描述各种组件或者信号,但这些组件或者信号不应受这些术语的限制。这些术语主要是用以区分一个组件与另一组件,或者一个信号与另一信号。另外,本文中所使用的术语“或”,应视实际情况可能包含相关联的列出项目中的任何一个或者多个的组合。
请同时参考图1和图2,图1是本发明实施例所提供的改进CNN 以在不同卷积层使用不同大小卷积核的方法的步骤流程图,且图2 是本发明实施例所提供的CNN处理MFCC时的示意图。如前所述, CNN包括多个卷积层,且每一卷积层可以用到N个卷积核,N为大于1的整数。为了方便以下说明,本实施例仅以图2的CNN处理 MFCC时包括四个卷积层,且每一卷积层用到16个卷积核为例,但本发明实际不限制CNN的输入数据为MFCC,也不限制CNN包含的卷积层数量以及这些卷积层都用到的卷积核数量。通常来说, MFCC可以是一个大小为1×13×1的参数矩阵,且会输入99个到 CNN,即图2的输入数据可以是一个大小为99×13×1的矩阵,但本发明也不以此为限制。
由于第1个卷积层的卷积核都是10×1×1的大小,因此现有技术在第1个卷积层时会将10个元素与第1个卷积层的一个卷积核做10 次乘法计算和9次加法计算,以得到一个输出结果。另外,由于第2 个卷积层的卷积核都是10×1×16的大小,因此现有技术在第2个卷积层时会将10*16个元素与第2个卷积层的一个卷积核做160次乘法计算和159次加法计算,以得到一个输出结果。类似地,由于第3 和第4个卷积层的卷积核都是6×1×16的大小,因此现有技术在第3 个卷积层时会将6*16个元素与第3个卷积层的一个卷积核做96次乘法计算和95次加法计算,以得到一个输出结果,并且在第4个卷积层时会将6*16个元素与第4个卷积层的一个卷积核做96次乘法计算和95次加法计算,以得到一个输出结果。
由此可见,现有技术在第1个卷积层时需要10个乘法器,在第 2个卷积层时需要160个乘法器,且在第3和第4个卷积层时则分别需要96个乘法器,因此很难做到电路合并。另外,每一卷积层要做独立的控制电路和存取电路,特别是数据存储部分,每次需要读取的元素数量不相同,所以存储控制和中间缓存会很复杂。为了解决上述技术问题,在图1的步骤S110中,根据这些卷积层都用到的卷积核数量,本发明会确定N个乘法器和N个加法器。接着,在步骤 S120中,当CNN运行到第i个卷积层且第i个卷积层的N个卷积核都是K×1×1的大小时,本发明会使用这N个乘法器和这N个加法器在每一周期时分别计算第i个卷积层的N个卷积核的一次乘法运算和一次加法运算,使得K个周期后得到第i个卷积层的N个卷积核的N个输出结果,i为大于或等于1的整数,且K为大于1的整数。
换言之,i、N和K在本实施例中可以分别为1、16和10,但本发明不以此为限制,因此本发明在图2的第1个卷积层时会将一个元素同时与第1个卷积层的每一卷积核做一次乘法运算和一次加法运算。请一并参考图3A至图3C,图3A至图3C是图1的方法应用在图2的第1个卷积层时的示意图。如图3A所示,在第1个周期时,本发明可以将输入数据的元素A1,1与第1个卷积层的第1个卷积核 CK1,1的元素B1,1做相乘后再加上其前一级的计算结果来得到这一级的计算结果C1,1,并且也将元素A1,1与第1个卷积层的第2个卷积核 CK1,2的元素B2,1做相乘后再加上其前一级的计算结果来得到这一级的计算结果C2,1,以此类推,本发明也将元素A1,1与第1个卷积层的第16个卷积核CK1,16的元素B16,1做相乘后再加上其前一级的计算结果来得到这一级的计算结果C16,1。由于这时候还没有前一级的计算结果,因此本发明可以是将元素A1,1个别与元素B1,1~B16,1做相乘后再加上0来得到计算结果C1,1~C16,1
类似地,如图3B所示,在第2个周期时,本发明则将输入数据的元素A1,2与第1个卷积层的第1个卷积核CK1,1的元素B1,2做相乘后再加上其前一级的计算结果C1,1来得到这一级的计算结果C1,2,并且也将元素A1,2与第1个卷积层的第2个卷积核CK1,2的元素B2,2做相乘后再加上其前一级的计算结果C2,1来得到这一级的计算结果 C2,2,以此类推,本发明也将元素A1,2与第1个卷积层的第16个卷积核CK1,16的元素B16,2做相乘后再加上其前一级的计算结果C16,1来得到这一级的计算结果C16,2,因此如图3C所示,在第10个周期时,本发明就能得到等于 A1,1*Br,1+A1,2*Br,2+A1,3*Br,3+A1,4*Br,4+A1,5*Br,5+A1,6*Br,6+A1,7*Br,7+A1,8*Br,8+A1,9*Br,9+A1,10*Br,10的计算结果Cr,10,r依序为1至16的整数,即同时得到16个卷积核的输出结果。
由此可见,以图2为例,本发明可以使用16个乘法器和16个加法器在每一周期时分别计算第1个卷积层的16个卷积核的一次乘法运算和一次加法运算,使得10个周期后得到第1个卷积层的16 个卷积核的16个输出结果,这样的存储控制就不用复杂,且中间缓存只需要一块独立的存储。另外,在图1的步骤S130中,当CNN 运行到第j个卷积层且第j个卷积层的N个卷积核都是P×1×N的大小时,本发明会使用这N个乘法器和这N个加法器在每一周期时计算第j个卷积层的这N个卷积核中的目标卷积核的N次乘法运算和N次加法运算,使得P个周期后得到该目标卷积核的一个输出结果,j为大于或等于1的整数,且P为大于1的整数。
换言之,j和P在本实施例中可以先分别为2和10,但本发明不以此为限制,因此本发明在图2的第2个卷积层时会将16个元素与第2个卷积层的其中一个卷积核(即目标卷积核)做16次乘法运算和16次加法运算,使得10个周期后得到该目标卷积核的一个输出结果。类似地,j和P在本实施例中还可以分别为3和6,因此本发明在图2的第3个卷积层时会将16个元素与第3个卷积层的其中一个卷积核(即目标卷积核)做16次乘法运算和16次加法运算,使得6个周期后得到该目标卷积核的一个输出结果;或者j和P在本实施例中还可以分别为4和6,因此本发明在图2的第4个卷积层时会将16个元素与第4个卷积层的其中一个卷积核(即目标卷积核)做 16次乘法运算和16次加法运算,使得6个周期后得到该目标卷积核的一个输出结果。
应当理解的是,本发明没有限制步骤S120和步骤S130的执行顺序和执行次数。另外,CNN还可包括多个全连接层以进行分类。然而,由于全连接层的工作原理已为本领域技术人员所熟知,因此其细节就不再多加赘述。总而言之,在图1的步骤S140中,当CNN 运行到第k个全连接层且第k个全连接层的输入数据的总数量为 M*N时,本发明会使用这N个乘法器和这N个加法器在每一周期时完成输入数据的N笔数据的转换计算,使得M个周期后得到第k个全连接层的输出结果,k和M为大于或等于1的整数。
如图2所示,k和M可以先分别为1和13,因此本发明在图2 的第1个全连接层时会使用这16个乘法器和这16个加法器在每一周期时完成16笔输入数据的转换计算,使得13个周期后得到第1 个全连接层的输出结果。类似地,k和M在本实施例中还可以都为 2,因此本发明在图2的第2个全连接层时会使用这16个乘法器和这16个加法器在每一周期时完成16笔输入数据的转换计算,使得2 个周期后得到第2个全连接层的输出结果。
综上所述,相比于现有技术,本发明提供了一种改进CNN进行计算的方法,以不需要复杂的存储控制和中间缓存,并且使得实现后的面积和功耗相对更小。
以上所提供的内容仅为本发明的优选可行实施例,并非因此限制本发明的保护范围,所以凡是运用本发明说明书及附图内容所做的等效技术变化,均包含于本发明的保护范围内。
【符号说明】
S110~S140:流程步骤
A1,1,A1,2,A1,10,A1,11,A1,99,A2,1,A2,2,A2,10,A2,11,A2,99,A13,1,A13,2, A13,10,A13,11,A13,99:输入数据的元素
CK1,1,CK1,2,CK1,16:卷积核
B1,1,B1,2,B1,10,B2,1,B2,2,B2,10,B16,1,B16,2,B16,10:卷积核的元素
C1,1,C1,2,C1,9,C1,10,C2,1,C2,2,C2,9,C2,10,C16,1,C16,2,C16,9,C16,10:计算结果。

Claims (3)

1.一种改进卷积神经网络进行计算的方法,所述卷积神经网络包括多个卷积层,所述多个卷积层中的每个卷积层用到N个卷积核,N为大于1的整数,且所述方法包括:
根据所述多个卷积层都用到的卷积核数量,确定N个乘法器和N个加法器;以及
当所述卷积神经网络运行到第i个卷积层且所述第i个卷积层的所述N个卷积核都是K×1×1的大小时,使用所述N个乘法器和所述N个加法器在每一周期时分别计算所述第i个卷积层的所述N个卷积核的一次乘法运算和一次加法运算,使得K个周期后得到所述第i个卷积层的所述N个卷积核的N个输出结果,其中i为大于或等于1的整数,且K为大于1的整数。
2.根据权利要求1所述的方法,还包括:
当所述卷积神经网络运行到第j个卷积层且所述第j个卷积层的所述N个卷积核都是P×1×N的大小时,使用所述N个乘法器和所述N个加法器在每一周期时计算所述第j个卷积层的所述N个卷积核中的目标卷积核的N次乘法运算和N次加法运算,使得P个周期后得到所述目标卷积核的一个输出结果,其中j为大于或等于1的整数,且P为大于1的整数。
3.根据权利要求2所述的方法,其中所述卷积神经网络还包括多个全连接层,且所述方法还包括:
当所述卷积神经网络运行到第k个全连接层且所述第k个全连接层的输入数据的总数量为M*N时,使用所述N个乘法器和所述N个加法器在每一周期时完成所述输入数据的N笔数据的转换计算,使得M个周期后得到所述第k个全连接层的输出结果,其中k和M为大于或等于1的整数。
CN202110662142.4A 2021-06-15 2021-06-15 改进卷积神经网络进行计算的方法 Pending CN115481713A (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202110662142.4A CN115481713A (zh) 2021-06-15 2021-06-15 改进卷积神经网络进行计算的方法
TW110125208A TWI800866B (zh) 2021-06-15 2021-07-09 改良卷積神經網路進行運算的方法
US17/514,277 US20220398429A1 (en) 2021-06-15 2021-10-29 Method for improving convolutional neural network to perform computations

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110662142.4A CN115481713A (zh) 2021-06-15 2021-06-15 改进卷积神经网络进行计算的方法

Publications (1)

Publication Number Publication Date
CN115481713A true CN115481713A (zh) 2022-12-16

Family

ID=84390408

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110662142.4A Pending CN115481713A (zh) 2021-06-15 2021-06-15 改进卷积神经网络进行计算的方法

Country Status (3)

Country Link
US (1) US20220398429A1 (zh)
CN (1) CN115481713A (zh)
TW (1) TWI800866B (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102499396B1 (ko) * 2017-03-03 2023-02-13 삼성전자 주식회사 뉴럴 네트워크 장치 및 뉴럴 네트워크 장치의 동작 방법
EP3654210A1 (en) * 2017-08-31 2020-05-20 Cambricon Technologies Corporation Limited Chip device and related products
CN107844826B (zh) * 2017-10-30 2020-07-31 中国科学院计算技术研究所 神经网络处理单元及包含该处理单元的处理***
CN107909148B (zh) * 2017-12-12 2020-10-20 南京地平线机器人技术有限公司 用于执行卷积神经网络中的卷积运算的装置
CN109740729B (zh) * 2018-12-14 2020-12-22 安徽寒武纪信息科技有限公司 运算方法、装置及相关产品

Also Published As

Publication number Publication date
TW202301199A (zh) 2023-01-01
US20220398429A1 (en) 2022-12-15
TWI800866B (zh) 2023-05-01

Similar Documents

Publication Publication Date Title
US11574031B2 (en) Method and electronic device for convolution calculation in neural network
CN107341547B (zh) 一种用于执行卷积神经网络训练的装置和方法
CN107341542B (zh) 用于执行循环神经网络和lstm运算的装置和方法
US5517667A (en) Neural network that does not require repetitive training
JP2019109896A (ja) ニューラルネットワークにおける畳み込み計算のための方法および電子デバイス
US11880768B2 (en) Method and apparatus with bit-serial data processing of a neural network
US20220414439A1 (en) Neuromorphic Synthesizer
US20180373977A1 (en) Optimized neuron circuit, and architecture and method for executing neural networks
US11385864B2 (en) Counter based multiply-and-accumulate circuit for neural network
CN107967132A (zh) 一种用于神经网络处理器的加法器和乘法器
JPH0784975A (ja) 情報処理装置および学習演算処理方法
Nazemi et al. Nullanet: Training deep neural networks for reduced-memory-access inference
KR20190089685A (ko) 데이터를 처리하는 방법 및 장치
CN108762719B (zh) 一种并行广义内积重构控制器
CN111445016B (zh) 加速非线性数学计算的***及方法
CN115481713A (zh) 改进卷积神经网络进行计算的方法
CA2135857A1 (en) Neural network utilizing logarithmic function and method of using same
CN112836793A (zh) 浮点可分离卷积计算加速装置、***以及图像处理方法
Anusha et al. The Journey of Logarithm Multiplier: Approach, Development and Future Scope
US11977432B2 (en) Data processing circuit and fault-mitigating method
VinothKumar et al. Numeric-Digit Identifier based on Convolutional Neural Networks on Field-Programmable Gate Array
US20240086152A1 (en) Calculation unit for multiplication and accumulation operations
TWI844108B (zh) 積體電路及操作方法
US20240086677A1 (en) Learned column-weights for rapid-estimation of properties of an entire excitation vector
US20230359497A1 (en) Electronic device and method for accelerating neural network computations

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