CN114004352A - 一种仿真实现方法、神经网络编译器以及计算机可读存储介质 - Google Patents

一种仿真实现方法、神经网络编译器以及计算机可读存储介质 Download PDF

Info

Publication number
CN114004352A
CN114004352A CN202111653883.2A CN202111653883A CN114004352A CN 114004352 A CN114004352 A CN 114004352A CN 202111653883 A CN202111653883 A CN 202111653883A CN 114004352 A CN114004352 A CN 114004352A
Authority
CN
China
Prior art keywords
neural network
layer
file
floating point
compiler
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.)
Granted
Application number
CN202111653883.2A
Other languages
English (en)
Other versions
CN114004352B (zh
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.)
Hangzhou Xiongmai Integrated Circuit Technology Co Ltd
Original Assignee
Hangzhou Xiongmai Integrated Circuit Technology Co Ltd
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 Hangzhou Xiongmai Integrated Circuit Technology Co Ltd filed Critical Hangzhou Xiongmai Integrated Circuit Technology Co Ltd
Priority to CN202210315323.4A priority Critical patent/CN114676830A/zh
Priority to CN202210321357.4A priority patent/CN114707650A/zh
Priority to CN202111653883.2A priority patent/CN114004352B/zh
Publication of CN114004352A publication Critical patent/CN114004352A/zh
Application granted granted Critical
Publication of CN114004352B publication Critical patent/CN114004352B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/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
    • G06N3/065Analogue means

Abstract

本申请公开了一种仿真实现方法、神经网络编译器以及计算机可读存储介质,涉及深度学习技术领域,其中,仿真实现方法包括以下步骤:量化集图片通过神经网络编译器对神经网络模型进行量化生成可执行文件,万人测试集通过神经网络编译器生成第一输入数据、第一定点特征文件和浮点特征文件,若精度表格的统计结果符合预设的精度范围,则读取可执行文件和第一输入数据进行神经网络模型的仿真。有益效果在于实现多个不同类型的神经网络模型的批量仿真,确保移植到芯片或FPGA的正确性,针对不同类型的神经网络模型逐层进行仿真,覆盖了更多的仿真验证点,防止芯片流片的风险,同时用于统计神经网络模型的精度表格进行了全面的精度验证。

Description

