一种数据保存方法技术

技术编号:39734417 阅读:6 留言:0更新日期:2023-12-17 23:36
本申请实施例涉及一种数据保存方法

【技术实现步骤摘要】
一种数据保存方法、装置、车辆、电子设备和存储介质


[0001]本申请实施例涉及神经网络
,尤其涉及一种数据保存方法

装置

车辆

电子设备和存储介质


技术介绍

[0002]神经网络的模型结构一般是一个有向无环图,图中的每个节点是一个算子
(Operator)
,算子是该神经网络的最小计算单元

算子之间相互连接,数据流从一个算子传递到与之相连的一个或多个算子,从而构成了一个个顺序或者带有分支的数据流,进而形成计算图

但随着神经网络的模型结构的越来越复杂,神经网络的算子数量和分支结构也越来越多,计算图也越来越复杂

神经网络计算时需要对计算图进行某种形式的遍历,以得到一个特定的算子的计算顺序,推理引擎将按照这个计算顺序对每一个算子进行计算,并传递算子之间的数据流,进而得到最终的推理结果

[0003]现有的推理引擎在设计时往往更多考虑的是计算速度,而对内存占用问题考虑得不够充分,但随着计算图越来越复杂,推理引擎占用的内存也越来越大

现有的是通过采取减小神经网络模型参数量等方式来降低内存占用,但这样就会带来效果下降

最终输出不准确的问题,而且如果模型参数量已经无法降低,则无法进一步降低内存占用

[0004]因此亟需一种能够降低推理引擎的内存占用,又不影响最终推理结果的准确性的方法

>
技术实现思路

[0005]本申请实施例提供了一种数据保存方法

装置

车辆

电子设备和存储介质,能够解决现有技术中在计算神经网络模型的过程中,内存占用过大的问题

[0006]第一方面,本申请实施例提供了一种数据保存方法,该方法包括:确定神经网络所包括的
N
个算子的计算顺序,
N
为大于1的整数;基于计算顺序,从
N
个算子中确定
M
个算子,
M
为小于或等于
N
的正整数;按照计算顺序,计算
N
个算子中的第
i
个算子,得到第
i
个算子的输出,
i
为1,2,3,
……

N
‑1;若第
i
个算子是
M
个算子中的一个,则将第
i
个算子的输出保存至第一类型的存储空间,第一类型的存储空间中保存的第
i
个算子的输出,不允许在计算第
i+1
个算子之后,在计算第
k
个算子之前删除,所述第
k
个算子为按照所述计算顺序,与所述第
i
个算子存在依赖关系的最后一个算子,所述依赖关系用于指示一个算子的输出是另一个算子的输入,
k
为大于
i+1
,且小于或等于
N
的整数;若第
i
个算子不是
M
个算子中的一个,则将第
i
个算子的输出保存至第二类型的存储空间,第二类型的存储空间中保存的第
i
个算子的输出,允许在计算第
i+1
个算子之后删除

[0007]可选地,基于计算顺序,从
N
个算子中确定
M
个算子,包括:若按照计算顺序,第
j
个算子与第
j+1
个算子没有依赖关系,则将第
j
个算子确定为
M
个算子中的一个,并将第
j+1
个算子直接依赖的第一算子确定为
M
个算子中的一个,
j
为1,2,3,
……

N
‑1;依赖关系用于指示一个算子的输出是另一个算子的输入

[0008]可选地,基于计算顺序,从
N
个算子中确定
M
个算子,包括:若按照计算顺序,第
j
个算子与第
j+1
个算子没有依赖关系,则将第
j
个算子确定为
M
个算子中的一个,
j
为1,2,3,
……

N
‑1;若按照计算顺序,第
j
个算子与第
j+1
个算子存在依赖关系,且第
j
个算子还是第二算子的依赖,则将第
j
个算子确定为
M
个算子中的一个

[0009]可选地,将第
j
个算子确定为
M
个算子中的一个,包括:在第
j
个算子不是末端算子的情况下,将第
j
个算子确定为
M
个算子中的一个

[0010]可选地,基于计算顺序,从
N
个算子中确定
M
个算子,包括:若按照计算顺序,第
j
个算子与第
j+1
个算子没有依赖关系,则将第
j+1
个算子依赖的第一算子确定为
M
个算子中的一个,
j
为1,2,3,
……

