一种神经网络的仿真方法和装置制造方法及图纸

技术编号:21090394 阅读:33 留言:0更新日期:2019-05-11 10:15
本发明专利技术公开了一种神经网络的仿真方法和装置,现有用于FPGA的神经网络模型的仿真验证系统,在进行仿真时,无法自动获取待仿真层数据的存储路径,因此无法完成多层连续仿真验证,效率低下的问题。本发明专利技术实施例根据预先定义的用于存放隐含层数据的公共路径和当前待仿真层的层标识生成当前待仿真层数据的存放路径,之后根据从生成的存放路径对应的文件中获取的数据进行针对当前层的仿真,隐含层可能包含多层,在进行仿真时,不需要单独设置各隐含层数据的保存路径,通过本发明专利技术实施例可以自动生成当前待仿真层数据的存放路径,实现了多层的连续仿真,节省了每层单独建立仿真的时间,简化了仿真操作流程,提高了仿真效率。

A Simulation Method and Device of Neural Network

【技术实现步骤摘要】
一种神经网络的仿真方法和装置
本专利技术涉及电子
,特别涉及一种神经网络的仿真方法和装置。
技术介绍
近年来,深度学习技术得到了飞速的发展,在解决高级抽象认知问题,例如图像识别、语音识别、自然语言理解、天气预测、基因表达、内容推荐和智能机器人等领域得到了广泛应用,成为学术界和工业界的研究热点。例如,通过GPU(GraphicsProcessingUnit,图形处理器)中训练好的神经网络模型在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上进行图像运算处理。通过将计算机中或其他处理器上已训练好的模型移植到芯片上,实现芯片级的集成,以实现更广泛地应用,比如将GPU中的神经网络模型移植到FPGA(Field-ProgrammableGateArray,现场可编程门阵列)上,以实现车载等设备的移动便携式安装。比如:FPGA使用的编程语言为Verilog(HDL是一种硬件描述语言),GPU使用的编程语言为Python(一种计算机程序设计语言),由于FPGA使用的编程语言与GPU不同,无法直接将代码移植到FPGA中,需要使用Verilog语言按照Python语言构建的神经网络模型重新编程,因此可能会存在误差,因此需要对FPGA中构建的神经网络模型进行仿真验证,以证明FPGA与GPU中的神经网络模型中各隐含层的输出结果是否完全或近似相同。现有,用于FPGA的神经网络模型的仿真系统,每一隐含层需要单独建立仿真过程,比如,对第一层进行仿真前,需要预先定义第一层仿真所需的数据文件的保存路径,在仿真时,根据该预先定义的保存路径获取数据,进行第一层的仿真;按照仿真顺序,假如下一个待仿真层为第二层,则需要再次单独定义第二层数据文件的保存路径,以从该保存路径中获取第二层仿真所需的数据,以此类推,但是,每一层都需要单独建立仿真过程,耗费时间较长,无法实现连续仿真。综上所述,现有用于FPGA语言的神经网络模型仿真验证系统,进行仿真时,无法自动获取待仿真层数据的存储路径,因此无法完成多层连续仿真验证,效率低下。
技术实现思路
本专利技术提供一种神经网络的仿真方法和装置,用以解决现有用于FPGA的神经网络模型的仿真验证系统,进行仿真时,无法自动获取数据源存储路径,因此无法完成多层连续仿真验证,效率低下的问题。第一方面,本专利技术实施例提供的一种神经网络的仿真方法包括:根据用于存放神经网络模型中部分或全部隐含层数据的公共路径与当前待仿真的隐含层的层标识生成当前待仿真的隐含层的数据存放路径;根据从生成的所述数据存放路径对应的文件中获取的数据,进行针对所述当前待仿真的隐含层的仿真。上述方法,根据预先定义的用于存放隐含层数据的公共路径和当前待仿真层的层标识生成当前层数据的存放路径,之后根据生成的存放路径对应的文件中获取的数据进行针对当前层的仿真,隐含层可能包含多层,在进行仿真时,不需要单独设置各隐含层数据的保存路径,通过本专利技术实施例可以自动生成当前待仿真层数据的存放路径,实现了多层的连续仿真,节省了每层单独建立仿真的时间,简化了仿真操作流程,提高了仿真效率。在一种可选的实施方式中,所述根据用于存放神经网络模型中部分或全部待仿真的隐含层数据的公共路径与当前待仿真的隐含层的层标识生成当前待仿真的隐含层的数据存放路径之前,还包括:判断已仿真的隐含层的层数是否未超过设定的目标仿真层数目;如果是,则根据目标仿真层的层标识和仿真顺序确定当前待仿真的隐含层的层标识;否则,结束仿真。上述方法,通过判断若存在待仿真的目标层,则根据上述方式生成该隐含层数据的存放路径,否则确定目标仿真层已仿真完成,退出仿真。避免浪费生成数据的存放路径的时间,提高仿真效率。在一种可选的实施方式中,所述根据用于存放神经网络模型中部分或全部待仿真的隐含层数据的公共路径与当前待仿真的隐含层的层标识生成当前待仿真的隐含层的数据存放路径,包括:将所述当前待仿真的隐含层的层标识对应的整型数据转换为字符型数据;通过调用动态路径生成函数,将所述公共路径与所述当前待仿真的隐含层的层标识对应的字符型数据拼接生成所述当前待仿真的隐含层的数据存放路径。上述方法,隐含层可能包含多层,在进行仿真时,不需要单独设置各隐含层数据的保存路径,可以自动生成当前待仿真层数据的存放路径,实现了多层的连续仿真,简化了仿真操作流程,提高了仿真效率。在一种可选的实施方式中,所述根据从所述当前待仿真的隐含层的数据存放路径对应的文件中获取的数据进行针对所述当前待仿真的隐含层的仿真,包括:将配置参数动态数组中的配置参数、将权重参数动态数组中的权重参数、将偏置参数动态数组中的偏置参数导入仿真模型;其中,所述配置参数动态数组是根据所述对应的文件中的配置参数文件中获取的配置参数文件行数生成的;所述权重参数动态数组是根据从所述对应的文件中的权重参数文件中获取的权重参数文件行数生成的;所述偏置参数动态数组是根据从所述对应的文件中的偏置参数中获取的偏置参数文件行数生成的。上述方法,根据生成当前待仿真层数据的存放路径对应的文件获取用于仿真的数据,实现当前待仿真层配置参数、权重参数和偏置参数的自动导入,节省了人工手动配置上述参数的时间,简化了仿真操作流程,提高了仿真效率。在一种可选的实施方式中,所述根据用于存放神经网络模型中部分或全部隐含层数据的公共路径与当前待仿真的隐含层的层标识生成当前待仿真的隐含层的数据存放路径之后,根据从生成的所述数据存放路径对应的文件中获取的数据,进行针对所述当前待仿真的隐含层的仿真之前,还包括:将当前待仿真的隐含层的仿真数据存放到所述当前待仿真的隐含层的仿真数据存放路径中,其中所述当前待仿真的隐含层的仿真数据存放路径是根据预设的用于存放隐含层仿真数据的公共存放路径与所述当前待仿真的隐含层的层标识确定的。第二方面,本专利技术实施例还提供了一种用于FPGA的神经网络仿真的装置,该装置包括:处理器以及存储器,其中,所述存储器存储有程序代码,当所述存储器存储的一个或多个计算机程序被所述处理器执行时,使得所述终端执行下列过程:根据用于存放神经网络模型中部分或全部隐含层数据的公共路径与当前待仿真的隐含层的层标识生成当前待仿真的隐含层的数据存放路径;根据从生成的所述数据存放路径对应的文件中获取的数据,进行针对所述当前待仿真的隐含层的仿真。在一种可能的实现方式中,所述处理器还用于:判断已仿真的隐含层的层数是否未超过设定的目标仿真层数目;如果是,则根据目标仿真层的层标识和仿真顺序确定当前待仿真的隐含层的层标识;否则,结束仿真。在一种可能的实现方式中,所述处理器具体用于:将所述当前待仿真的隐含层的层标识对应的整型数据转换为字符型数据;通过调用动态路径生成函数,将所述公共路径与所述当前待仿真的隐含层的层标识对应的字符型数据拼接生成所述当前待仿真的隐含层的数据存放路径。在一种可能的实现方式中,所述处理器具体用于:将配置参数动态数组中的配置参数、将权重参数动态数组中的权重参数、将偏置参数动态数组中的偏置参数导入仿真模型;其中,所述配置参数动态数组是根据所述对应的文件中的配置参数文件中获取的配置参数文件行数生成的;所述权重参数动态数组是根据从所述对应的文件中的权重参数文件中获取的权重参数文件行数生成的;所述偏置参数动态数组是根据从所本文档来自技高网
...

【技术保护点】
1.一种神经网络的仿真方法,其特征在于,该方法包括:根据用于存放神经网络模型中部分或全部隐含层数据的公共路径与当前待仿真的隐含层的层标识生成当前待仿真的隐含层的数据存放路径;根据从生成的所述数据存放路径对应的文件中获取的数据,进行针对所述当前待仿真的隐含层的仿真。

【技术特征摘要】
1.一种神经网络的仿真方法,其特征在于,该方法包括:根据用于存放神经网络模型中部分或全部隐含层数据的公共路径与当前待仿真的隐含层的层标识生成当前待仿真的隐含层的数据存放路径;根据从生成的所述数据存放路径对应的文件中获取的数据,进行针对所述当前待仿真的隐含层的仿真。2.如权利要求1所述的神经网络的仿真方法,其特征在于,所述根据用于存放神经网络模型中部分或全部待仿真的隐含层数据的公共路径与当前待仿真的隐含层的层标识生成当前待仿真的隐含层的数据存放路径之前,还包括:判断已仿真的隐含层的层数是否未超过设定的目标仿真层数目;如果是,则根据目标仿真层的层标识和仿真顺序确定当前待仿真的隐含层的层标识;否则,结束仿真。3.如权利要求1所述的神经网络的仿真方法,其特征在于,所述根据用于存放神经网络模型中部分或全部待仿真的隐含层数据的公共路径与当前待仿真的隐含层的层标识生成当前待仿真的隐含层的数据存放路径,包括:将所述当前待仿真的隐含层的层标识对应的整型数据转换为字符型数据;通过调用动态路径生成函数,将所述公共路径与所述当前待仿真的隐含层的层标识对应的字符型数据拼接生成所述当前待仿真的隐含层的数据存放路径。4.如权利要求1所述的神经网络的仿真方法,其特征在于,所述根据从所述当前待仿真的隐含层的数据存放路径对应的文件中获取的数据进行针对所述当前待仿真的隐含层的仿真,包括:将配置参数动态数组中的配置参数、将权重参数动态数组中的权重参数、将偏置参数动态数组中的偏置参数导入仿真模型;其中,所述配置参数动态数组是根据从所述对应的文件中的配置参数文件中获取的配置参数文件行数生成的;所述权重参数动态数组是根据从所述对应的文件中的权重参数文件中获取的权重参数文件行数生成的;所述偏置参数动态数组是根据从所述对应的文件中的偏置参数中获取的偏置参数文件行数生成的。5.如权利要求1所述的神经网络的仿真方法,其特征在于,所述根据用于存放神经网络模型中部分或全部隐含层数据的公共路径与当前待仿真的隐含层的层标识生成当前待仿真的隐含层的数据存放路径之后,根据从生成的所述数据存放路径对应的文件中获取的数据,进行针对所述当前待仿真的隐含层的仿真之前,还包括:将...

【专利技术属性】
技术研发人员:陈海波
申请(专利权)人:深兰人工智能芯片研究院江苏有限公司
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1