本发明专利技术实施例公开了一种深度学习模型的转化方法、装置、服务器及存储介质,所述方法包括:将目标深度学习模型解析为指令集计算图中间表达;将所述指令集计算图中间表达转化为数据流计算图中间表达;将所述数据流计算图中间表达调整为定制化架构中间表达;根据所述定制化架构中间表达,得到所述目标深度学习模型所对应转化的目标数据流网络模型。实现了将基于指令集架构开发的深度学习模型转化到数据流架构下运行,使用指令集计算图中间表达、数据流计算图中间表达和定制化架构中间表达来描述深度学习模型,可以根据实际需求在易读性和执行效率等方面做权衡,使得设计更为灵活。
Transformation method, device, server and storage medium of deep learning model
【技术实现步骤摘要】
深度学习模型的转化方法、装置、服务器及存储介质
本专利技术实施例涉及深度学习技术,例如涉及一种深度学习模型的转化方法、装置、服务器及存储介质。
技术介绍
深度学习网络通常由算法训练得来。多数情况下,算法开发人员倾向于使用公开的深度学习框架进行模型训练,一种深度学习框架可以开发出多个深度学习模型,而大部分公开的深度学习框架是针对于中央处理器/图形处理器(CentralProcessingUnit/GraphicsProcessingUnit,CPU/GPU)这类计算设备设计的。CPU/GPU采用传统的指令集架构,架构效率较低,算子颗粒度较小,因而灵活度较高。随着深度学习相关技术的发展,对于算力的要求越来越高。传统指令集的架构效率缺陷已经不能满足应用场景的需求。对比而言,数据流架构效率更高,从技术路线来看更加适合深度学习技术的发展趋势。然而,数据流架构于指令集架构的数据表达存在较大差异:数据流架构算子颗粒度要远大于指令集架构;数据流架构算子计算前要预先根据数据依赖确定计算模块的排列顺序。这种差异决定了指令集架构下训练得来的模型不能直接部署在数据流架构中,这大大阻碍了数据流架构的应用发展。
技术实现思路
本专利技术实施例提供一种深度学习模型的转化方法、装置、服务器及存储介质,以实现将基于指令集架构开发的深度学习模型转化到数据流架构下运行。在一实施例中,本专利技术实施例提供一种深度学习模型的转化方法,包括:将目标深度学习模型解析为指令集计算图中间表达;将所述指令集计算图中间表达转化为数据流计算图中间表达;将所述数据流计算图中间表达调整为定制化架构中间表达;根据所述定制化架构中间表达,得到所述目标深度学习模型所对应转化的目标数据流网络模型。在一实施例中,本专利技术实施例提供一种深度学习模型的转化装置,包括:目标深度学习模型解析模块,设置为将目标深度学习模型解析为指令集计算图中间表达;指令集计算图中间表达转化模块,设置为将所述指令集计算图中间表达转化为数据流计算图中间表达;数据流计算图中间表达调整模块,设置为将所述数据流计算图中间表达调整为定制化架构中间表达;目标数据流网络模型生成模块,设置为根据所述定制化架构中间表达,得到所述目标深度学习模型所对应的目标数据流网络模型。进一步的,所述目标深度学习模型包括第一算子颗粒度,所述指令集计算图中间表达包括第二算子颗粒度,所述数据流计算图中间表达包括第三算子颗粒度。进一步的,所述第一算子颗粒度与所述第二算子颗粒度相同。进一步的,所述第二算子颗粒度小于所述第三算子颗粒度。进一步的,指令集计算图中间表达还包括第二算子,所述数据流计算图中间表达还包括第三算子。进一步的,所述第二算子通过融合形成所述第三算子。在一实施例中,本专利技术实施例提供一种服务器,包括:一个或多个处理器;存储装置,设置为存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本专利技术任意实施例所提供的方法。在一实施例中,本专利技术实施例提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现如本专利技术任意实施例所提供的方法。本专利技术实施例通过将目标深度学习模型解析为指令集计算图中间表达;将所述指令集计算图中间表达转化为数据流计算图中间表达;将所述数据流计算图中间表达调整为定制化架构中间表达;根据所述定制化架构中间表达,得到所述目标深度学习模型所对应转化的目标数据流网络模型。实现了将基于指令集架构开发的深度学习模型转化到数据流架构下运行,使用指令集计算图中间表达、数据流计算图中间表达和定制化架构中间表达来描述深度学习模型,可以根据实际需求在易读性和执行效率等方面做权衡,使得设计更为灵活。附图说明图1为本专利技术实施例一提供的一种深度学习模型的转化方法的流程示意图;图2为本专利技术实施例二提供的一种深度学习模型的转化装置的结构示意图;图3为本专利技术实施例三提供的一种服务器的结构示意图。具体实施方式下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部结构。一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将多个步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,多个步骤的顺序可以被重新安排。当多个步骤操作完成时处理可以被终止,但是还可以具有未包括在附图中的附加步骤。处理可以对应于方法、函数、规程、子例程、子程序等等。此外,术语“第一”、“第二”等可在本文中用于描述多种方向、动作、步骤或元件等,但这些方向、动作、步骤或元件不受这些术语限制。这些术语仅用于将第一个方向、动作、步骤或元件与另一个方向、动作、步骤或元件区分。举例来说,在不脱离本申请的范围的情况下,可以将第一算子颗粒度称为第二算子颗粒度,且类似地,可将第二算子颗粒度称为第一算子颗粒度。第一算子颗粒度和第二算子颗粒度两者都是算子颗粒度,但其不是同一算子颗粒度。术语“第一”、“第二”等而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本专利技术的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确限定。实施例一图1为本专利技术实施例一提供的一种深度学习模型的转化方法的流程示意图,可适用于将基于指令集架构开发的深度学习模型输入到基于数据流架构的芯片中运行,该方法可以由深度学习模型的转化装置来执行,该装置可以采用软件和/或硬件的方式实现,并可集成在服务器上。如图1所示,本专利技术实施例一提供的深度学习模型的转化方法包括:S110、将目标深度学习模型解析为指令集计算图中间表达。在一实施例中,深度学习框架是算法开发人员进行模型训练的大量基础代码,例如,TensorFlow、Caffe、Mxnet、Torch等,深度学习模型则是在深度学习框架下开发出来实现特定算法的神经网络模型,一种深度学习框架可以开发多个深度学习模型。CPU/GPU能执行的所有指令集合就称为指令集,指令集架构则是CPU/GPU物理硬件和上层软件之间的一个接口。大部分已公开的深度学习模型都是针对于CPU/GPU这类计算设备设计的,即,大部分已公开的深度学习模型采用的是指令集架构。指令集计算图中间表达定义了深度学习模型的网络结构,即算子的种类和连接关系。算子由一个或多个能够被目标运算设备执行的最小运算单元组合而成,算子之间的连接关系表示算子之间的运算规则,算子颗粒度表示算子的复杂程度,通常由算子颗粒度包含的最小运算单元的数量表示,算子颗粒度大的称之为大颗粒算子,算子颗粒度小的称之为小颗粒算子。例如,在CPU/本文档来自技高网...
【技术保护点】
1.一种深度学习模型的转化方法,其特征在于,包括:/n将目标深度学习模型解析为指令集计算图中间表达;/n将所述指令集计算图中间表达转化为数据流计算图中间表达;/n将所述数据流计算图中间表达调整为定制化架构中间表达;/n根据所述定制化架构中间表达,得到所述目标深度学习模型所对应转化的目标数据流网络模型。/n
【技术特征摘要】
1.一种深度学习模型的转化方法,其特征在于,包括:
将目标深度学习模型解析为指令集计算图中间表达;
将所述指令集计算图中间表达转化为数据流计算图中间表达;
将所述数据流计算图中间表达调整为定制化架构中间表达;
根据所述定制化架构中间表达,得到所述目标深度学习模型所对应转化的目标数据流网络模型。
2.如权利要求1所述的方法,其特征在于,所述目标深度学习模型包括第一算子颗粒度,所述指令集计算图中间表达包括第二算子颗粒度,所述数据流计算图中间表达包括第三算子颗粒度。
3.如权利要求2所述的方法,其特征在于,所述第一算子颗粒度与所述第二算子颗粒度相同。
4.如权利要求2所述的方法,其特征在于,所述第二算子颗粒度小于所述第三算子颗粒度。
5.如权利要求2所述的方法,其特征在于,所述指令集计算图中间表达还包括第一算子,所述数据流计算图中间表达还包括第二算子。
6.如权利要求5所述的方法,其特征在于,多个所述第一算子通过融合转化形成所述第二算子。
7.一种深度学习模型的转化装置,包...
【专利技术属性】
技术研发人员:熊超,蔡权雄,牛昕宇,
申请(专利权)人:深圳鲲云信息科技有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。