一种仿真实现方法、神经网络编译器以及计算机可读存储 介质
技术领域
本申请属于深度学习技术领域,更具体地说,本申请涉及一种仿真实现方法、神经网络编译器以及计算机可读存储介质。
背景技术
随着互联网技术的发展,搜集到的海量数据为深度学习训练提供足够多的场景,以卷积神经网络为主的智能算法的发展依托于海量数据,在图像分类以及物体识别等领域,智能算法的精度已经超过了人类的识别精度。
神经网络算法想要在安防领域落地,需要将服务器上训练好的算法模型,解析成嵌入式芯片可识别的计算机语言,以方便安防摄像头的安装监控。
将卷积神经网络算法在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格式是一种压缩文件的格式,方便在操作系统下安装测试。
量化集图片通过神经网络编译器对神经网络模型进行量化生成可执行文件,具体包括以下步骤:准备不同类型的神经网络模型以及不同场景下的量化集图片。
运行神经网络编译器,根据量化集图片对神经网络模型进行量化生成可执行文件。其中,可执行文件包括神经网络名标识、输入层的层标识、中间层的层标识、输出层的层标识、量化后的权重值、量化后的偏移值、层操作名、层参数信息、层关联信息和层内存信息。
具体的,神经网络编译器的网络解析模组逐层解析并重构原始神经网络模型的结构,根据重构后的神经网络模型生成偏移值、转换值以及将浮点型的权重值转化为定点型的权重值。网络合并模组和网络量化模组同时运行,合并神经网络模型中卷积层、池化层和激活层中的流水操作指令。网络存储模组将网络解析模组、网络量化模组和网络合并模组运行量化后的数据生成可执行文件。
生成偏移值的公式如下:
公式一:
Figure 331692DEST_PATH_IMAGE001
其中,
Figure 41022DEST_PATH_IMAGE002
表示偏移值,
Figure 194923DEST_PATH_IMAGE003
表述浮点型的最大权重值,
Figure 280691DEST_PATH_IMAGE004
表示浮点型的最小权重值,bw表示转换的位宽,在本实施例中,当前支持12bit的位宽。
生成转换值的公式如下:
公式二:
Figure 570858DEST_PATH_IMAGE005
其中,
Figure 716668DEST_PATH_IMAGE006
表示转换值,max属于系统库的内置函数表示取最大值,bw表示转换的位宽,log2表示系统库的内置函数,
Figure 357865DEST_PATH_IMAGE002
表示偏移值,ceil属于系统库的内置函数表示向上取整。
将浮点型的权重值转化为定点型的权重值,浮点特征数据转定点特征数据的公式表示如下:
公式三:
Figure 981745DEST_PATH_IMAGE007
其中,X表示定点特征数据,在本实施例中可以为定点型的权重值,
Figure 657577DEST_PATH_IMAGE008
表示浮点特征数据,在本实施例中可以为浮点型的权重值,round表示四舍五入的系统库内置函数,
Figure 318496DEST_PATH_IMAGE006
表示转换值,
Figure 181410DEST_PATH_IMAGE002
表示偏移值。
具体的,层操作名至少包括卷积、反卷积、池化、全连接、裁解、连接、点加、点乘、归一化和激活层操作中的一项。层参数信息至少包括卷积核尺寸、卷积核跨度、分组、填充值、是否带激活层、量化后的权重值和量化后的偏移值中的一项。层关联信息至少包括当前层的输入层操作名、层参数信息、当前层的输出层操作名和层参数信息中的一项。层内存信息至少包括当前层的内存大小以及是否复用其他层内存中的一项。
具体的,不同类型的神经网络模型包括检测网络、识别网络以及分类网络等,不同场景下的量化集图片的数量至少包括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,用于存放对万人测试集进行仿真时中间层和输出层生成的第一定点特征文件,以方便仿真核对数据的正确性,采用十六进制格式,每个数据一行排列方式。
生成的不同数据通过预存的路径自动存储在不同的文件夹下,为实现多种类型的神经网络模型的仿真提供相应的数据,简化仿真流程以及加快仿真效率。
还包括步骤:预设可执行文件的数量,判断第一主文件夹下的可执行文件数量是否超过预设可执行文件的数量。
若第一主文件夹下的可执行文件数量未超过预设可执行文件的数量,则神经网络编译器对万人测试集进行仿真生成第一定点特征文件。
若第一主文件夹下的可执行文件数量超过预设可执行文件的数量,则结束神经网络编译器对万人测试集进行仿真的流程。
通过判断第一主文件夹下的可执行文件数量,确定万人测试集是否已经仿真完成,若仿真完成,则结束仿真流程,提高仿真效率。
对比第一定点特征文件和浮点特征文件,输出用于统计神经网络模型的精度表格,具体包括以下步骤:
浮点特征文件包含第一浮点特征数据,将第一定点特征文件中的定点特征数据转成换浮点特征数据,生成第二浮点特征数据;
对比第一浮点特征数据和第二浮点特征数据的相似度,若相似度在预设的变量内,则满足精度需求;若相似度不在预设的变量内,则不满足精度需求;
将第一浮点特征数据和第二浮点特征数据的相似度统计结果以表格的形式输出。
具体的,将第一定点特征文件中的定点特征数据通过转换公式转成换浮点特征数据,转换公式如下:
公式四:
Figure 337542DEST_PATH_IMAGE009
其中,
Figure 602301DEST_PATH_IMAGE010
表示浮点特征数据,在本实施例中可以为第二浮点特征数据,X表示定点特征数据,在本实施例中可以为第一定点特征文件中的定点特征数据,
Figure 89914DEST_PATH_IMAGE002
表示偏移值,
Figure 440124DEST_PATH_IMAGE006
表示转换值。
具体的,对比第一浮点特征数据和第二浮点特征数据的相似度,相似度距离公式如下:
公式五:
Figure 671385DEST_PATH_IMAGE011
其中,n表示浮点特征数据的总个数,
Figure 56230DEST_PATH_IMAGE012
表示第一浮点特征数据,
Figure 449165DEST_PATH_IMAGE013
表示第二浮点特征数据,即公式四中
Figure 286671DEST_PATH_IMAGE014
的值。
Figure 790465DEST_PATH_IMAGE015
表示距离的相似度,越接近1表明精度越高。
在本实施例中,通过对神经网络模型相对应的万人测试集进行测试,预设的变量设置为0.8的相似度距离,对比第一浮点特征数据和第二浮点特征数据的相似度,即统计万人测试集中每张图片的相似度,当相似度距离大于或等于0.8时表明满足精度需求并进行计数,统计每个神经网络模型的计数数据在万人测试集中的占比,输出用于统计神经网络模型的精度表格。可以直观的看到精度表格的统计结果,查看硬件设计的需求是否满足精度要求。
若精度表格的统计结果符合预设的精度范围,则读取可执行文件和第一输入数据进行神经网络模型的仿真,具体包括以下步骤:
对精度表格进行计数,计数的统计结果需符合预设的精度范围。读取可执行文件,根据可执行文件对硬件进行配置,读取第一输入数据,根据第一输入数据启动对神经网络模型的仿真,生成第二定点特征文件。
对比第一定点特征文件和第二定点特征文件,若不相同,则保存第二定点特征文件中的错误数据。
通过第二定点特征文件中的错误数据方便定位仿真出现的问题,可以提高仿真效率,仿真的覆盖面更加广泛。
实施例2:
本实施例包括一种神经网络编译器,应用于实施例1的仿真实现方法,包括:依次连接的网络解析模组、网络量化模组、网络合并模组、网络存储模组和网络前向执行模组。
网络解析模组,用于接收量化集图片、多个不同类型的神经网络模型以及万人测试集,逐层解析并重构神经网络模型的结构,至少获取神经网络模型的输入层、输出层以及中间层的层操作名、层参数信息和层关联信息中的一种。
具体的,网络解析模组将原始神经网络模型的结构逐层进行解析,至少获取神经网络模型的输入层、输出层以及中间层的层操作名、层参数信息和层关联信息中的一种,解析后重构内部顺序执行的结构,且重新定义内部相关网络层的数据结构,网络层包括卷积层、池化层和激活层,将层执行先后顺序、层操作类型、层操作名、层参数信息以及层关联信息等内容填充到内部相关网络层的数据结构中。
网络量化模组,用于根据重构后的神经网络模型生成偏移值、转换值以及将浮点型的权重值转化为定点型的权重值。
具体的,将存放地址空间的浮点特征数据转换成硬件支持的数据格式,且计算出转换值,减少硬件计算量与乘法器的数量。
网络合并模组,用于合并神经网络模型中卷积层、池化层和激活层的流水操作指令。
具体的,根据减少外部存储器带宽原则,优化卷积层、池化层和激活层内部的流水操作指令,对卷积层、池化层和激活层进行等价变换优化,并对内部数据结构再次优化合并,减少资源消耗,提高执行效率。减少内部存储器与外面存储器的数据交互,从而提高带宽利用率,将处于同一个流水级的层进行合并,主要合并层为卷积层和池化层。
网络存储模组,用于将网络解析模组、网络量化模组和网络合并模组中的数据存储生成可执行文件。
网络前向执行模组,用于万人测试集通过网络前向执行模组生成第一输入数据、第一定点特征文件和浮点特征文件,对比第一定点特征文件和浮点特征文件,输出用于统计神经网络模型的精度表格。
具体的,标准化部分采用开源的深度学习架构执行,以确保正确的对比标准,仿真部分保持网络前向逻辑与硬件执行网络逻辑一致,以确保数据与硬件仿真结果一致性。
相关之处参见实施例1的部分说明即可。
实施例3:
一种计算机可读存储介质,计算机可读存储介质上存储有计算机指令,计算机指令被处理器执行时实现实施例2中方法的步骤。
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
需要说明的是:
说明书中提到的“一个实施例”或“实施例”意指结合实施例描述的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,说明书通篇各个地方出现的短语 “一个实施例”或“实施例”并不一定均指同一个实施例。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
此外,需要说明的是,本说明书中所描述的具体实施例,其零、部件的形状、所取名称等可以不同。凡依本申请专利构思所述的构造、特征及原理所做的等效或简单变化,均包括于本申请专利的保护范围内。本申请所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,只要不偏离本申请的结构或者超越本权利要求书所定义的范围,均应属于本申请的保护范围。

