CN114707650B - 一种提高仿真效率的仿真实现方法 - Google Patents
一种提高仿真效率的仿真实现方法 Download PDFInfo
- Publication number
- CN114707650B CN114707650B CN202210321357.4A CN202210321357A CN114707650B CN 114707650 B CN114707650 B CN 114707650B CN 202210321357 A CN202210321357 A CN 202210321357A CN 114707650 B CN114707650 B CN 114707650B
- Authority
- CN
- China
- Prior art keywords
- neural network
- point characteristic
- simulation
- file
- folder
- 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 82
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000003062 neural network model Methods 0.000 claims abstract description 109
- 238000013528 artificial neural network Methods 0.000 claims abstract description 62
- 238000012360 testing method Methods 0.000 claims abstract description 55
- 238000013139 quantization Methods 0.000 claims abstract description 14
- 238000012795 verification Methods 0.000 claims abstract description 9
- 230000006870 function Effects 0.000 claims description 12
- 230000015654 memory Effects 0.000 claims description 11
- 238000013135 deep learning Methods 0.000 abstract description 4
- 238000003860 storage Methods 0.000 description 12
- 238000006243 chemical reaction Methods 0.000 description 10
- 238000003012 network analysis Methods 0.000 description 9
- 238000011176 pooling Methods 0.000 description 8
- 230000004913 activation Effects 0.000 description 7
- 238000004590 computer program Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000011002 quantification Methods 0.000 description 4
- 238000009434 installation Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 210000005036 nerve Anatomy 0.000 description 3
- 238000007792 addition Methods 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 2
- 241000282414 Homo sapiens Species 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000009466 transformation 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/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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- 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/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
- G06N3/065—Analogue means
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Neurology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Image Analysis (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请公开了一种提高仿真效率的仿真实现方法,涉及深度学习技术领域,其中,提高仿真效率的仿真实现方法包括以下步骤:量化集图片通过神经网络编译器对神经网络模型进行量化生成可执行文件,万人测试集通过神经网络编译器生成第一输入数据、第一定点特征文件和浮点特征文件,若精度表格的统计结果符合预设的精度范围,则读取可执行文件和第一输入数据进行神经网络模型的仿真。有益效果在于实现多个不同类型的神经网络模型的批量仿真,确保移植到芯片或FPGA的正确性,针对不同类型的神经网络模型逐层进行仿真,覆盖了更多的仿真验证点,防止芯片流片的风险,同时用于统计神经网络模型的精度表格进行了全面的精度验证。
Description
本申请是申请日为2021年12月31日,申请号为202111653883.2,发明名称为“一种基于神经网络编译器的仿真实现方法、神经网络编译器以及计算机可读存储介质”的分案申请。
技术领域
本申请属于深度学习技术领域,更具体地说,本申请涉及一种提高仿真效率的仿真实现方法。
背景技术
随着互联网技术的发展,搜集到的海量数据为深度学习训练提供足够多的场景,以卷积神经网络为主的智能算法的发展依托于海量数据,在图像分类以及物体识别等领域,智能算法的精度已经超过了人类的识别精度。
神经网络算法想要在安防领域落地,需要将服务器上训练好的算法模型,解析成嵌入式芯片可识别的计算机语言,以方便安防摄像头的安装监控。
将卷积神经网络算法在CPU(Central Processing Unit,中央处理器)或GPU(Graphics Processing Unit,图形处理器)上实现的过程,移植到FPGA(ProgrammableGate Array,现场可编程门阵列)或者芯片中实现,以方便便携式携带与安装,CPU中实现的算力无法满足目前的需求,且GPU的实现方式无法应用到嵌入式设备中,又采用python语言或C++语言进行32bit浮点的前向实现过程,因此为了降低芯片面积来降低成本以及满足精度不丢失,需要量化成8bit定点来实现,FPGA或芯片采用verilog(HDL是一种硬件描述语言)实现,因此需要对整个神经网络模型进行仿真,并验证精度是否满足需求。
目前的技术方案具有以下缺陷:第一,只能仿真一个神经网络模型的各个中间层,前期只能人工检索出每层信息并配置成文件,不能进行万人测试集的精度测试,更加没有仿真不同数据集的范围分布。第二,当更换其他类型的神经网络模型或者不同场景的测试集时,不能确保芯片或FPGA运行的正确性,增加了芯片流片成本,而且没有量化神经网络,采用浮点乘法器,导致运行性能降低。
发明内容
本申请的目的在于提供一种提高仿真效率的仿真实现方法,以解决上述现有技术中存在的只能仿真一个神经网络模型的各个中间层且不能进行万人测试集的精度测试的技术问题。
为实现上述技术目的,本申请采用的技术方案如下:
一种提高仿真效率的仿真实现方法,包括以下步骤:
构建神经网络编译器,用于接收量化集图片、多个不同类型的神经网络模型以及万人测试集,所述神经网络编译器进行精度验证后,对所述神经网络模型逐层进行仿真;
所述量化集图片通过所述神经网络编译器对所述神经网络模型进行量化生成可执行文件,所述万人测试集通过所述神经网络编译器生成第一输入数据、第一定点特征文件和浮点特征文件;
对比所述第一定点特征文件和所述浮点特征文件,输出用于统计所述神经网络模型的精度表格;
若所述精度表格的统计结果符合预设的精度范围,则读取所述可执行文件和所述第一输入数据进行所述神经网络模型的仿真。
优选地,还包括步骤:
搭建所述神经网络编译器的环境,安装所述神经网络编译器,测试所述神经网络编译器是否安装成功;
其中,所述神经网络编译器的搭建环境设置为与仿真***相同的操作***。
优选地,所述量化集图片通过所述神经网络编译器对所述神经网络模型进行量化生成可执行文件,具体包括以下步骤:
准备不同类型的神经网络模型以及不同场景下的量化集图片;
运行所述神经网络编译器,根据所述量化集图片对所述神经网络模型进行量化生成所述可执行文件;
其中,所述可执行文件包括神经网络名标识、输入层的层标识、中间层的层标识、输出层的层标识、量化后的权重值、量化后的偏移值、层操作名、层参数信息、层关联信息和层内存信息。
优选地,还包括步骤:
预设所述神经网络模型的数量,设置初始的循环次数为0,判断循环次数是否符合预设的所述神经网络模型的数量;
若循环次数不符合预设的所述神经网络模型的数量,则所述量化集图片通过所述神经网络编译器对所述神经网络模型进行量化生成所述可执行文件,所述万人测试集通过所述神经网络编译器生成所述第一输入数据、所述第一定点特征文件和所述浮点特征文件;
若循环次数符合预设的所述神经网络模型的数量,则结束流程。
优选地,所述万人测试集通过所述神经网络编译器生成第一输入数据、第一定点特征文件和浮点特征文件,具体包括以下步骤:
根据不同的所述神经网络模型准备不同的万人测试集;
所述万人测试集通过缩放函数生成网络分辨率大小的第一输入数据,对所述万人测试集进行仿真生成第一定点特征文件和浮点特征文件。
优选地,对比所述第一定点特征文件和所述浮点特征文件,输出用于统计所述神经网络模型的精度表格,具体包括以下步骤:
所述浮点特征文件包含第一浮点特征数据,将所述第一定点特征文件中的定点特征数据转成换浮点特征数据,生成第二浮点特征数据;
对比所述第一浮点特征数据和所述第二浮点特征数据的相似度,若相似度在预设的变量内,则满足精度需求;若相似度不在预设的变量内,则不满足精度需求;
将所述第一浮点特征数据和所述第二浮点特征数据的相似度统计结果以表格的形式输出。
优选地,若所述精度表格的统计结果符合预设的精度范围,则读取所述可执行文件和所述第一输入数据进行所述神经网络模型的仿真,具体包括以下步骤:
对所述精度表格进行计数,计数的统计结果需符合预设的精度范围;
读取所述可执行文件,根据所述可执行文件对硬件进行配置,读取所述第一输入数据,根据所述第一输入数据启动对所述神经网络模型的仿真,生成第二定点特征文件;
对比所述第一定点特征文件和所述第二定点特征文件,若不相同,则保存所述第二定点特征文件中的错误数据。
优选地,还包括步骤:
建立第一文件夹,在第一文件夹下自动生成第一主文件夹,所述第一主文件夹用于存放所述可执行文件;
在第一文件夹下自动生成第一副文件夹,所述第一副文件夹用于存放所述第一定点特征文件;
在第一文件夹下自动生成输入数据文件夹,所述输入数据文件夹用于存放所述第一输入数据。
优选地,准备不同类型的神经网络模型和量化集图片,具体包括以下步骤:
建立第二文件夹,在第二文件夹下生成第二主文件夹,所述第二主文件夹用于存放所述不同类型的神经网络模型、所述量化集图片和所述浮点特征文件。
优选地,根据不同的所述神经网络模型准备不同的万人测试集,具体包括以下步骤:
在所述第二主文件夹下建立第二副文件夹,所述第二副文件夹用于存放所述万人测试集。
一种神经网络编译器,应用于上述的提高仿真效率的仿真实现方法,包括:依次连接的网络解析模组、网络量化模组、网络合并模组、网络存储模组和网络前向执行模组;
网络解析模组,用于接收量化集图片、多个不同类型的神经网络模型以及万人测试集,逐层解析并重构神经网络模型的结构,至少获取所述神经网络模型的输入层、输出层以及中间层的层操作名、层参数信息和层关联信息中的一种;
网络量化模组,用于根据重构后的神经网络模型生成偏移值、转换值以及将浮点型的权重值转化为定点型的权重值;
网络合并模组,用于合并所述神经网络模型中卷积层、池化层和激活层的流水操作指令;
网络存储模组,用于将所述网络解析模组、所述网络量化模组和所述网络合并模组中的数据存储生成可执行文件;
网络前向执行模组,用于所述万人测试集通过所述网络前向执行模组生成所述第一输入数据、所述第一定点特征文件和所述浮点特征文件,对比所述第一定点特征文件和所述浮点特征文件,输出用于统计所述神经网络模型的精度表格。
一种计算机可读存储介质,计算机可读存储介质上存储有计算机指令,所述计算机指令被处理器执行时实现上述所述方法的步骤。
本申请提供的有益效果在于:
1、本申请量化集图片通过神经网络编译器对不同的神经网络模型进行量化生成不同的可执行文件,若精度表格的统计结果符合预设的精度范围,则读取可执行文件和第一输入数据进行神经网络模型的仿真。实现多个不同类型的神经网络模型的批量仿真,神经网络模型的仿真考虑了各种边缘化仿真,确保移植到芯片或FPGA的正确性,通过可执行文件对硬件进行配置,针对不同类型的神经网络模型逐层进行仿真,覆盖了更多的仿真验证点,防止芯片流片的风险,节约了成本,提高了仿真效率,同时用于统计神经网络模型的精度表格进行了全面的精度验证。
2、本申请预设神经网络模型的数量,设置初始的循环次数为0,判断循环次数是否符合预设的神经网络模型的数量。通过判断神经网络模型的数量,节省生成可执行文件、第一输入数据、第一定点特征文件和浮点特征文件的时间,避免神经网络模型在前向过程中的量化耗时。生成的不同数据通过预存的路径自动存储在不同的文件夹下,为实现多种类型的神经网络模型的仿真提供相应的数据,简化仿真流程以及加快仿真效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是实施例1中提高仿真效率的仿真实现方法的流程图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
实施例1:
如图1所示,本实施例包括一种提高仿真效率的仿真实现方法,包括以下步骤:
构建神经网络编译器,用于接收量化集图片、多个不同类型的神经网络模型以及万人测试集,神经网络编译器进行精度验证后,对神经网络模型逐层进行仿真。
量化集图片通过神经网络编译器对神经网络模型进行量化生成可执行文件,万人测试集通过神经网络编译器生成第一输入数据、第一定点特征文件和浮点特征文件。
对比第一定点特征文件和浮点特征文件,输出用于统计神经网络模型的精度表格;若精度表格的统计结果符合预设的精度范围,则读取可执行文件和第一输入数据进行神经网络模型的仿真。
实现多个不同类型的神经网络模型的批量仿真,神经网络模型的仿真考虑了各种边缘化仿真,确保移植到芯片或FPGA的正确性,通过可执行文件对硬件进行配置,针对不同类型的神经网络模型逐层进行仿真,覆盖了更多的仿真验证点,防止芯片流片的风险,节约了成本,提高了仿真效率,同时用于统计神经网络模型的精度表格进行了全面的精度验证。
还包括步骤:搭建神经网络编译器的环境,安装神经网络编译器,测试神经网络编译器是否安装成功,其中,神经网络编译器的搭建环境设置为与仿真***相同的操作***。具体的,将神经网络编译器打包成whl格式,whl格式是一种压缩文件的格式,方便在操作***下安装测试。
量化集图片通过神经网络编译器对神经网络模型进行量化生成可执行文件,具体包括以下步骤:准备不同类型的神经网络模型以及不同场景下的量化集图片。
运行神经网络编译器,根据量化集图片对神经网络模型进行量化生成可执行文件。其中,可执行文件包括神经网络名标识、输入层的层标识、中间层的层标识、输出层的层标识、量化后的权重值、量化后的偏移值、层操作名、层参数信息、层关联信息和层内存信息。
具体的,神经网络编译器的网络解析模组逐层解析并重构原始神经网络模型的结构,根据重构后的神经网络模型生成偏移值、转换值以及将浮点型的权重值转化为定点型的权重值。网络合并模组和网络量化模组同时运行,合并神经网络模型中卷积层、池化层和激活层中的流水操作指令。网络存储模组将网络解析模组、网络量化模组和网络合并模组运行量化后的数据生成可执行文件。
生成偏移值的公式如下:
公式一:x′m=(x′max-x′min)*2bw
其中,x′m表示偏移值,x′max表述浮点型的最大权重值,x′min表示浮点型的最小权重值,bw表示转换的位宽,在本实施例中,当前支持12bit的位宽。
生成转换值的公式如下:
公式二:f=max((bw-ceil(log2(x′m)+1)),bw)
其中,f表示转换值,max属于***库的内置函数表示取最大值,bw表示转换的位宽,log2表示***库的内置函数,x′m表示偏移值,ceil属于***库的内置函数表示向上取整。
将浮点型的权重值转化为定点型的权重值,浮点特征数据转定点特征数据的公式表示如下:
公式三:X=round(Xfloat*2f)+x′m
其中,X表示定点特征数据,在本实施例中可以为定点型的权重值,Xfloat表示浮点特征数据,在本实施例中可以为浮点型的权重值,round表示四舍五入的***库内置函数,f表示转换值,x′m表示偏移值。
具体的,层操作名至少包括卷积、反卷积、池化、全连接、裁解、连接、点加、点乘、归一化和激活层操作中的一项。层参数信息至少包括卷积核尺寸、卷积核跨度、分组、填充值、是否带激活层、量化后的权重值和量化后的偏移值中的一项。层关联信息至少包括当前层的输入层操作名、层参数信息、当前层的输出层操作名和层参数信息中的一项。层内存信息至少包括当前层的内存大小以及是否复用其他层内存中的一项。
具体的,不同类型的神经网络模型包括检测网络、识别网络以及分类网络等,不同场景下的量化集图片的数量至少包括50张。
还包括步骤:预设神经网络模型的数量,设置初始的循环次数为0,判断循环次数是否符合预设的神经网络模型的数量。
若循环次数不符合预设的神经网络模型的数量,则量化集图片通过神经网络编译器对神经网络模型进行量化生成可执行文件,万人测试集通过神经网络编译器生成第一输入数据、第一定点特征文件和浮点特征文件。
若循环次数符合预设的神经网络模型的数量,则结束流程。每仿真完一个可执行文件,将循环次数加1。
通过判断神经网络模型的数量,节省生成可执行文件、第一输入数据、第一定点特征文件和浮点特征文件的时间,避免神经网络模型在前向过程中的量化耗时。
万人测试集通过神经网络编译器生成第一输入数据、第一定点特征文件和浮点特征文件,具体包括以下步骤:
根据不同的神经网络模型准备不同的万人测试集,万人测试集通过缩放函数生成网络分辨率大小的第一输入数据,对万人测试集进行仿真生成第一定点特征文件和浮点特征文件。
具体的,万人测试集是图片集合,万人测试集的数量为一万张图片,万人测试集通过网络前向执行模组生成第一输入数据、第一定点特征文件和浮点特征文件。
还包括步骤:建立第一文件夹,在第一文件夹下自动生成第一主文件夹,第一主文件夹用于存放可执行文件。
在第一文件夹下自动生成第一副文件夹,第一副文件夹用于存放第一定点特征文件。在第一文件夹下自动生成输入数据文件夹,输入数据文件夹用于存放第一输入数据。
准备不同类型的神经网络模型和量化集图片,具体包括以下步骤:建立第二文件夹,在第二文件夹下生成第二主文件夹,第二主文件夹用于存放不同类型的神经网络模型、量化集图片和浮点特征文件。
根据不同的神经网络模型准备不同的万人测试集,具体包括以下步骤:在第二主文件夹下建立第二副文件夹,第二副文件夹用于存放万人测试集。
具体的,在当前路径下,建立第一文件夹和第二文件夹,第一文件夹的文件名定义为SPE_PATH1,第二文件夹的文件名定义为SPE_PATH2,在SPE_PATH2文件下,建立一个以神经网络名命名的第二主文件夹存放GPU生成的神经网络模型与量化集图片,在第二主文件夹下建立第二副文件夹存放万人测试集。
每生成一个可执行文件,神经网络编译器在SPE_PATH1文件下根据解析的神经网络名生成一个以神经网络名命名的第二主文件夹,存放神经网络编译器生成的可执行文件。
自动生成SPE_PATH1文件下的输入数据文件夹,在本实施例中定义神经网络编译器解析出的神经网络名为resnet,则生成的输入数据文件夹的文件名定义为SPE_PATH1/resnet/data_input,存放万人测试集通过缩放函数生成网络分辨率大小的第一输入数据,为方便仿真,采用十六进制格式,每个数据一行排列方式。
自动生成SPE_PATH1文件下的第一副文件夹,解析出的神经网络名为resnet,网络层名为conv1_1,层序号为1,则生成的第一副文件夹的文件名定义为SPE_PATH1/resnet/conv1_1_1,用于存放对万人测试集进行仿真时中间层和输出层生成的第一定点特征文件,以方便仿真核对数据的正确性,采用十六进制格式,每个数据一行排列方式。
生成的不同数据通过预存的路径自动存储在不同的文件夹下,为实现多种类型的神经网络模型的仿真提供相应的数据,简化仿真流程以及加快仿真效率。
还包括步骤:预设可执行文件的数量,判断第一主文件夹下的可执行文件数量是否超过预设可执行文件的数量。
若第一主文件夹下的可执行文件数量未超过预设可执行文件的数量,则神经网络编译器对万人测试集进行仿真生成第一定点特征文件。
若第一主文件夹下的可执行文件数量超过预设可执行文件的数量,则结束神经网络编译器对万人测试集进行仿真的流程。
通过判断第一主文件夹下的可执行文件数量,确定万人测试集是否已经仿真完成,若仿真完成,则结束仿真流程,提高仿真效率。
对比第一定点特征文件和浮点特征文件,输出用于统计神经网络模型的精度表格,具体包括以下步骤:
浮点特征文件包含第一浮点特征数据,将第一定点特征文件中的定点特征数据转成换浮点特征数据,生成第二浮点特征数据;
对比第一浮点特征数据和第二浮点特征数据的相似度,若相似度在预设的变量内,则满足精度需求;若相似度不在预设的变量内,则不满足精度需求;
将第一浮点特征数据和第二浮点特征数据的相似度统计结果以表格的形式输出。
具体的,将第一定点特征文件中的定点特征数据通过转换公式转成换浮点特征数据,转换公式如下:
公式四:X′float=(X-x′m)/2f
其中,x′float表示浮点特征数据,在本实施例中可以为第二浮点特征数据,X表示定点特征数据,在本实施例中可以为第一定点特征文件中的定点特征数据,x′m表示偏移值,f表示转换值。
具体的,对比第一浮点特征数据和第二浮点特征数据的相似度,相似度距离公式如下:
公式五:
其中,n表示浮点特征数据的总个数,xi表示第一浮点特征数据,yi表示第二浮点特征数据,即公式四中x′float的值。θ表示距离的相似度,越接近1表明精度越高。
在本实施例中,通过对神经网络模型相对应的万人测试集进行测试,预设的变量设置为0.8的相似度距离,对比第一浮点特征数据和第二浮点特征数据的相似度,即统计万人测试集中每张图片的相似度,当相似度距离大于或等于0.8时表明满足精度需求并进行计数,统计每个神经网络模型的计数数据在万人测试集中的占比,输出用于统计神经网络模型的精度表格。可以直观的看到精度表格的统计结果,查看硬件设计的需求是否满足精度要求。
若精度表格的统计结果符合预设的精度范围,则读取可执行文件和第一输入数据进行神经网络模型的仿真,具体包括以下步骤:
对精度表格进行计数,计数的统计结果需符合预设的精度范围。读取可执行文件,根据可执行文件对硬件进行配置,读取第一输入数据,根据第一输入数据启动对神经网络模型的仿真,生成第二定点特征文件。
对比第一定点特征文件和第二定点特征文件,若不相同,则保存第二定点特征文件中的错误数据。
通过第二定点特征文件中的错误数据方便定位仿真出现的问题,可以提高仿真效率,仿真的覆盖面更加广泛。
实施例2:
本实施例包括一种神经网络编译器,应用于实施例1的提高仿真效率的仿真实现方法,包括:依次连接的网络解析模组、网络量化模组、网络合并模组、网络存储模组和网络前向执行模组。
网络解析模组,用于接收量化集图片、多个不同类型的神经网络模型以及万人测试集,逐层解析并重构神经网络模型的结构,至少获取神经网络模型的输入层、输出层以及中间层的层操作名、层参数信息和层关联信息中的一种。
具体的,网络解析模组将原始神经网络模型的结构逐层进行解析,至少获取神经网络模型的输入层、输出层以及中间层的层操作名、层参数信息和层关联信息中的一种,解析后重构内部顺序执行的结构,且重新定义内部相关网络层的数据结构,网络层包括卷积层、池化层和激活层,将层执行先后顺序、层操作类型、层操作名、层参数信息以及层关联信息等内容填充到内部相关网络层的数据结构中。
网络量化模组,用于根据重构后的神经网络模型生成偏移值、转换值以及将浮点型的权重值转化为定点型的权重值。
具体的,将存放地址空间的浮点特征数据转换成硬件支持的数据格式,且计算出转换值,减少硬件计算量与乘法器的数量。
网络合并模组,用于合并神经网络模型中卷积层、池化层和激活层的流水操作指令。
具体的,根据减少外部存储器带宽原则,优化卷积层、池化层和激活层内部的流水操作指令,对卷积层、池化层和激活层进行等价变换优化,并对内部数据结构再次优化合并,减少资源消耗,提高执行效率。减少内部存储器与外面存储器的数据交互,从而提高带宽利用率,将处于同一个流水级的层进行合并,主要合并层为卷积层和池化层。
网络存储模组,用于将网络解析模组、网络量化模组和网络合并模组中的数据存储生成可执行文件。
网络前向执行模组,用于万人测试集通过网络前向执行模组生成第一输入数据、第一定点特征文件和浮点特征文件,对比第一定点特征文件和浮点特征文件,输出用于统计神经网络模型的精度表格。
具体的,标准化部分采用开源的深度学习架构执行,以确保正确的对比标准,仿真部分保持网络前向逻辑与硬件执行网络逻辑一致,以确保数据与硬件仿真结果一致性。
相关之处参见实施例1的部分说明即可。
实施例3:
一种计算机可读存储介质,计算机可读存储介质上存储有计算机指令,计算机指令被处理器执行时实现实施例2中方法的步骤。
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明的方法、终端设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
需要说明的是:
说明书中提到的“一个实施例”或“实施例”意指结合实施例描述的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,说明书通篇各个地方出现的短语“一个实施例”或“实施例”并不一定均指同一个实施例。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
此外,需要说明的是,本说明书中所描述的具体实施例,其零、部件的形状、所取名称等可以不同。凡依本申请专利构思所述的构造、特征及原理所做的等效或简单变化,均包括于本申请专利的保护范围内。本申请所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,只要不偏离本申请的结构或者超越本权利要求书所定义的范围,均应属于本申请的保护范围。
Claims (9)
1.一种提高仿真效率的仿真实现方法,其特征在于,包括以下步骤:
构建神经网络编译器,用于接收量化集图片、多个不同类型的神经网络模型以及万人测试集,搭建所述神经网络编译器的环境,安装所述神经网络编译器;
所述神经网络编译器进行精度验证后,对所述神经网络模型逐层进行仿真;
所述量化集图片通过所述神经网络编译器对所述神经网络模型进行量化生成可执行文件,所述万人测试集通过所述神经网络编译器生成第一输入数据、第一定点特征文件和浮点特征文件;
对比所述第一定点特征文件和所述浮点特征文件,输出用于统计所述神经网络模型的精度表格;
若所述精度表格的统计结果符合预设的精度范围,则读取所述可执行文件和所述第一输入数据进行所述神经网络模型的仿真;
其中,预设所述神经网络模型的数量,设置初始的循环次数为0,判断循环次数是否符合预设的所述神经网络模型的数量;
若循环次数不符合预设的所述神经网络模型的数量,则所述量化集图片通过所述神经网络编译器对所述神经网络模型进行量化生成所述可执行文件,所述万人测试集通过所述神经网络编译器生成所述第一输入数据、所述第一定点特征文件和所述浮点特征文件;
若循环次数符合预设的所述神经网络模型的数量,则结束流程;
其中,量化集图片为不同类型的神经网络模型以及不同场景下采集的图片,万人测试集为图片集合。
2.如权利要求1所述的一种提高仿真效率的仿真实现方法,其特征在于,还包括步骤:
测试所述神经网络编译器是否安装成功;
其中,所述神经网络编译器的搭建环境设置为与仿真***相同的操作***。
3.如权利要求1所述的一种提高仿真效率的仿真实现方法,其特征在于,所述量化集图片通过所述神经网络编译器对所述神经网络模型进行量化生成可执行文件,具体包括以下步骤:
准备不同类型的神经网络模型以及不同场景下的量化集图片;
运行所述神经网络编译器,根据所述量化集图片对所述神经网络模型进行量化生成所述可执行文件;
其中,所述可执行文件包括神经网络名标识、输入层的层标识、中间层的层标识、输出层的层标识、量化后的权重值、量化后的偏移值、层操作名、层参数信息、层关联信息和层内存信息。
4.如权利要求1所述的一种提高仿真效率的仿真实现方法,其特征在于,所述万人测试集通过所述神经网络编译器生成第一输入数据、第一定点特征文件和浮点特征文件,具体包括以下步骤:
根据不同的所述神经网络模型准备不同的万人测试集;
所述万人测试集通过缩放函数生成网络分辨率大小的第一输入数据,对所述万人测试集进行仿真生成第一定点特征文件和浮点特征文件。
5.如权利要求1所述的一种提高仿真效率的仿真实现方法,其特征在于,对比所述第一定点特征文件和所述浮点特征文件,输出用于统计所述神经网络模型的精度表格,具体包括以下步骤:
所述浮点特征文件包含第一浮点特征数据,将所述第一定点特征文件中的定点特征数据转成换浮点特征数据,生成第二浮点特征数据;
对比所述第一浮点特征数据和所述第二浮点特征数据的相似度,若相似度在预设的变量内,则满足精度需求;若相似度不在预设的变量内,则不满足精度需求;
将所述第一浮点特征数据和所述第二浮点特征数据的相似度统计结果以表格的形式输出。
6.如权利要求1所述的一种提高仿真效率的仿真实现方法,其特征在于,若所述精度表格的统计结果符合预设的精度范围,则读取所述可执行文件和所述第一输入数据进行所述神经网络模型的仿真,具体包括以下步骤:
对所述精度表格进行计数,计数的统计结果需符合预设的精度范围;
读取所述可执行文件,根据所述可执行文件对硬件进行配置,读取所述第一输入数据,根据所述第一输入数据启动对所述神经网络模型的仿真,生成第二定点特征文件;
对比所述第一定点特征文件和所述第二定点特征文件,若不相同,则保存所述第二定点特征文件中的错误数据。
7.如权利要求1所述的一种提高仿真效率的仿真实现方法,其特征在于,还包括步骤:
建立第一文件夹,在第一文件夹下自动生成第一主文件夹,所述第一主文件夹用于存放所述可执行文件;
在第一文件夹下自动生成第一副文件夹,所述第一副文件夹用于存放所述第一定点特征文件;
在第一文件夹下自动生成输入数据文件夹,所述输入数据文件夹用于存放所述第一输入数据。
8.如权利要求3所述的一种提高仿真效率的仿真实现方法,其特征在于,准备不同类型的神经网络模型和量化集图片,具体包括以下步骤:
建立第二文件夹,在第二文件夹下生成第二主文件夹,所述第二主文件夹用于存放所述不同类型的神经网络模型、所述量化集图片和所述浮点特征文件。
9.如权利要求4所述的一种提高仿真效率的仿真实现方法,其特征在于,根据不同的所述神经网络模型准备不同的万人测试集,具体包括以下步骤:
建立第二文件夹,在所述第二文件夹下生成第二主文件夹,在所述第二主文件夹下建立第二副文件夹,所述第二副文件夹用于存放所述万人测试集。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210321357.4A CN114707650B (zh) | 2021-12-31 | 2021-12-31 | 一种提高仿真效率的仿真实现方法 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210321357.4A CN114707650B (zh) | 2021-12-31 | 2021-12-31 | 一种提高仿真效率的仿真实现方法 |
CN202111653883.2A CN114004352B (zh) | 2021-12-31 | 2021-12-31 | 一种仿真实现方法、神经网络编译器以及计算机可读存储介质 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111653883.2A Division CN114004352B (zh) | 2021-12-31 | 2021-12-31 | 一种仿真实现方法、神经网络编译器以及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114707650A CN114707650A (zh) | 2022-07-05 |
CN114707650B true CN114707650B (zh) | 2024-06-14 |
Family
ID=79932421
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210321357.4A Active CN114707650B (zh) | 2021-12-31 | 2021-12-31 | 一种提高仿真效率的仿真实现方法 |
CN202210315323.4A Active CN114676830B (zh) | 2021-12-31 | 2021-12-31 | 一种基于神经网络编译器的仿真实现方法 |
CN202111653883.2A Active CN114004352B (zh) | 2021-12-31 | 2021-12-31 | 一种仿真实现方法、神经网络编译器以及计算机可读存储介质 |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210315323.4A Active CN114676830B (zh) | 2021-12-31 | 2021-12-31 | 一种基于神经网络编译器的仿真实现方法 |
CN202111653883.2A Active CN114004352B (zh) | 2021-12-31 | 2021-12-31 | 一种仿真实现方法、神经网络编译器以及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (3) | CN114707650B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114386588B (zh) * | 2022-03-23 | 2022-07-29 | 杭州雄迈集成电路技术股份有限公司 | 神经网络推理方法和*** |
CN116796674B (zh) * | 2023-08-24 | 2023-11-24 | 上海合见工业软件集团有限公司 | 一种异构硬件仿真方法及*** |
CN117034822B (zh) * | 2023-10-10 | 2023-12-15 | 北京云枢创新软件技术有限公司 | 基于三步式仿真的验证方法、电子设备和介质 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103929210B (zh) * | 2014-04-25 | 2017-01-11 | 重庆邮电大学 | 一种基于遗传算法与神经网络的硬判决译码方法 |
US10643126B2 (en) * | 2016-07-14 | 2020-05-05 | Huawei Technologies Co., Ltd. | Systems, methods and devices for data quantization |
US20190265955A1 (en) * | 2016-07-21 | 2019-08-29 | Ramot At Tel-Aviv University Ltd. | Method and system for comparing sequences |
CN108510067B (zh) * | 2018-04-11 | 2021-11-09 | 西安电子科技大学 | 基于工程化实现的卷积神经网络量化方法 |
CN109716288A (zh) * | 2018-04-17 | 2019-05-03 | 深圳鲲云信息科技有限公司 | 网络模型编译器及相关产品 |
US11645493B2 (en) * | 2018-05-04 | 2023-05-09 | Microsoft Technology Licensing, Llc | Flow for quantized neural networks |
CN109102064B (zh) * | 2018-06-26 | 2020-11-13 | 杭州雄迈集成电路技术股份有限公司 | 一种高精度的神经网络量化压缩方法 |
US11586883B2 (en) * | 2018-12-14 | 2023-02-21 | Microsoft Technology Licensing, Llc | Residual quantization for neural networks |
CN109740302B (zh) * | 2019-04-02 | 2020-01-10 | 深兰人工智能芯片研究院(江苏)有限公司 | 一种神经网络的仿真方法和装置 |
CN113272813B (zh) * | 2019-10-12 | 2023-05-05 | 深圳鲲云信息科技有限公司 | 定制数据流硬件模拟仿真方法、装置、设备及存储介质 |
CN113228056B (zh) * | 2019-10-12 | 2023-12-22 | 深圳鲲云信息科技有限公司 | 运行时硬件模拟仿真方法、装置、设备及存储介质 |
CN110795165A (zh) * | 2019-10-12 | 2020-02-14 | 苏州浪潮智能科技有限公司 | 一种神经网络模型数据的加载方法及相关装置 |
CN110750945B (zh) * | 2019-12-25 | 2020-11-13 | 安徽寒武纪信息科技有限公司 | 一种芯片的仿真方法、装置、仿真芯片以及相关产品 |
CN111178512B (zh) * | 2019-12-31 | 2023-04-18 | 中科南京人工智能创新研究院 | 器件运行神经网络的测试方法及装置 |
CN113326930B (zh) * | 2020-02-29 | 2024-05-03 | 华为技术有限公司 | 数据处理方法、神经网络的训练方法及相关装置、设备 |
CN111401550A (zh) * | 2020-03-10 | 2020-07-10 | 北京迈格威科技有限公司 | 神经网络模型量化方法、装置及电子设备 |
CN111523526A (zh) * | 2020-07-02 | 2020-08-11 | 杭州雄迈集成电路技术股份有限公司 | 一种目标检测方法、计算机设备及可读存储介质 |
CN112232497A (zh) * | 2020-10-12 | 2021-01-15 | 苏州浪潮智能科技有限公司 | 一种编译ai芯片的方法、***、设备及介质 |
CN112446491B (zh) * | 2021-01-20 | 2024-03-15 | 上海齐感电子信息科技有限公司 | 神经网络模型实时自动量化方法及实时自动量化*** |
CN113159276B (zh) * | 2021-03-09 | 2024-04-16 | 北京大学 | 模型优化部署方法、***、设备及存储介质 |
CN113435570B (zh) * | 2021-05-07 | 2024-05-31 | 西安电子科技大学 | 可编程卷积神经网络处理器、方法、设备、介质、终端 |
-
2021
- 2021-12-31 CN CN202210321357.4A patent/CN114707650B/zh active Active
- 2021-12-31 CN CN202210315323.4A patent/CN114676830B/zh active Active
- 2021-12-31 CN CN202111653883.2A patent/CN114004352B/zh active Active
Non-Patent Citations (1)
Title |
---|
BP神经网络字符识别***Matlab建模及硬件实现;余菲;赵杰;王静霞;温国忠;宋荣;;深圳职业技术学院学报;20190520(03);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114004352A (zh) | 2022-02-01 |
CN114676830B (zh) | 2024-06-14 |
CN114707650A (zh) | 2022-07-05 |
CN114676830A (zh) | 2022-06-28 |
CN114004352B (zh) | 2022-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114707650B (zh) | 一种提高仿真效率的仿真实现方法 | |
Capotondi et al. | CMix-NN: Mixed low-precision CNN library for memory-constrained edge devices | |
CN111709522B (zh) | 一种基于服务器-嵌入式协同的深度学习目标检测*** | |
CN110515739B (zh) | 深度学习神经网络模型负载计算方法、装置、设备及介质 | |
CN107480789B (zh) | 一种深度学习模型的高效转换方法及装置 | |
CN112287986B (zh) | 一种图像处理方法、装置、设备及可读存储介质 | |
CN112101525A (zh) | 一种通过nas设计神经网络的方法、装置和*** | |
EP3846034B1 (en) | Systems and methods for automated testing using artificial intelligence techniques | |
CN113705775A (zh) | 一种神经网络的剪枝方法、装置、设备及存储介质 | |
US20240161474A1 (en) | Neural Network Inference Acceleration Method, Target Detection Method, Device, and Storage Medium | |
CN114429208A (zh) | 基于残差结构剪枝的模型压缩方法、装置、设备及介质 | |
CN116362325A (zh) | 一种基于模型压缩的电力图像识别模型轻量化应用方法 | |
CN116450486A (zh) | 多元异构计算***内节点的建模方法、装置、设备及介质 | |
CN115640851A (zh) | 一种适用于测试仪器的神经网络高效推理方法 | |
Zhong et al. | Reduced-order digital twin and latent data assimilation for global wildfire prediction | |
CN114970357A (zh) | 节能效果评价方法、***、装置及存储介质 | |
CN110807428A (zh) | 煤类样品的识别方法、装置、服务器及存储介质 | |
CN117196000A (zh) | 一种容器化部署的边缘侧模型推理加速方法 | |
US20220058530A1 (en) | Method and device for optimizing deep learning model conversion, and storage medium | |
CN113554097B (zh) | 模型量化方法、装置、电子设备和存储介质 | |
Anuradha et al. | Efficient workload characterization technique for heterogeneous processors | |
CN117435870B (zh) | 一种负荷数据实时填充方法、***、设备和介质 | |
CN116561696B (zh) | 基于多维度的用户可调节负荷快速聚合方法及其*** | |
CN115146596B (zh) | 召回文本的生成方法、装置、电子设备及存储介质 | |
US20220414457A1 (en) | Selective data structure encoding for deep neural network training |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Country or region after: China Address after: 311400 4th floor, building 9, Yinhu innovation center, No.9 Fuxian Road, Yinhu street, Fuyang District, Hangzhou City, Zhejiang Province Applicant after: Zhejiang Xinmai Microelectronics Co.,Ltd. Address before: 311400 4th floor, building 9, Yinhu innovation center, No.9 Fuxian Road, Yinhu street, Fuyang District, Hangzhou City, Zhejiang Province Applicant before: Hangzhou xiongmai integrated circuit technology Co.,Ltd. Country or region before: China |
|
GR01 | Patent grant | ||
GR01 | Patent grant |