N
‑1;若按照计算顺序,第
j
个算子与第
j+1
个算子存在依赖关系,且第
j+1
个算子还依赖第三算子,则将所述第三算子确定为所述
M
个算子中的一个

[0011]可选地,第一类型的存储空间中保存的第
i
个算子的输出,允许在计算所述第
k
个算子之后,且计算第
k+1
个算子之前删除,或,第二类型的存储空间中保存的第
i
个算子的输出,允许在计算第
i+1
个算子之后,且计算第
i+2
个算子之前删除

[0012]可选地,将第
i
个算子的输出保存至第一类型的存储空间,包括:将第
i
个算子的输出保存至第一类型的存储空间和第二类型的存储空间

[0013]可选地,第二类型的存储空间包括第一缓存区和第二缓存区;按照计算顺序,计算
N
个算子中的第
i
个算子,得到第
i
个算子的输出,包括:在第
i
个算子的输入包括第一缓存区存储的数据的情况下,基于第一缓存区存储的数据计算第
i
个算子,得到第
i
个算子的输出;在第
i
个算子本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.
一种数据保存方法,其特征在于,所述方法包括:确定神经网络所包括的
N
个算子的计算顺序,
N
为大于1的整数;基于所述计算顺序,从所述
N
个算子中确定
M
个算子,
M
为小于或等于
N
的正整数;按照所述计算顺序,计算所述
N
个算子中的第
i
个算子,得到所述第
i
个算子的输出,
i
为1,2,3,
……

N
‑1;若所述第
i
个算子是所述
M
个算子中的一个,则将所述第
i
个算子的输出保存至第一类型的存储空间,所述第一类型的存储空间中保存的所述第
i
个算子的输出,不允许在计算第
i+1
个算子之后,在计算第
k
个算子之前删除,所述第
k
个算子为按照所述计算顺序,与所述第
i
个算子存在依赖关系的最后一个算子,所述依赖关系用于指示一个算子的输出是另一个算子的输入,
k
为大于
i+1
,且小于或等于
N
的整数;若所述第
i
个算子不是所述
M
个算子中的一个,则将所述第
i
个算子的输出保存至第二类型的存储空间,所述第二类型的存储空间中保存的所述第
i
个算子的输出,允许在计算第
i+1
个算子之后删除
。2.
根据权利要求1所述的方法,其特征在于,所述基于所述计算顺序,从所述
N
个算子中确定
M
个算子,包括:若按照所述计算顺序,第
j
个算子与第
j+1
个算子没有依赖关系,则将所述第
j
个算子确定为所述
M
个算子中的一个,并将所述第
j+1
个算子依赖的第一算子确定为所述
M
个算子中的一个,
j
为1,2,3,
……

N

1。3.
根据权利要求1所述的方法,其特征在于,所述基于所述计算顺序,从所述
N
个算子中确定
M
个算子,包括:若按照所述计算顺序,第
j
个算子与第
j+1
个算子没有依赖关系,则将所述第
j
个算子确定为所述
M
个算子中的一个,
j
为1,2,3,
……

N
‑1;若按照所述计算顺序,第
j
个算子与第
j+1
个算子存在依赖关系,且所述第
j
个算子还是第二算子的依赖,则将所述第
j
个算子确定为所述
M
个算子中的一个
。4.
根据权利要求2或3所述的方法,其特征在于,所述将所述第
j
个算子确定为所述
M
个算子中的一个,包括:在所述第
j
个算子不是末端算子的情况下,将所述第
j
个算子确定为所述
M
个算子中的一个
。5.
根据权利要求1所述的方法,其特征在于,所述基于所述计算顺序,从所述
N
个算子中确定
M
个算子,包括:若按照所述计算顺序,第
j
个算子与第
j+1
个算子没有依赖关系,则将所述第
j+1
个算子依赖的第一算子确定为所述
M
个算子中的一个,
j
为1,2,3,
……

N
‑1;若按照所述计算顺序,第
j
个算子与第
j+1
个算子存在依赖关系,且所述第
j+1
个算子还依赖第...

【专利技术属性】
技术研发人员:唐文琦阳家俊刘晓博陈伟
申请(专利权)人:北京罗克维尔斯科技有限公司
类型:发明
国别省市:

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

1