Claims (12)

1.一种仿真实现方法,其特征在于,包括以下步骤:
构建神经网络编译器,用于接收量化集图片、多个不同类型的神经网络模型以及万人测试集,所述神经网络编译器进行精度验证后,对所述神经网络模型逐层进行仿真;
所述量化集图片通过所述神经网络编译器对所述神经网络模型进行量化生成可执行文件,所述万人测试集通过所述神经网络编译器生成第一输入数据、第一定点特征文件和浮点特征文件;
对比所述第一定点特征文件和所述浮点特征文件,输出用于统计所述神经网络模型的精度表格;
若所述精度表格的统计结果符合预设的精度范围,则读取所述可执行文件和所述第一输入数据进行所述神经网络模型的仿真。
2.如权利要求1所述的一种仿真实现方法,其特征在于,还包括步骤:
搭建所述神经网络编译器的环境,安装所述神经网络编译器,测试所述神经网络编译器是否安装成功;
其中,所述神经网络编译器的搭建环境设置为与仿真系统相同的操作系统。
3.如权利要求1所述的一种仿真实现方法,其特征在于,所述量化集图片通过所述神经网络编译器对所述神经网络模型进行量化生成可执行文件,具体包括以下步骤:
准备不同类型的神经网络模型以及不同场景下的量化集图片;
运行所述神经网络编译器,根据所述量化集图片对所述神经网络模型进行量化生成所述可执行文件;
其中,所述可执行文件包括神经网络名标识、输入层的层标识、中间层的层标识、输出层的层标识、量化后的权重值、量化后的偏移值、层操作名、层参数信息、层关联信息和层内存信息。
4.如权利要求1所述的一种仿真实现方法,其特征在于,还包括步骤:
预设所述神经网络模型的数量,设置初始的循环次数为0,判断循环次数是否符合预设的所述神经网络模型的数量;
若循环次数不符合预设的所述神经网络模型的数量,则所述量化集图片通过所述神经网络编译器对所述神经网络模型进行量化生成所述可执行文件,所述万人测试集通过所述神经网络编译器生成所述第一输入数据、所述第一定点特征文件和所述浮点特征文件;
若循环次数符合预设的所述神经网络模型的数量,则结束流程。
5.如权利要求1所述的一种仿真实现方法,其特征在于,所述万人测试集通过所述神经网络编译器生成第一输入数据、第一定点特征文件和浮点特征文件,具体包括以下步骤:
根据不同的所述神经网络模型准备不同的万人测试集;
所述万人测试集通过缩放函数生成网络分辨率大小的第一输入数据,对所述万人测试集进行仿真生成第一定点特征文件和浮点特征文件。
6.如权利要求1所述的一种仿真实现方法,其特征在于,对比所述第一定点特征文件和所述浮点特征文件,输出用于统计所述神经网络模型的精度表格,具体包括以下步骤:
所述浮点特征文件包含第一浮点特征数据,将所述第一定点特征文件中的定点特征数据转成换浮点特征数据,生成第二浮点特征数据;
对比所述第一浮点特征数据和所述第二浮点特征数据的相似度,若相似度在预设的变量内,则满足精度需求;若相似度不在预设的变量内,则不满足精度需求;
将所述第一浮点特征数据和所述第二浮点特征数据的相似度统计结果以表格的形式输出。
7.如权利要求1所述的一种仿真实现方法,其特征在于,若所述精度表格的统计结果符合预设的精度范围,则读取所述可执行文件和所述第一输入数据进行所述神经网络模型的仿真,具体包括以下步骤:
对所述精度表格进行计数,计数的统计结果需符合预设的精度范围;
读取所述可执行文件,根据所述可执行文件对硬件进行配置,读取所述第一输入数据,根据所述第一输入数据启动对所述神经网络模型的仿真,生成第二定点特征文件;
对比所述第一定点特征文件和所述第二定点特征文件,若不相同,则保存所述第二定点特征文件中的错误数据。
8.如权利要求1所述的一种仿真实现方法,其特征在于,还包括步骤:
建立第一文件夹,在第一文件夹下自动生成第一主文件夹,所述第一主文件夹用于存放所述可执行文件;
在第一文件夹下自动生成第一副文件夹,所述第一副文件夹用于存放所述第一定点特征文件;
在第一文件夹下自动生成输入数据文件夹,所述输入数据文件夹用于存放所述第一输入数据。
9.如权利要求3所述的一种仿真实现方法,其特征在于,准备不同类型的神经网络模型和量化集图片,具体包括以下步骤:
建立第二文件夹,在第二文件夹下生成第二主文件夹,所述第二主文件夹用于存放所述不同类型的神经网络模型、所述量化集图片和所述浮点特征文件。
10.如权利要求5所述的一种仿真实现方法,其特征在于,根据不同的所述神经网络模型准备不同的万人测试集,具体包括以下步骤:
在所述第二主文件夹下建立第二副文件夹,所述第二副文件夹用于存放所述万人测试集。
11.一种神经网络编译器,其特征在于,应用于如权利要求1所述的仿真实现方法,包括:依次连接的网络解析模组、网络量化模组、网络合并模组、网络存储模组和网络前向执行模组;
网络解析模组,用于接收量化集图片、多个不同类型的神经网络模型以及万人测试集,逐层解析并重构神经网络模型的结构,至少获取所述神经网络模型的输入层、输出层以及中间层的层操作名、层参数信息和层关联信息中的一种;
网络量化模组,用于根据重构后的神经网络模型的结构生成偏移值、转换值以及将浮点型的权重值转化为定点型的权重值;
网络合并模组,用于合并所述神经网络模型中卷积层、池化层和激活层的流水操作指令;
网络存储模组,用于将所述网络解析模组、所述网络量化模组和所述网络合并模组中的数据存储生成可执行文件;
网络前向执行模组,用于所述万人测试集通过所述网络前向执行模组生成所述第一输入数据、所述第一定点特征文件和所述浮点特征文件,对比所述第一定点特征文件和所述浮点特征文件,输出用于统计所述神经网络模型的精度表格。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令被处理器执行时实现如权利要求1至10中任一项所述的仿真实现方法的步骤。
CN202111653883.2A 2021-12-31 2021-12-31 一种仿真实现方法、神经网络编译器以及计算机可读存储介质 Active CN114004352B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202210315323.4A CN114676830A (zh) 2021-12-31 2021-12-31 一种基于神经网络编译器的仿真实现方法
CN202210321357.4A CN114707650A (zh) 2021-12-31 2021-12-31 一种提高仿真效率的仿真实现方法
CN202111653883.2A CN114004352B (zh) 2021-12-31 2021-12-31 一种仿真实现方法、神经网络编译器以及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111653883.2A CN114004352B (zh) 2021-12-31 2021-12-31 一种仿真实现方法、神经网络编译器以及计算机可读存储介质

