CN113228056B - 运行时硬件模拟仿真方法、装置、设备及存储介质 - Google Patents
运行时硬件模拟仿真方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113228056B CN113228056B CN201980067042.8A CN201980067042A CN113228056B CN 113228056 B CN113228056 B CN 113228056B CN 201980067042 A CN201980067042 A CN 201980067042A CN 113228056 B CN113228056 B CN 113228056B
- Authority
- CN
- China
- Prior art keywords
- neural network
- data
- simulation
- simulated
- result
- 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.)
- Active
Links
- 238000004088 simulation Methods 0.000 title claims abstract description 135
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000013528 artificial neural network Methods 0.000 claims abstract description 181
- 238000004364 calculation method Methods 0.000 claims abstract description 99
- 238000013139 quantization Methods 0.000 claims abstract description 55
- 238000010586 diagram Methods 0.000 claims abstract description 47
- 230000008569 process Effects 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 7
- 238000010276 construction Methods 0.000 claims description 3
- 238000013473 artificial intelligence Methods 0.000 abstract description 2
- 239000010410 layer Substances 0.000 description 30
- 238000012360 testing method Methods 0.000 description 9
- 230000004913 activation Effects 0.000 description 5
- 238000003062 neural network model Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 230000003213 activating effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 210000002569 neuron Anatomy 0.000 description 2
- 238000011176 pooling Methods 0.000 description 2
- 239000002356 single layer Substances 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013529 biological neural network Methods 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 210000003169 central nervous system Anatomy 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
适用于人工智能领域,提供一种运行时硬件模拟仿真方法、装置、计算机设备及存储介质,其中,所述方法包括:获取神经网络结构图与神经网络参数(S101);根据神经网络结构图模拟构建对应的神经网络(S102);获取待仿真数据,并对待仿真数据按量化信息进行量化,得到仿真输入数据(S103),仿真输入数据与神经网络参数为同一硬件数据类型;将神经网络参数与仿真输入数据输入到神经网络进行卷积计算,得到卷积结果(S104);基于卷积结果,得到仿真结果进行输出(S105)。由于将待仿真数据量化为与神经网络参数相同的硬件数据类型,在使用软件仿真时,使得仿真计算更贴近硬件计算的结果,且硬件数据类型的数据计算量小于浮点类型的计算量,还可以提高神经网络仿真的计算速度。
Description
技术领域
本发明属于人工智能技术领域,尤其涉及一种运行时硬件模拟仿真方法、装置、设备及存储介质。
背景技术
人工神经网络(artificial neural network,缩写ANN),简称神经网络(neuralnetwork,缩写NN)或类神经网络,是一种模仿生物神经网络(动物的中枢神经***,特别是大脑)的结构和功能的数学模型或计算模型,用于对函数进行估计或近似。
神经网络主要由:输入层,隐藏层,输出层构成。当隐藏层只有一层时,该网络为两层神经网络,由于输入层未做任何变换,可以不看做单独的一层。实际中,网络输入层的每个神经元代表了一个特征,输出层个数代表了分类标签的个数(在做二分类时,如果采用sigmoid分类器,输出层的神经元个数为1个;如果采用softmax分类器,输出层神经元个数为2个),而隐藏层层数以及隐藏层神经元是由人工设定。
一个神经网络在开发到交付的过程中,需要不断进行仿真测试。仿真测试一般发生在神经网络产品交付使用前,模拟神经网络的真实运行环境,软件配置到真实的使用状态进行的测试。
现有的仿真测试一般是通过验证工具链接到硬件上进行仿真模拟,或者是使用软件模拟硬件计算结果。然而,在硬件上进行仿真模拟,仿真速度极慢,且大规模测试需要硬件资源更多,不容易实现,导致使用软件仿真的较多。而使用软件仿真时,由于软件仿真采用的纯浮点计算结果与硬件计算结果存在一定的数值差别,无法达到完全的数值一致。因此,现有的神经网络仿真方法存在纯浮点计算结果与硬件计算结果不一致的问题,导致神经网络在交付的产品上运行时得到的结果与仿真的结果不一致。
发明内容
本发明实施例提供一种运行时硬件模拟仿真方法,旨在解决现有的神经网络仿真方法存在纯浮点计算结果与硬件计算结果不一致的问题。
本发明实施例是这样实现的,提供一种运行时硬件模拟仿真方法,包括步骤:
获取神经网络结构图与神经网络参数,所述神经网络结构图包括量化信息;
根据所述神经网络结构图模拟构建对应的神经网络;
获取待仿真数据,并对所述待仿真数据按所述量化信息进行量化,得到仿真输入数据,所述仿真输入数据与所述神经网络参数为同一硬件数据类型;
将所述神经网络参数与所述仿真输入数据输入到所述神经网络进行卷积计算,得到卷积结果;
基于所述卷积结果,得到仿真结果进行输出。
更进一步的,所述获取待仿真数据,并对所述待仿真数据按所述量化信息进行量化,得到仿真输入数据的步骤包括:
获取待仿真数据,并根据所述量化信息,将所述待仿真数据转换为8bit单元长度的待仿真数据,得到8bit单元长度的仿真输入数据。
更进一步的,所述待仿真数据为浮点类型数据,所述神经网络参数为8bit单元长度的神经网络参数,所述对所述待仿真数据按所述量化信息进行量化的步骤具体还包括:
对所述8bit单元长度的神经网络数据与所述8bit单元长度的仿真输入数据分别减去自身的偏移值,得到int32的整型数据;
所述将所述神经网络参数与所述仿真输入数据输入到所述神经网络进行卷积计算,得到卷积结果的步骤具体包括:
将int32的神经网络参数与仿真输入数据输入到神经网络中进行卷积计算,得到int32的卷积结果。
更进一步的,所述神经网络参数包括偏置参数,所述基于所述卷积结果,得到仿真结果进行输出的步骤具体包括:
将所述int32的卷积结果加上偏置参数,得到int32的偏置结果;
基于所述偏置结果,得到仿真结果进行输出。
更进一步的,所述基于所述卷积结果,得到仿真结果进行输出的步骤包括:
根据所述量化信息以及所述偏移值对所述卷积结果进行反量化,得到仿真结果;
对所述仿真结果进行输出。
更进一步的,所述量化信息包括缩放值,所述根据所述量化信息以及所述偏移值对所述卷积结果进行反量化,得到仿真结果的步骤包括:
根据所述缩放值以及所述偏移值对所述卷积结果进行反量化,得到仿真结果。
本发明还提供一种运行时硬件模拟仿真装置,所述装置包括:
获取模块,用于获取神经网络结构图与神经网络参数,所述神经网络结构图包括量化信息;
构建模块,用于根据所述神经网络结构图模拟构建对应的神经网络;
量化模块,用于获取待仿真数据,并对所述待仿真数据按所述量化信息进行量化,得到仿真输入数据,所述仿真输入数据与所述神经网络参数为同一硬件数据类型;
计算模块,用于将所述神经网络参数与所述仿真输入数据输入到所述神经网络进行卷积计算,得到卷积结果;
输出模块,用于基于所述卷积结果,得到仿真结果进行输出。
更进一步的,所述量化模块还用于获取待仿真数据,并根据所述量化信息,将所述待仿真数据转换为8bit单元长度的待仿真数据,得到8bit单元长度的仿真输入数据。
本发明还提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现本发明实施例中任一项所述的运行时硬件模拟仿真方法的步骤。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例中任一项所述的运行时硬件模拟仿真方法的步骤。
本发明实现的有益效果:本发明由于将待仿真数据量化为与神经网络参数相同的硬件数据类型,在使用软件仿真时,使得仿真计算更贴近硬件计算的结果,且硬件数据类型的数据计算量小于浮点类型的计算量,还可以提高神经网络仿真的计算速度。
附图说明
图1是本发明实施例提供的一种运行时硬件模拟仿真方法的流程示意图;
图2是本发明实施例提供的另一种运行时硬件模拟仿真方法的流程示意图;
图3是本发明实施例提供的另一种运行时硬件模拟仿真方法的流程示意图;
图4是本发明实施例提供的一种运行时硬件模拟仿真装置的结构示意图;
图5是本发明实施例提供的一种输出模块405的具体流程示意图;
图6是本发明实施例提供的另一种输出模块405的具体流程示意图;
图7是本发明实施例的计算机设备的一个实施例的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
现有神经网络的仿***要是通过硬件仿真或软件仿真进行,硬件仿真更贴近神经网络运行时的计算逻辑,但硬件仿真的计算速度极慢,不适于大规模的仿真测试,导致使用软件仿真的较多。而使用软件仿真时,由于软件仿真采用的纯浮点计算结果与硬件计算结果存在一定的数值差别,无法达到完全的数值一致。本发明由于将待仿真数据量化为与神经网络参数相同的硬件数据类型,在使用软件仿真时,使得仿真计算更贴近硬件计算的结果,且硬件数据类型的数据计算量小于浮点类型的计算量,还可以提高神经网络仿真的计算速度。
如图1所示,为根据本申请的一种运行时硬件模拟仿真方法所提供的一个实施例的流程图。上述的一种运行时硬件模拟仿真方法,包括步骤:
S101,获取神经网络结构图与神经网络参数。
其中,上述的神经网络结构图包括量化信息,上述的量化信息包括将数据量化为多少长度的信息。
仿真软件可以根据上述的量化信息将待仿真数据进行量化,比如量化为8bit数据等。
上述的神经网络结构图可以是识别类的神经网络结构图,比如人脸识别,车辆识别等,也可以是检测类的神经网络结构图,比如物体检测,车辆检测等。
上述的神经网络结构图也可以是单层的网络结构图,比如卷积层对应的卷积神经网络等。
上述的神经网络结构图可以理解为神经网络结构,进一步的,可以理解为用于各类神经网络模型的神经网络结构。上述的神经网络结构是以层为计算单元的,包含且不限于:卷积层、池化层、ReLU、全连接层等。
上述的神经网络参数是指的神经网络结构中的每一层对应的参数,可以是权重参数、偏置参数等。上述的各类神经网络模型可以是预先训练好的对应神经网络模型,由于神经网络模型是预先训练好的,其神经网络参数的属性也是训练好的,因此,在仿真软件中配置好的神经网络可以根据配置的神经网络参数直接使用,不需要再对神经网络进行训练,根据该预先训练好的神经网络模型,可以通过神经网络结构图以及参数进行统一描述。
上述获取神经网络结构图以及神经网络参数可以是在本地进行获取,也可以是云服务器上进行获取,比如:上述的神经网络结构图以及神经网络参数可以成套的存储在本地,在使用时自动进行选择或者用户进行选择,或者是将神经网络结构图以及神经网络参数上传到云服务器中,在使用时通过网络将云服务器中的神经网络结构图以及神经网络参数下载下来。
S102,根据神经网络结构图模拟构建对应的神经网络。
其中,神经网络结构图为步骤S101中获取到神经网络结构图,将获取到的神经网络结构图在仿真软件中进行模拟,从而在软件中构建出对应的神经网络。
S103,获取待仿真数据,并对待仿真数据按量化信息进行量化,得到仿真输入数据。
上述的待仿真数据为用户输入的数据,当神经网络为图像处理类型的神经网络时,则用户输入的数据为图像数据。
上述的量化可以是通过编译器进行完成。
具体的,可以通过公式r=s×(q-z)进行计算,其中,r指的是浮点数值,就是用户输入的数据,q指的是量化后的数据,z是偏移值,s是缩放值,s和z是编译器产生的。
根据公式r=s×(q-z)可得,量化后的数据为q=r/ s + z。
由于s和z是编译器产生的,r是用户输入的待仿真数据,所以通过编译器对输入的待仿真数据进行量化,得到量化后的仿真输入数据。
其中,经过量化后,得到的仿真输入数据与神经网络参数为同一硬件数据类型。
需要说明的是,神经网络参数与待仿真数据不同,神经网络参数为硬件数据类型,而待仿真数据为浮点数据类型。在经过编译器的量化后,待仿真数据变成仿真输入数据,与神经网络参数为同一硬件数据类型。
进一步的,上述获取待仿真数据,并对待仿真数据按所述量化信息进行量化,得到仿真输入数据的步骤包括:
获取待仿真数据,并根据量化信息,将待仿真数据转换为8bit单元长度的待仿真数据,得到8bit单元长度的仿真输入数据。
其中,神经网络参数也是8bit单元长度的数据,神经网络参数包括权重参数及偏置参数。
S104,将神经网络参数与仿真输入数据输入到神经网络进行卷积计算,得到卷积结果。
上述的神经网络包括卷积层,可以对神经网络参数与仿真输入数据进行卷积计算。
由于是在软件中模拟的神经网络,所以在神经网络中的卷积计算过程与浮点的计算过程一致,即是将硬件数据类型的数据通过浮点计算过程来实现计算,使得浮点计算的结果更贴近硬件计算结果。
S105,基于卷积结果,得到仿真结果进行输出。
上述的卷积结果为步骤S104中计算得到的卷积结果,上述的卷积结果经过激活层处理后,可以作为仿真结果进行输出。
在一种可能的实施例中,得到卷积结果后,没有激活层,则会将卷积结果输入下一层网络中进行计算,比如进行入池化层对卷积结果进行池化等。
本发明实施例中,获取神经网络结构图与神经网络参数,神经网络结构图包括量化信息;根据神经网络结构图模拟构建对应的神经网络;获取待仿真数据,并对待仿真数据按量化信息进行量化,得到仿真输入数据,仿真输入数据与神经网络参数为同一硬件数据类型;将神经网络参数与仿真输入数据输入到神经网络进行卷积计算,得到卷积结果;基于卷积结果,得到仿真结果进行输出。由于将待仿真数据量化为与神经网络参数相同的硬件数据类型,在使用软件仿真时,使得仿真计算更贴近硬件计算的结果,且硬件数据类型的数据计算量小于浮点类型的计算量,还可以提高神经网络仿真的计算速度。
可选的,如图2所示,为根据本申请的另一种运行时硬件模拟仿真方法所提供的一个实施例的流程图。
S201,获取神经网络结构图与神经网络参数。
S202,根据神经网络结构图模拟构建对应的神经网络。
S203,获取待仿真数据,并根据量化信息,将待仿真数据转换为8bit单元长度的待仿真数据,得到8bit单元长度的仿真输入数据。
其中,神经网络参数也是8bit单元长度的数据,神经网络参数包括权重参数及偏置参数。
S203,对8bit单元长度的神经网络数据与8bit单元长度的仿真输入数据分别减去自身的偏移值,得到int32的整型数据。
整型数据为硬件的计算数据,使得软件的仿真计算更贴近硬件的计算逻辑,从而使得软件的仿真计算结果更贴近硬件的计算结果。
S204,将int32的神经网络参数与仿真输入数据输入到神经网络中进行卷积计算,得到int32的卷积结果。
将int32的神经网络参数与仿真输入数据输入到神经网络中的卷积层中进行卷积计算,得到的卷积结果也是int32的的整型数据,贴近硬件计算的结果。
S205,将int32的卷积结果加上偏置参数,得到int32的偏置结果。
上述的偏置参数为神经网络参数中的偏置参数,上述的加上偏置参数的过程是在偏置层进行加法计算。
具体的,神经网络的计算公式是 y= w * x +b。
其中,y为输出,x为输入,w * x为权重参数与输入值的卷积,b为偏置参数。
S206,对偏置结果进行激活。
通过激活层的激活函数对偏置结果进行激活,以将偏置结果进行输出。当然,若不对偏置结果进行激活,则偏置结果会输入下一个计算节点进行计算。
S207,对经过激活层的偏置结果进行反量化,得到仿真结果。
上述的反量化过程为r=s×(q-z),通过编译器进行反量化操作。
其中,r指的是浮点数值,就是用户输入的数据,q指的是量化后的数据,z是偏移值,s是缩放值,s和z是编译器产生的。
S208,对仿真结果进行输出。
将仿真结果输出给用户,以使用户得知仿真结果,该仿真结果用于提供基准数据用作硬件参照,提供计算模型,用于算法测试。为硬件设计提供指导。
本发明实施例中,获取神经网络结构图与神经网络参数,神经网络结构图包括量化信息;根据神经网络结构图模拟构建对应的神经网络;获取待仿真数据,并对待仿真数据按量化信息进行量化,得到仿真输入数据,仿真输入数据与神经网络参数为同一硬件数据类型;将神经网络参数与仿真输入数据输入到神经网络进行卷积计算,得到卷积结果;基于卷积结果,得到仿真结果进行输出。由于将待仿真数据量化为与神经网络参数相同的硬件数据类型,在使用软件仿真时,使得仿真计算更贴近硬件计算的结果,且硬件数据类型的数据计算量小于浮点类型的计算量,还可以提高神经网络仿真的计算速度。整个计算流程更贴近硬件的计算模式,减少浮点计算中的不相关内容,便于硬件用作输出校验。同时,由于计算模式和操作模式和硬件一致,所以可以直接模拟硬件的最终计算结果,可以用于神经网络的算法测试。
可选的,在根据神经网络结构图在软件中构建神经网络后,如图3所示,具体的步骤包括:
S301,用户输入图片数据。
S302,对输入的图片数据进行量化,将Float32的图像数据量化为8bit单元长度的图片数据。
S303,将量化后的图片数据减去偏移值,变成int32的图片数据,用于输入到卷积层,进入步骤S306。
S304,用户输入神经网络权重参数,神经网络权重参数为8bit单元长度的神经网络权重参数。
S305,将神经网络权重参数也减去偏移值,变成int32的神经网络权重参数,用于输入到卷积层,进入步骤S306。
S306,将处理后的图片数据与处理后的神经网络权重参数进行卷积计算,得到卷积结果。
S307,将卷积结果加上偏置参数,得到特征图。
S308,判断是否存在激活层或激活函数,若存在,则对特征图进行反量化,输出给用户;若不存在,则进入步骤S309。
S309,对特征图继续进行量化,作为下一计算层的输入。
本发明实施例中,获取神经网络结构图与神经网络参数,神经网络结构图包括量化信息;根据神经网络结构图模拟构建对应的神经网络;获取待仿真数据,并对待仿真数据按量化信息进行量化,得到仿真输入数据,仿真输入数据与神经网络参数为同一硬件数据类型;将神经网络参数与仿真输入数据输入到神经网络进行卷积计算,得到卷积结果;基于卷积结果,得到仿真结果进行输出。由于将待仿真数据量化为与神经网络参数相同的硬件数据类型,在使用软件仿真时,使得仿真计算更贴近硬件计算的结果,且硬件数据类型的数据计算量小于浮点类型的计算量,还可以提高神经网络仿真的计算速度。整个计算流程更贴近硬件的计算模式,减少浮点计算中的不相关内容,便于硬件用作输出校验。同时,由于计算模式和操作模式和硬件一致,所以可以直接模拟硬件的最终计算结果,可以用于神经网络的算法测试。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(Random Access Memory,RAM)等。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
如图4所示,为本实施例所提供的一种运行时硬件模拟仿真装置的结构示意图,上述装置400包括:
获取模块401,用于获取神经网络结构图与神经网络参数,所述神经网络结构图包括量化信息;
构建模块402,用于根据所述神经网络结构图模拟构建对应的神经网络;
量化模块403,用于获取待仿真数据,并对所述待仿真数据按所述量化信息进行量化,得到仿真输入数据,所述仿真输入数据与所述神经网络参数为同一硬件数据类型;
计算模块404,用于将所述神经网络参数与所述仿真输入数据输入到所述神经网络进行卷积计算,得到卷积结果;
输出模块405,用于基于所述卷积结果,得到仿真结果进行输出。
进一步地,如图4所示,所述量化模块还用于获取待仿真数据,并根据所述量化信息,将所述待仿真数据转换为8bit单元长度的待仿真数据,得到8bit单元长度的仿真输入数据。
进一步地,如图4所示,所述待仿真数据为浮点类型数据,所述神经网络参数为8bit单元长度的神经网络参数,所述量化模块403还用于对所述8bit单元长度的神经网络数据与所述8bit单元长度的仿真输入数据分别减去自身的偏移值,得到int32的整型数据;
所述计算模块404还用于将int32的神经网络参数与仿真输入数据输入到神经网络中进行卷积计算,得到int32的卷积结果。
进一步地,如图5所示,所述神经网络参数包括偏置参数,所述输出模块405包括:
偏置单元4051,用于将所述int32的卷积结果加上偏置参数,得到int32的偏置结果;
第一输出单元4052,用于基于所述偏置结果,得到仿真结果进行输出。
进一步地,如图6所示,所述输出模块405包括:
反量化单元4053,用于根据所述量化信息以及所述偏移值对所述卷积结果进行反量化,得到仿真结果;
第二输出单元4054,用于对所述仿真结果进行输出。
进一步地,如图6所示,所述量化信息包括缩放值,反量化单元4053还用于根据所述缩放值以及所述偏移值对所述卷积结果进行反量化,得到仿真结果。
本申请实施例提供的一种运行时硬件模拟仿真装置能够实现图1至图3的方法实施例中的各个实施方式,以及相应有益效果,为避免重复,这里不再赘述。
为解决上述技术问题,本申请实施例还提供计算机设备。具体请参阅图7,图7为本实施例计算机设备基本结构框图。
计算机设备7包括通过***总线相互通信连接存储器701、处理器702、网络接口703。需要指出的是,图中仅示出了具有组件701-703的计算机设备70,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable GateArray,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。计算机设备可以与客户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
存储器701至少包括一种类型的可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器701可以是计算机设备7的内部存储单元,例如该计算机设备7的硬盘或内存。在另一些实施例中,存储器701也可以是计算机设备7的外部存储设备,例如该计算机设备7上配备的插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital, SD)卡,闪存卡(Flash Card)等。当然,存储器701还可以既包括计算机设备7的内部存储单元也包括其外部存储设备。本实施例中,存储器701通常用于存储安装于计算机设备7的操作***和各类应用软件,例如一种行时硬件模拟仿真方法的程序代码等。此外,存储器701还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器702在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器702通常用于控制计算机设备7的总体操作。本实施例中,处理器702用于运行存储器701中存储的程序代码或者处理数据,例如运行一种行时硬件模拟仿真方法的程序代码。
网络接口703可包括无线网络接口或有线网络接口,该网络接口703通常用于在计算机设备7与其他电子设备之间建立通信连接。
本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,计算机可读存储介质存储有一种行时硬件模拟仿真程序,上述一种行时硬件模拟仿真程序可被至少一个处理器执行,以使至少一个处理器执行如上述的一种行时硬件模拟仿真方法的步骤。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例的一种行时硬件模拟仿真方法。
本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
以上仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种运行时硬件模拟仿真方法,其特征在于,包括步骤:
获取神经网络结构图与神经网络参数,所述神经网络结构图包括量化信息,所述量化信息包括将数据量化为多少长度的信息;
根据所述神经网络结构图模拟构建对应的神经网络;
获取待仿真数据,并对所述待仿真数据按所述量化信息进行量化,得到仿真输入数据,所述仿真输入数据与所述神经网络参数为同一硬件数据类型;
将所述神经网络参数与所述仿真输入数据输入到所述神经网络进行卷积计算,以实现将所述同一硬件数据类型的所述仿真输入数据通过浮点计算得到卷积结果,所述卷积计算的过程与所述浮点计算的过程一致;
基于所述卷积结果,得到仿真结果进行输出。
2.根据权利要求1所述的运行时硬件模拟仿真方法,其特征在于,所述获取待仿真数据,并对所述待仿真数据按所述量化信息进行量化,得到仿真输入数据的步骤包括:
获取待仿真数据,并根据所述量化信息,将所述待仿真数据转换为8bit单元长度的待仿真数据,得到8bit单元长度的仿真输入数据。
3.根据权利要求2所述的运行时硬件模拟仿真方法,其特征在于,所述待仿真数据为浮点类型数据,所述神经网络参数为8bit单元长度的神经网络参数,所述对所述待仿真数据按所述量化信息进行量化的步骤具体还包括:
对所述8bit单元长度的神经网络数据与所述8bit单元长度的仿真输入数据分别减去自身的偏移值,得到int32的整型数据;
所述将所述神经网络参数与所述仿真输入数据输入到所述神经网络进行卷积计算,得到卷积结果的步骤具体包括:
将int32的神经网络参数与仿真输入数据输入到神经网络中进行卷积计算,得到int32的卷积结果。
4.根据权利要求3所述的运行时硬件模拟仿真方法,其特征在于,所述神经网络参数包括偏置参数,所述基于所述卷积结果,得到仿真结果进行输出的步骤具体包括:
将所述int32的卷积结果加上偏置参数,得到int32的偏置结果;
基于所述偏置结果,得到仿真结果进行输出。
5.根据权利要求3所述的运行时硬件模拟仿真方法,其特征在于,所述基于所述卷积结果,得到仿真结果进行输出的步骤包括:
根据所述量化信息以及所述偏移值对所述卷积结果进行反量化,得到仿真结果;
对所述仿真结果进行输出。
6.根据权利要求5所述的运行时硬件模拟仿真方法,其特征在于,所述量化信息包括缩放值,所述根据所述量化信息以及所述偏移值对所述卷积结果进行反量化,得到仿真结果的步骤包括:
根据所述缩放值以及所述偏移值对所述卷积结果进行反量化,得到仿真结果。
7.一种运行时硬件模拟仿真装置,其特征在于,所述装置包括:
获取模块,用于获取神经网络结构图与神经网络参数,所述神经网络结构图包括量化信息,所述量化信息包括将数据量化为多少长度的信息;
构建模块,用于根据所述神经网络结构图模拟构建对应的神经网络;
量化模块,用于获取待仿真数据,并对所述待仿真数据按所述量化信息进行量化,得到仿真输入数据,所述仿真输入数据与所述神经网络参数为同一硬件数据类型;
计算模块,用于将所述神经网络参数与所述仿真输入数据输入到所述神经网络进行卷积计算,以实现将所述同一硬件数据类型的所述仿真输入数据通过浮点计算得到卷积结果,所述卷积计算的过程与所述浮点计算的过程一致;
输出模块,用于基于所述卷积结果,得到仿真结果进行输出。
8.根据权利要求7所述的运行时硬件模拟仿真装置,其特征在于,所述量化模块还用于获取待仿真数据,并根据所述量化信息,将所述待仿真数据转换为8bit单元长度的待仿真数据,得到8bit单元长度的仿真输入数据。
9.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至6中任一项所述的运行时硬件模拟仿真方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述的运行时硬件模拟仿真方法的步骤。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2019/110840 WO2021068249A1 (zh) | 2019-10-12 | 2019-10-12 | 运行时硬件模拟仿真方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113228056A CN113228056A (zh) | 2021-08-06 |
CN113228056B true CN113228056B (zh) | 2023-12-22 |
Family
ID=75437629
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980067042.8A Active CN113228056B (zh) | 2019-10-12 | 2019-10-12 | 运行时硬件模拟仿真方法、装置、设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113228056B (zh) |
WO (1) | WO2021068249A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114707650B (zh) * | 2021-12-31 | 2024-06-14 | 浙江芯劢微电子股份有限公司 | 一种提高仿真效率的仿真实现方法 |
CN115656747A (zh) * | 2022-12-26 | 2023-01-31 | 南方电网数字电网研究院有限公司 | 基于异构数据的变压器缺陷诊断方法、装置和计算机设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109002881A (zh) * | 2018-06-28 | 2018-12-14 | 郑州云海信息技术有限公司 | 基于fpga的深度神经网络的定点化计算方法及装置 |
CN109284761A (zh) * | 2018-09-04 | 2019-01-29 | 苏州科达科技股份有限公司 | 一种图像特征提取方法、装置、设备及可读存储介质 |
EP3438890A1 (en) * | 2017-08-04 | 2019-02-06 | Samsung Electronics Co., Ltd. | Method and apparatus for generating fixed-point quantized neural network |
CN109753903A (zh) * | 2019-02-27 | 2019-05-14 | 北航(四川)西部国际创新港科技有限公司 | 一种基于深度学习的无人机检测方法 |
CN110245741A (zh) * | 2018-03-09 | 2019-09-17 | 佳能株式会社 | 多层神经网络模型的优化和应用方法、装置及存储介质 |
-
2019
- 2019-10-12 CN CN201980067042.8A patent/CN113228056B/zh active Active
- 2019-10-12 WO PCT/CN2019/110840 patent/WO2021068249A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3438890A1 (en) * | 2017-08-04 | 2019-02-06 | Samsung Electronics Co., Ltd. | Method and apparatus for generating fixed-point quantized neural network |
CN110245741A (zh) * | 2018-03-09 | 2019-09-17 | 佳能株式会社 | 多层神经网络模型的优化和应用方法、装置及存储介质 |
CN109002881A (zh) * | 2018-06-28 | 2018-12-14 | 郑州云海信息技术有限公司 | 基于fpga的深度神经网络的定点化计算方法及装置 |
CN109284761A (zh) * | 2018-09-04 | 2019-01-29 | 苏州科达科技股份有限公司 | 一种图像特征提取方法、装置、设备及可读存储介质 |
CN109753903A (zh) * | 2019-02-27 | 2019-05-14 | 北航(四川)西部国际创新港科技有限公司 | 一种基于深度学习的无人机检测方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113228056A (zh) | 2021-08-06 |
WO2021068249A1 (zh) | 2021-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102099798B (zh) | 用于使用本机代码模块执行应用的方法和*** | |
CN112418292B (zh) | 一种图像质量评价的方法、装置、计算机设备及存储介质 | |
CN113228056B (zh) | 运行时硬件模拟仿真方法、装置、设备及存储介质 | |
CN112465141B (zh) | 模型压缩方法、装置、电子设备及介质 | |
CN113159284A (zh) | 一种模型训练方法及装置 | |
CN111666393A (zh) | 智能问答***的验证方法、装置、计算机设备及存储介质 | |
CN113723603A (zh) | 一种更新参数的方法、装置及存储介质 | |
CN114707650A (zh) | 一种提高仿真效率的仿真实现方法 | |
CN114154622A (zh) | 交通运行体系流量数据采集缺失补全的算法模型 | |
CN113343711A (zh) | 工单生成方法、装置、设备及存储介质 | |
CN117454668A (zh) | 零部件失效概率的预测方法、装置、设备和介质 | |
CN116431807B (zh) | 一种文本分类方法、装置、存储介质及电子装置 | |
CN113272813B (zh) | 定制数据流硬件模拟仿真方法、装置、设备及存储介质 | |
CN112287950A (zh) | 特征提取模块压缩方法、图像处理方法、装置、介质 | |
CN116168403A (zh) | 医疗数据分类模型训练方法、分类方法、装置及相关介质 | |
CN116306879A (zh) | 数据处理方法、装置、电子设备以及存储介质 | |
CN113469237B (zh) | 用户意图识别方法、装置、电子设备及存储介质 | |
CN114818484A (zh) | 驾驶环境模型的训练方法及驾驶环境信息的预测方法 | |
CN113989569A (zh) | 图像处理方法、装置、电子设备和存储介质 | |
CN111178630A (zh) | 一种负荷预测方法及装置 | |
CN111931994A (zh) | 一种短期负荷及光伏功率预测方法及其***、设备、介质 | |
CN114254724A (zh) | 一种数据处理方法、神经网络的训练方法以及相关设备 | |
CN116778264B (zh) | 基于类增学习的对象分类方法、图像分类方法及相关设备 | |
CN116309274B (zh) | 图像中小目标检测方法、装置、计算机设备及存储介质 | |
CN116578690B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |