一种caffe框架残差网络配置文件格式转换方法及系统与流程

文档序号:13207561阅读:241来源:国知局
一种caffe框架残差网络配置文件格式转换方法及系统与流程

本发明涉及数据处理技术领域,特别涉及一种caffe(convolutionalarchitectureforfastfeatureembedding,卷积神经网络框架)框架残差网络配置文件格式转换方法及系统。



背景技术:

深度学习作为机器学习的一个分支,是人工智能(ai)中发展迅速的领域之一,可帮助计算机理解大量图像、声音和文本形式的数据。近年来随着caffe等深度学习开源工具趋于成熟,深度学习技术发展迅速,目前,深度学习在人脸识别、语音识别、精准医疗以及无人驾驶等领域正被广泛的应用。2015年,imagenet竞赛上,深度学习残差网络(resnet)取得突破进展,其推出152层的网络结构,top-5的错误率降到3.5%附近,引起了深度学习神经领域的强烈反应,基于caffe等深度学习开源框架研究残差网络成为开发人员研究的热点。

caffe是一个清晰而高效的深度学习框架,基于c++/cuda架构,支持命令行、python和matlab接口;可以在cpu和gpu直接无缝切换,其内部提供了一套基本的编程框架,用以实现gpu并行架构下的深度卷积神经网络、深度学习等算法。基于caffe框架的残差网络,在prototxt文本文件定义其网络模型net,主要是定义了所有的layers(网络层)以及与layer相连的数据流,caffe中仅需一条训练或测试命令,即可根据prototxt文件中定义的网络,完成网络模型的训练或测试。不过,因为深度学习处理大量数据需要大量的计算能力,其本身的发展也面临着众多困境,如深度学习软件扩展性不够高、计算性能不够高、深度学习线上识别能耗大等等问题。

与cpu相比,gpu能够提升深度学习所需的计算密集型程序的计算速度,但是,gpu高能耗、小缓存等特点限制了其能效的提升与应用范围。而fpga(field-programmablegatearray,即现场可编程门阵列)异构平台因其低功耗、可编程、高度并行等特性,已经成为互联网公司提高数据中心服务器性能及降低功耗的最佳解决方案之一。fpga异构计算平台采用高层次综合编程模型,基于opencl(opencomputinglanguage,开放运算语言)语言对深度学习神经网络进行研究和优化,完成神经网络算法在fpga平台上的高效移植和部署,通过充分利用板卡硬件流水设计和任务级并行,能够大幅提升了深度学习神经网络算法的计算性能。

然而,在基于fpga实现深度学习残差网络异构加速的研发过程中,研发人员需要针对不同的网络模型填写残差网络的配置参数到opencl代码所需的头文件;对于更深层次的网络模型,至少需要20名工程师1天的时间去完成,消耗较大的研发力量,并且有很大可能造成失误,影响研发效率。

因此,如何完成文件的格式转换,减少对人工的依赖、提高工作效率、减少失误,是本领域技术人员亟待解决的问题。



技术实现要素:

有鉴于此,本发明的目的在于提供一种caffe框架残差网络配置文件格式转换方法及系统,能够减少对人工的依赖、提高工作效率、减少失误。其具体方案如下:

一方面,本发明提供一种caffe框架残差网络配置文件格式转换方法,包括:

获取caffe框架残差网络配置文件中的参数数据,所述参数数据包括参数名和与所述参数名对应的参数值;

建立所述参数名与opencl模板中各位置的对应关系;

利用所述对应关系,将对应的参数值填到所述模板的对应位置;

输出得到目标格式配置文件。

优选地,所述获取所述配置文件中的参数数据,包括:

获取所述配置文件;

从所述配置文件中提取参数数据。

优选地,所述获取所述配置文件,包括:

接收所述配置文件的存储路径;

利用所述存储路径,获取所述配置文件。

优选地,所述从所述配置文件中提取参数数据,包括:

读取所述配置文件中各层的参数数据;

将所述参数数据分组存储。

优选地,所述模板为mustache模板。

优选地,所述建立所述参数名与opencl模板中各位置的对应关系,包括:

存储所述参数数据到python字典;

利用所述python字典的映射功能,建立所述参数名与opencl模板中各位置的对应关系。

优选地,所述存储所述参数数据到python字典,包括:

将所述参数数据分组存储到python字典。

另一方面,本发明还提供一种caffe框架残差网络配置文件格式转换系统,包括:

参数获取模块,用于获取caffe框架残差网络配置文件中的参数数据,所述参数数据包括参数名和与所述参数名对应的参数值;

对应建立模块,用于建立所述参数名与opencl模板中各位置的对应关系;

参数填充模块,用于利用所述对应关系,将对应的参数值填到所述模板的对应位置;

目标输出模块,用于输出得到目标格式配置文件。

优选地,所述参数获取模块,包括:

文件获取单元,用于获取所述配置文件;

参数提取单元,用于从所述配置文件中提取参数数据。

优选地,所述对应建立模块,包括:

字典存储单元,用于存储所述参数数据到python字典;

字典映射单元,用于利用所述python字典的映射功能,建立所述参数名与opencl模板中各位置的对应关系。

本发明提供一种caffe框架残差网络配置文件格式转换方法,包括:获取caffe框架残差网络配置文件中的参数数据,所述参数数据包括参数名和与所述参数名对应的参数值;建立所述参数名与opencl模板中各位置的对应关系;利用所述对应关系,将对应的参数值填到所述模板的对应位置;输出得到目标格式配置文件。

本发明中所采用的方法能够获取caffe框架残差网络配置文件中的参数数据,并建立对应关系,将参数数据填充到opencl模板中去,从而相对于现有技术中采用人工手动填写opencl格式文件相比,能够减少对人工的依赖、提高工作效率、减少失误。

本发明提供的一种caffe框架残差网络配置文件格式转换系统,也具有上述有益效果,在此不再赘述。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明第一种具体实施方式所提供的一种caffe框架残差网络配置文件格式转换方法流程图;

图2为本发明第二种具体实施方式所提供的一种caffe框架残差网络配置文件格式转换系统的组成示意图;

图3为本发明第二种具体实施方式所提供的一种caffe框架残差网络配置文件格式转换系统的参数获取模块组成示意图;

图4为本发明第二种具体实施方式所提供的一种caffe框架残差网络配置文件格式转换系统的对应建立模块组成示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参考图1,图1为本发明第一种具体实施方式所提供的一种caffe框架残差网络配置文件格式转换方法流程图,该方法包括以下步骤:

s11:获取caffe框架残差网络配置文件中的参数数据,所述参数数据包括参数名和与所述参数名对应的参数值。

在本发明的第一种具体实施方式中,本发明实施例所提供的一种caffe框架残差网络配置文件格式转换方法,首先需要获取到caffe框架残差网络配置文件中的参数数据。例如在实践中,一般地,这些参数数据存储在残差网络的prototxt配置文件中,找到这个配置文件,相关参数数据就保存在这个配置文件中。

进一步地,为了查找到caffe框架残差网络配置文件,可以指定caffe的安装目录,在安装目录之下,配置文件有固定的存储路径,从而可以找到该配置文件。当然,也可以利用搜索功能来搜索到该配置文件。

更进一步地,可以在找到该配置文件之后,从所述配置文件中提取参数数据,参数数据一般包括参数名和参数值,在caffe中,参数名对应各层的参数数据的参数值。可以在提取数据时,将各层的参数数据分类,构成一组数据,将所述参数数据分组存储,这样可以方便后续的操作。

s12:建立所述参数名与opencl模板中各位置的对应关系。

为了将参数数据填入opencl模板的对应位置,可以先建立参数名与opencl模板中各位置的对应关系。这个对应关系可以在代码程序中指定,也可以利用现有的字典工具。可以选择该模板的前端模板引擎为mustache,也即上述模板具体可以为mustache模板。

例如可以运用python字典来建立所述参数名与opencl模板中各位置的对应关系,具体的,先存储所述参数数据到python字典,然后利用所述python字典的映射功能,建立所述参数名与opencl模板中各位置的对应关系。python字典作为一个容器类型,能存储任意个数的python对象,其中也可包括其他容器类型,可以包含不同类型的对象。而且具有强大的映射功能,能够对位于其中的数据进行映射。比如可以将本实施例中的参数名作为key,对应的参数值作为key对应的值,这样就成为一个字典。而opencl模板中也有与key相对应的位置,这样就建立了对应关系。

进一步地,为了方便对参数数据进行处理,可以将所述参数数据分组存储到python字典,具体地可以采用数组的方式存储,这样一次就可以对一个数组进行操作,从而加快数据处理的过程。

s13:利用所述对应关系,将对应的参数值填到所述模板的对应位置。

在建立对应关系之后,可以利用对应关系,将参数数据中对应的参数值,根据对应关系,填充到模板的相应位置。模板中定义了根据opencl语言对残差网络并行优化设计中所需的各网络层配置参数数据的格式,这个模板中缺少了caffe框架残差网络配置文件中的参数数据,可以用python的字典功能来实现这个模板。

s14:输出得到目标格式配置文件。

填充参数值完毕后,将填充了参数数据的模板输出,得到目标格式的配置文件,也就是opencl语言的配置文件,从而完成神经网络算法在fpga平台上的高效移植和部署,通过充分利用板卡硬件流水设计和任务级并行,能够大幅提升了深度学习神经网络算法的计算性能。

请参考图2,图2为本发明第二种具体实施方式所提供的一种caffe框架残差网络配置文件格式转换系统的组成示意图。

本发明还提供一种caffe框架残差网络配置文件格式转换系统,包括:

参数获取模块201,用于获取caffe框架残差网络配置文件中的参数数据,所述参数数据包括参数名和与所述参数名对应的参数值;

对应建立模块202,用于建立所述参数名与opencl模板中各位置的对应关系;

参数填充模块203,用于利用所述对应关系,将对应的参数值填到所述模板的对应位置;

目标输出模块204,用于输出得到目标格式配置文件。

请参考图3,图3为本发明第二种具体实施方式所提供的一种caffe框架残差网络配置文件格式转换系统的参数获取模块组成示意图。

优选地,所述参数获取模块201,包括:

文件获取单元2011,用于获取所述配置文件;

参数提取单元2012,用于从所述配置文件中提取参数数据。

图4为本发明第二种具体实施方式所提供的一种caffe框架残差网络配置文件格式转换系统的对应建立模块组成示意图。

优选地,所述对应建立模块202,包括:

字典存储单元2021,用于存储所述参数数据到python字典;

字典映射单元2022,用于利用所述python字典的映射功能,建立所述参数名与opencl模板中各位置的对应关系。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上对本发明所提供的一种caffe框架残差网络配置文件格式转换方法及系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1