Related Child Applications (2)

Application Number Title Priority Date Filing Date
CN202210315323.4A Division CN114676830A (zh) 2021-12-31 2021-12-31 一种基于神经网络编译器的仿真实现方法
CN202210321357.4A Division CN114707650A (zh) 2021-12-31 2021-12-31 一种提高仿真效率的仿真实现方法

Publications (2)

Publication Number Publication Date
CN114004352A true CN114004352A (zh) 2022-02-01
CN114004352B CN114004352B (zh) 2022-04-26

Family

ID=79932421

Family Applications (3)

Application Number Title Priority Date Filing Date
CN202210315323.4A Pending CN114676830A (zh) 2021-12-31 2021-12-31 一种基于神经网络编译器的仿真实现方法
CN202210321357.4A Pending CN114707650A (zh) 2021-12-31 2021-12-31 一种提高仿真效率的仿真实现方法
CN202111653883.2A Active CN114004352B (zh) 2021-12-31 2021-12-31 一种仿真实现方法、神经网络编译器以及计算机可读存储介质

Family Applications Before (2)

Application Number Title Priority Date Filing Date
CN202210315323.4A Pending CN114676830A (zh) 2021-12-31 2021-12-31 一种基于神经网络编译器的仿真实现方法
CN202210321357.4A Pending CN114707650A (zh) 2021-12-31 2021-12-31 一种提高仿真效率的仿真实现方法

Country Status (1)

Country Link
CN (3) CN114676830A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114386588A (zh) * 2022-03-23 2022-04-22 杭州雄迈集成电路技术股份有限公司 神经网络量化方法和装置、神经网络推理方法和系统
CN116796674A (zh) * 2023-08-24 2023-09-22 上海合见工业软件集团有限公司 一种异构硬件仿真方法及系统
CN117034822A (zh) * 2023-10-10 2023-11-10 北京云枢创新软件技术有限公司 基于三步式仿真的验证方法、电子设备和介质

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103929210A (zh) * 2014-04-25 2014-07-16 重庆邮电大学 一种基于遗传算法与神经网络的硬判决译码方法
US20180018560A1 (en) * 2016-07-14 2018-01-18 Manuel SALDANA Systems, methods and devices for data quantization
CN108510067A (zh) * 2018-04-11 2018-09-07 西安电子科技大学 基于工程化实现的卷积神经网络量化方法
CN109102064A (zh) * 2018-06-26 2018-12-28 杭州雄迈集成电路技术有限公司 一种高精度的神经网络量化压缩方法
CN109740302A (zh) * 2019-04-02 2019-05-10 深兰人工智能芯片研究院(江苏)有限公司 一种神经网络的仿真方法和装置
CN110750945A (zh) * 2019-12-25 2020-02-04 中科寒武纪科技股份有限公司 一种芯片的仿真方法、装置、仿真芯片以及相关产品
CN110795165A (zh) * 2019-10-12 2020-02-14 苏州浪潮智能科技有限公司 一种神经网络模型数据的加载方法及相关装置
CN111178512A (zh) * 2019-12-31 2020-05-19 中国科学院自动化研究所南京人工智能芯片创新研究院 器件运行神经网络的测试方法及装置
CN111401550A (zh) * 2020-03-10 2020-07-10 北京迈格威科技有限公司 神经网络模型量化方法、装置及电子设备
CN112232497A (zh) * 2020-10-12 2021-01-15 苏州浪潮智能科技有限公司 一种编译ai芯片的方法、系统、设备及介质
CN112446491A (zh) * 2021-01-20 2021-03-05 上海齐感电子信息科技有限公司 神经网络模型实时自动量化方法及实时自动量化系统
CN113159276A (zh) * 2021-03-09 2021-07-23 北京大学 模型优化部署方法、系统、设备及存储介质
CN113228056A (zh) * 2019-10-12 2021-08-06 深圳鲲云信息科技有限公司 运行时硬件模拟仿真方法、装置、设备及存储介质
CN113326930A (zh) * 2020-02-29 2021-08-31 华为技术有限公司 数据处理方法、神经网络的训练方法及相关装置、设备
CN113435570A (zh) * 2021-05-07 2021-09-24 西安电子科技大学 可编程卷积神经网络处理器、方法、设备、介质、终端

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103929210A (zh) * 2014-04-25 2014-07-16 重庆邮电大学 一种基于遗传算法与神经网络的硬判决译码方法
US20180018560A1 (en) * 2016-07-14 2018-01-18 Manuel SALDANA Systems, methods and devices for data quantization
CN108510067A (zh) * 2018-04-11 2018-09-07 西安电子科技大学 基于工程化实现的卷积神经网络量化方法
CN109102064A (zh) * 2018-06-26 2018-12-28 杭州雄迈集成电路技术有限公司 一种高精度的神经网络量化压缩方法
CN109740302A (zh) * 2019-04-02 2019-05-10 深兰人工智能芯片研究院(江苏)有限公司 一种神经网络的仿真方法和装置
CN110795165A (zh) * 2019-10-12 2020-02-14 苏州浪潮智能科技有限公司 一种神经网络模型数据的加载方法及相关装置
CN113228056A (zh) * 2019-10-12 2021-08-06 深圳鲲云信息科技有限公司 运行时硬件模拟仿真方法、装置、设备及存储介质
CN110750945A (zh) * 2019-12-25 2020-02-04 中科寒武纪科技股份有限公司 一种芯片的仿真方法、装置、仿真芯片以及相关产品
CN111178512A (zh) * 2019-12-31 2020-05-19 中国科学院自动化研究所南京人工智能芯片创新研究院 器件运行神经网络的测试方法及装置
CN113326930A (zh) * 2020-02-29 2021-08-31 华为技术有限公司 数据处理方法、神经网络的训练方法及相关装置、设备
CN111401550A (zh) * 2020-03-10 2020-07-10 北京迈格威科技有限公司 神经网络模型量化方法、装置及电子设备
CN112232497A (zh) * 2020-10-12 2021-01-15 苏州浪潮智能科技有限公司 一种编译ai芯片的方法、系统、设备及介质
CN112446491A (zh) * 2021-01-20 2021-03-05 上海齐感电子信息科技有限公司 神经网络模型实时自动量化方法及实时自动量化系统
CN113159276A (zh) * 2021-03-09 2021-07-23 北京大学 模型优化部署方法、系统、设备及存储介质
CN113435570A (zh) * 2021-05-07 2021-09-24 西安电子科技大学 可编程卷积神经网络处理器、方法、设备、介质、终端

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
SHUAI ZHANG等: "《Learning to Binarize Convolutional Neural Networks with Adaptive Neural Encoder》", 《2021 INTERNATIONAL JOINT CONFERENCE ON NEURAL NETWORKS (IJCNN)》 *
卢丽强等: "《面向卷积神经网络的FPGA设计》", 《中国科学:信息科学》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114386588A (zh) * 2022-03-23 2022-04-22 杭州雄迈集成电路技术股份有限公司 神经网络量化方法和装置、神经网络推理方法和系统
CN116796674A (zh) * 2023-08-24 2023-09-22 上海合见工业软件集团有限公司 一种异构硬件仿真方法及系统
CN116796674B (zh) * 2023-08-24 2023-11-24 上海合见工业软件集团有限公司 一种异构硬件仿真方法及系统
CN117034822A (zh) * 2023-10-10 2023-11-10 北京云枢创新软件技术有限公司 基于三步式仿真的验证方法、电子设备和介质
CN117034822B (zh) * 2023-10-10 2023-12-15 北京云枢创新软件技术有限公司 基于三步式仿真的验证方法、电子设备和介质

Also Published As

Publication number Publication date
CN114004352B (zh) 2022-04-26
CN114707650A (zh) 2022-07-05
CN114676830A (zh) 2022-06-28

Similar Documents

Publication Publication Date Title
CN114004352B (zh) 一种仿真实现方法、神经网络编译器以及计算机可读存储介质
US20220283820A1 (en) Data parallelism in distributed training of artificial intelligence models
US11354579B2 (en) Dynamic multi-layer execution for artificial intelligence modeling
US20230289828A1 (en) Data processing method, computer device, and readable storage medium
US20210019151A1 (en) Executing large artificial intelligence models on memory-constrained devices
US8271252B2 (en) Automatic verification of device models
CN113705775A (zh) 一种神经网络的剪枝方法、装置、设备及存储介质
CN110750312A (zh) 硬件资源配置方法、装置、云侧设备和存储介质
CN114548384A (zh) 具有抽象资源约束的脉冲神经网络模型构建方法和装置
US20220358269A1 (en) Simulation execution system, simulation execution method, and computer readable medium
CN110689136A (zh) 一种深度学习模型获得方法、装置、设备及存储介质
CN112465141A (zh) 模型压缩方法、装置、电子设备及介质
CN115640851A (zh) 一种适用于测试仪器的神经网络高效推理方法
CN114429208A (zh) 基于残差结构剪枝的模型压缩方法、装置、设备及介质
CN110807428A (zh) 煤类样品的识别方法、装置、服务器及存储介质
CN113168552A (zh) 人工智能应用开发系统、计算机设备及存储介质
CN113554097B (zh) 模型量化方法、装置、电子设备和存储介质
US20220058530A1 (en) Method and device for optimizing deep learning model conversion, and storage medium
CN115248783A (zh) 软件测试方法、系统、可读存储介质及计算机设备
Anuradha et al. Efficient workload characterization technique for heterogeneous processors
CN115562969B (zh) 神经网络处理器仿真评估方法、系统、电子设备及介质
CN113272813B (zh) 定制数据流硬件模拟仿真方法、装置、设备及存储介质
US20240104363A1 (en) Method and apparatus for the joint optimization of a neural network and dedicated hardware for the neural network
CN117931211A (zh) 模型部署方法、设备、装置、芯片及存储介质
Westby FPGA Acceleration on Multilayer Perceptron (MLP) Neural Network for Handwritten Digit Recognition

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
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: A Simulation Implementation Method, Neural Network Compiler and Computer readable Storage Medium

Effective date of registration: 20221211

Granted publication date: 20220426

Pledgee: Hangzhou Fuyang Sub branch of Zheshang Bank Co.,Ltd.

Pledgor: Hangzhou xiongmai integrated circuit technology Co.,Ltd.

Registration number: Y2022330003571

PE01 Entry into force of the registration of the contract for pledge of patent right