一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

车辆进程管理方法、车辆和存储介质与流程

2022-11-23 17:56:06 来源:中国专利 TAG:


1.本技术涉及智能车辆技术领域,特别涉及一种车辆进程管理方法、车辆和存储介质。


背景技术:

2.在实际用车场景中,自动驾驶智能控制单元(xpu)后台运行着多个自动驾驶进程,这些进程被存储在一个就绪队列中,处理器根据这些进程的优先级分配运算资源,优先级高则先运算,优先级低则后运算。为了使得所有进程的整体响应时间更快,可以调节每个应用程序的优先级(在linux系统中用nice值表示),使得整体的优先级搭配最优,这样,在切换场景时,系统的响应时间更快,给用户更好的用车体验。
3.目前主要是由人工手动调节后台进程的nice值,但是这种人工指定方法是静态的,无法变更,也不知道最后出来的结果是不是最优,只能一次次尝试。也即是,在实际应用场景中,直接获得进程优先级最佳配置是很困难的,仅仅依靠人工手动配置不够准确。


技术实现要素:

4.本技术实施方式提供一种车辆进程管理方法、车辆和存储介质。
5.本技术实施方式提供一种车辆进程管理方法。所述车辆进程管理方法包括:多次获取车辆驾驶场景下运行的多个进程优先级组合的当前状态、所述当前进程优先级组合的奖励值、配置优先级的动作和根据所述动作配置优先级后的进程优先级组合的下一状态作为经验序列加入经验回放池;从所述经验回放池中选择预设数量的所述经验序列进行处理得到目标优先级组合;根据所述目标优先级组合管理对应的所述车辆驾驶场景下运行的多个所述进程。
6.在某些实施方式中,所述多次获取车辆驾驶场景下运行的多个进程优先级组合的当前状态、所述当前进程优先级组合的奖励值、配置优先级的动作和根据所述动作配置优先级后的进程优先级组合的下一状态作为经验序列加入经验回放池,包括:获取每个所述当前状态的原始奖励值;通过价值网络输出每个所述当前状态的q值;在所述下一状态不是最终状态的情况下,根据所述原始奖励值和所述q值确定所述奖励值。
7.在某些实施方式中,所述获取每个所述当前状态的原始奖励值,包括:获取每个所述当前状态对应的多个所述进程的响应总时间;若所述响应总时间大于预设时间阈值,则确定所述原始奖励值为第一设定值;或若所述响应总时间不大于预设时间阈值,则确定所述原始奖励值为第二设定值。
8.在某些实施方式中,所述在所述下一状态不是最终状态的情况下,根据所述原始奖励值和所述q值确定所述奖励值,包括:将所述原始奖励值加上折扣因子与已输出的最大q值之积得到所述奖励值。
9.在某些实施方式中,所述多次获取车辆驾驶场景下运行的多个进程优先级组合的当前状态、所述当前进程优先级组合的奖励值、配置优先级的动作和根据所述动作配置优
先级后的进程优先级组合的下一状态作为经验序列加入经验回放池,包括:采用贪心策略获取每次配置优先级的所述动作,其中所述贪心策略的贪心值与获取次数呈反比。
10.在某些实施方式中,所述从所述经验回放池中选择预设数量的所述经验序列进行处理得到目标进程优先级组合,包括:从所述经验回放池中选择预设数量的所述经验序列对深度强化学习模型进行训练;计算所述深度强化学习模型的损失值;根据所述损失值更新所述深度强化学习模型的参数;根据更新后的所述深度强化学习模型确定所述目标优先级组合。
11.在某些实施方式中,所述计算所述深度强化学习模型的损失值,包括:通过所述深度强化学习模型输出每个所述当前状态的q值;根据所述奖励值和对应的所述q值计算所述深度强化学习模型的损失值。
12.在某些实施方式中,所述根据更新后的所述深度强化学习模型确定所述目标优先级组合,包括:若所述深度强化学习模型的更新次数达到预设次数,则确定所述深度强化学习模型更新完成;根据更新完成后的所述深度强化学习模型确定所述目标优先级组合。
13.本技术提供一种车辆。所述车辆包括处理器和存储器,所述存储器上存储有计算机程序,当所述计算机程序被所述处理器执行时,实现上述实施方式任一项所述的车辆进程管理方法。
14.本技术还提供一种包含有计算机程序的非易失性计算机可读存储介质。当所述计算机程序被一个或多个处理器执行时,实现上述实施方式任一项所述的车辆进程管理方法。
15.本技术通过进程优先级组合的状态、对应的奖励值和配置进程优先级的动作建立经验回放池,并对经验回放池的数据进行处理,寻找最佳的优先级配置即目标优先级组合,并根据该目标优先级组合管理对应的车辆驾驶场景下运行的多个进程,无需人工手动配置,使得多个进程的优先级配置更准确。
16.本技术实施方式的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本技术的实践了解到。
附图说明
17.本技术的上述和/或附加的方面和优点可以从结合下面附图对实施方式的描述中将变得明显和容易理解,其中:
18.图1是本技术的车辆进程管理方法的流程示意图;
19.图2是本技术的dqn-ppo算法中马尔可夫决策过程的示意图;
20.图3是本技术的进程优先级配置的示意图;
21.图4是本技术的车辆进程管理方法的流程示意图;
22.图5是本技术的车辆进程管理方法的流程示意图;
23.图6是本技术的车辆进程管理方法的流程示意图;
24.图7是本技术的车辆进程管理方法的流程示意图;
25.图8是本技术的车辆进程管理方法的流程示意图;
26.图9是本技术的车辆进程管理方法的流程示意图。
具体实施方式
27.下面详细描述本技术的实施方式,所述实施方式的示例在附图中示出,其中,相同或类似的标号自始至终表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本技术的实施方式,而不能理解为对本技术的实施方式的限制。
28.目前主要是由人工手动调节后台进程的nice值,但是这种人工指定方法是静态的,无法变更,也不知道最后出来的结果是不是最优,只能一次次尝试。也即是,在实际应用场景中,直接获得进程优先级最佳配置是很困难的,仅仅依靠人工手动配置不仅不准确,而且也无法根据车辆驾驶的场景不同进行实时更新。
29.有鉴于此,请参阅图1,本技术提供一种车辆进程管理方法。该车辆进程管理方法包括:
30.01:多次获取车辆驾驶场景下运行的多个进程优先级组合的当前状态、当前进程优先级组合的奖励值、配置优先级的动作和根据动作配置优先级后的进程优先级组合的下一状态作为经验序列加入经验回放池;
31.02:从经验回放池中选择预设数量的经验序列进行处理得到目标优先级组合;
32.03:根据目标优先级组合管理对应的车辆驾驶场景下运行的多个进程。
33.本技术还提供一种车辆。车辆包括处理器和存储器,存储器上存储有计算机程序。处理器用于多次获取车辆驾驶场景下运行的多个进程优先级组合的当前状态、当前进程优先级组合的奖励值、配置优先级的动作和根据动作配置优先级后的进程优先级组合的下一状态作为经验序列加入经验回放池;从经验回放池中选择预设数量的经验序列进行处理得到目标优先级组合;根据目标优先级组合管理对应的车辆驾驶场景下运行的多个进程。
34.可以理解地,xpu拥有极高算力,能够轻松训练一个深度学习模型,本技术提出一种基于深度强化学习的进程优先级优化方法(a process priority optimization method based on deep reinforcement learning,dqn-ppo),用来自适应学习每种车辆驾驶场景下(如跨楼层自动泊车、倒车入库、高速行驶、低速行驶、蓝牙解锁等)最优的优先级搭配,从而减少整体系统响应时间,此外,深度学习模型还能够不断学习,实时更新进程优先级。
35.本技术基于深度强化学习的进程优先级优化方法获取最优的优先级搭配的过程中,定义一个深度强化学习模型,通常也称为智能体(agent),它的目标就是学习一个好的策略,做出最优的选择,从而最大化得到的奖励,其最核心的三个要素是,状态s(state)、动作a(action)、奖励r(reward)。状态是指对智能体所处环境的表示,是智能体对外界环境的感知,动作是智能体在所处环境下做出的决策,根据该决策环境,动作将进行相应变化,奖励则是对智能体所做决策优劣的反馈。图2为dqn-ppo算法中马尔可夫决策过程。图2中state表示参数状态空间,action表示参数状态空间转移的动作空间,reward表示在状态state下采取动作action所得的即时奖励。
36.其中,对于状态空间的设计,可以理解地,深度强化学习模型所处的环境,包含两个方面,一个是驾驶场景,另一个是进程优先级。本技术的状态设计的核心是进程优先级的设计。linux内核为处理器定义了一个类型为struct rq的可运行进程队列,将这个进程队列的优先级配置[p0,p1,...,pn]初始化。在linux系统中,优先级通过设置nice值来实现,其范围是-20到 19,nice值越大意味着更低的优先级,低nice值会获得更多的处理器时间。
智能体在不断学习过程中,通过修改这个优先级来获得更高的奖励。比如,对如图3所示的5个进程赋予优先级[p0,p1,p2,p3,p4]=[16,18,-18,-20,15]。在拥有多个处理器的系统中,可以将多个优先级配置串联起来,将进程优先级的可能组合设计为相应的状态表示。
[0037]
对于动作空间的设计,动作空间表示为:
[0038]
a=[a0,a1,...,at,...,ak]
ꢀꢀ
(公式1)
[0039]
a为对所有进程赋予优先级的集合,即每一个优先级配置p=[p0,p1,...,pn]对应一个动作at,k为动作的数量。
[0040]
车辆驾驶场景包括如跨楼层自动泊车、倒车入库、高速行驶、低速行驶和蓝牙解锁等用车场景。
[0041]
首先,本技术将获取的当前状态st、当前状态对应的奖励值rt、当前状态对应的动作at和下一状态s(t 1)作为经验序列加入经验回放池d,即,将经验序列[st,at,rt,s(t 1)]存入经验回放池d中。其中,获取的多个进程优先级组合的当前状态为st,当前进程优先级组合的奖励值为rt,配置优先级的动作at,根据动作配置优先级后的进程优先级组合的下一状态s(t 1)。
[0042]
可以理解地,在开始进行进程优先级的配置时,首先需要初始化由价值网络输出得到的状态s对应的价值表q(s,a),并随机选择一个初始化参数配置的进程优先级组合p,从而可以根据该初始化的进程优先级组合p确定初始状态s0、初始状态对应的奖励值r0、初始状态下执行的动作a0和执行动作a0后得到的初始状态s0对应的下一状态s1,然后先将该初始状态s0、初始状态对应的奖励值r0、初始状态下执行的动作a0和下一状态s1作为经验序列加入经验回放池d中。并以状态s1作为当前状态,获取状态s1对应的奖励值r1和状态s1下执行的动作a1,和执行动作a0后得到的状态s1对应的下一状态s2,将该状态s1、状态s1对应的奖励值r1、状态s1下执行的动作a1和状态s1的下一状态s2作为经验序列加入经验回放池d中。重复多次得到多个经验序列,即多次获取车辆驾驶场景下运行的多个进程优先级组合的当前状态s
t
、当前进程优先级组合的奖励值r
t
、配置优先级的动作a
t
和根据动作a
t
配置优先级后的进程优先级组合的下一状态s
t 1
作为经验序列加入经验回放池d。
[0043]
然后,从经验回放池中选择预设数量的经验序列进行处理得到目标优先级组合。例如,预设数量为m,则从经验回放池d中随机抽取m个样本进行处理得到最佳参数配置组合pbest,即得到目标优先级组合为pbest。
[0044]
最后,根据目标优先级组合pbest管理对应的车辆驾驶场景下运行的多个进程。
[0045]
如此,本技术利用xpu的算力通过进程优先级组合的状态、对应的奖励值和配置进程优先级的动作建立经验回放池,并对经验回放池的数据进行处理,寻找最佳的优先级配置即目标优先级组合,并根据该目标优先级组合管理对应的车辆驾驶场景下运行的多个进程,无需人工手动配置,使得多个进程的优先级配置更准确。
[0046]
更具体地,请参阅图4,步骤01包括:
[0047]
011:获取每个当前状态的原始奖励值;
[0048]
012:通过价值网络输出每个当前状态的q值;
[0049]
013:在下一状态不是最终状态的情况下,根据原始奖励值和q值确定奖励值。
[0050]
处理器用于获取每个当前状态的原始奖励值;通过价值网络输出每个当前状态的q值;在下一状态不是最终状态的情况下,根据原始奖励值和q值确定奖励值。
[0051]
具体地,可以先获取每个当前状态的原始奖励值rj,再通过价值网络输出每个当前状态的q值。然后,在下一状态s
j 1
不是最终状态的情况下,根据原始奖励值rj和q值确定奖励值yj。
[0052]
可以通过训练深度强化学习模型的价值网络获取网络参数,价值网络可以是一个是深度神经网络,每个当前状态的q值为价值网络中各个状态数据对应的q值,根据q值最大的状态数据确定每个状态的优先级。其中,q是一个概率值,q值最大的状态s,为用户最可能选择的状态。
[0053]
进一步地,请参阅图5,步骤011包括:
[0054]
0111:获取每个当前状态对应的多个进程的响应总时间;
[0055]
0112:若响应总时间大于预设时间阈值,则确定原始奖励值为第一设定值;或
[0056]
0113:若响应总时间不大于预设时间阈值,则确定原始奖励值为第二设定值。
[0057]
处理器用于获取每个当前状态对应的多个进程的响应总时间;若响应总时间大于预设时间阈值,则确定原始奖励值为第一设定值;或若响应总时间不大于预设时间阈值,则确定原始奖励值为第二设定值。
[0058]
具体地,本技术定义每个进程的响应时间为ti(不考虑进程上下文切换的时间成本),则每个当前状态对应的多个进程的响应总时间可以根据公式2算得到:
[0059][0060]
其中,n表示进程数量,t
process
表示响应总时间,ti表示每个进程的响应时间。
[0061]
深度学习模型的目标是使t最小,从而获得的奖励最大。每个进程所需的实际执行时间不同,赋予每个进程一个优先级之后,就能立刻算出整体响应时间t
process

[0062]
若响应总时间大于预设时间阈值,则确定原始奖励值为第一设定值;或若响应总时间不大于预设时间阈值,则确定原始奖励值为第二设定值。例如,预设时间阈值为t
lim
,第一设定值reward为-10,第二设定值reward为1,则,当t
process
》t
lim
的时候,reward为-10,当t
process
《t
lim
时,reward为1。
[0063]
更具体地,可以将t
lim
初始化为100ms。当执行一个动作后,计算每个当前状态对应的多个进程的响应总时间t
process
,返回原始奖励值rj的设定值reward。
[0064]
其中,奖励值具体可以根据公式3进行设置:
[0065]
r=[r0,r1,...,r
t
,...,rk]
ꢀꢀ
(公式3)
[0066]
其中,r表示一轮优先级配置结束后所得到的奖励集合,k为奖励的数量,r
t
为执行a
t
后得到的评估奖励。
[0067]
如此,本技术可以根据∈-greedy策略选择一个行动a,执行行动a,可以先得到系统整体每个当前状态对应的多个进程的响应总时间tprocess,然后根据上述奖励机制得到即时奖励rt,进而观察新的状态s(t 1)。
[0068]
进一步地,请参阅图6,步骤013包括:
[0069]
0131:将原始奖励值加上折扣因子与已输出的最大q值之积得到奖励值。
[0070]
处理器用于将原始奖励值加上折扣因子与已输出的最大q值之积得到奖励值。
[0071]
也即是,本技术根据如下的迭代公式4实现状态动作值函数的优化学习:
[0072][0073]
上式中,yj为奖励值,rj为每个当前状态的原始奖励值,γ为折扣因子,maxaq(s
j 1
,a
j 1
;θ)为深度强化学习模型的参数为θ、下一次状态s
j 1
为非终态以及在下一动作为a
j 1
的情况下已输出的最大q值。其中,γ可以为0.9。
[0074]
在下一状态为非终态时,可以根据公式4可以将原始奖励值rj加上折扣因子γ与已输出的最大q值之积得到各个action的奖励值yj,然后选择最佳奖励值作为决策。
[0075]
请参阅图7,步骤01包括:
[0076]
014:采用贪心策略获取每次配置优先级的动作,其中贪心策略的贪心值与获取次数呈反比。
[0077]
可以理解地,因为在正常情况下,智能体每次只能决策时选择其中一个action,如果每次都选择上一次奖励最大的action,那么很容易陷入局部最优解,甚至可能无法收敛,因此本技术采用贪心(∈-greedy)策略,贪心策略的贪心值ε与获取次数j呈反比,即设置,这样使得ε随着获取次数的增加逐渐减小,用来防止模型陷入局部最优解。此外,利用∈-greedy策略还可以实现未来回报期望最大化,让模型在每次选择的时候,有一定的概率进行探索新的动作。
[0078]
也即是,本技术可以根据公式5选择下一次动作:
[0079][0080]
上式中,a
t
为下一次动作,ε为概率,a0,a1,...,a
t
,...,ak为k个动作,a为任意选择的一个动作。
[0081]
也即是,本技术的深度学习模型以ε的概率从k个动作中随机选择一个作为决策,以1-ε的概率从经验回放池中取出batch=100个动作,再如公式4所示根据原始奖励值rj和q值确定非终态的奖励值yj,然后选择最佳奖励值作为决策。
[0082]
下面详细介绍如何对经验回放池选择的经验序列进行处理从而得到目标优先级组合pbest。
[0083]
请参阅图8,步骤02包括:
[0084]
021:从经验回放池中选择预设数量的经验序列对深度强化学习模型进行训练;
[0085]
022:计算深度强化学习模型的损失值;
[0086]
023:根据损失值更新深度强化学习模型的参数;
[0087]
024:根据更新后的深度强化学习模型确定目标优先级组合。
[0088]
处理器用于从经验回放池中选择预设数量的经验序列对深度强化学习模型进行训练;计算深度强化学习模型的损失值;根据损失值更新深度强化学习模型的参数;根据更新后的深度强化学习模型确定目标优先级组合。
[0089]
需要说明的是,深度强化学习模型可以包括前述用于输出q值的价值网络。
[0090]
预设数量可以为深度强化学习模型默认设置的数值。
[0091]
首先,从经验回放池中选择预设数量的经验序列对深度强化学习模型进行训练,对选择的预设数量的经验序列可以根据上述公式4和公式5对深度强化学习模型进行训练。
[0092]
然后,本技术可以计算深度强化学习模型的损失值l(θ),根据损失值l(θ)更新深度强化学习模型的参数。
[0093]
最后,根据更新后的深度强化学习模型确定目标优先级组合pbest。
[0094]
如此,本技术的深度强化学习模型还可以不断学习,实现实时更新进程优先级,也即是,可以实现根据驾驶的场景不同进行实时更新进程优先级。
[0095]
更详细地,请参阅图9,步骤022包括:
[0096]
0221:通过深度强化学习模型输出每个当前状态的q值;
[0097]
0222:根据奖励值和对应的q值计算深度强化学习模型的损失值。
[0098]
处理器用于通过深度强化学习模型输出每个当前状态的q值;根据奖励值和对应的q值计算深度强化学习模型的损失值。
[0099]
也即是,本技术可以先通过深度强化学习模型输出每个当前状态的q值,即可以得到q(sj,aj;θ),j为当前状态的数量。
[0100]
然后,本技术可以根据梯度下降法计算损失值l(θ):
[0101]
l(θ)=(y
j-q(sj,aj;θ))2ꢀꢀ
(公式6)
[0102]
其中,l(θ)为损失值,θ为深度强化学习模型的参数,yj为奖励值,q(sj,aj;θ)为每个当前状态的q值,j为当前状态的数量。
[0103]
进一步的,根据损失值l(θ)更新深度强化学习模型的参数可以通过公
[0104]
式7实现:
[0105][0106]
其中,θ为深度强化学习模型的参数,q(sj,aj;θ)为当前状态的q值,y
j-q(sj,aj;θ)为对l(θ)开根号得到的数值,β为学习率。本技术的学习率可以为β=0.01。
[0107]
下面介绍如何确定深度强化学习模型是否更新完成。
[0108]
具体地,请参阅图9,步骤024包括:
[0109]
0241:若深度强化学习模型的更新次数达到预设次数,则确定深度强化学习模型更新完成;
[0110]
0242:根据更新完成后的深度强化学习模型确定目标优先级组合。
[0111]
处理器用于若深度强化学习模型的更新次数达到预设次数,则确定深度强化学习模型更新完成;根据更新完成后的深度强化学习模型确定目标优先级组合。
[0112]
可以理解,每次更新深度强化学习模型的参数是通过在经验回放池中选取的预设数量的经验序列,采样的数据有限,仅完成一次深度强化学习模型的更新并不一定能得到最优的参数组合,因此,本技术可以通过对深度强化学习模型进行迭代更新。也就是说,在深度强化学习模型每次更新完成后,以更新后的深度强化学习模型的价值网络重新多次获取相应的经验序列加入新的经验回放池,并利用新的经验回放池重新训练深度强化学习模型,以及更新深度强化学习模型,从而实现深度强化学习模型的迭代更新。
[0113]
每次深度强化学习模型时,优先级组合对应的奖励值为rnow=rbefore r(s,a),其中rbefore为之前多轮优先级迭代得到的奖励值总和,r(s,a)为本轮优先级组合对应的奖励值。此外,若rnow》rmax,则r_max=r_now,其中rmax为已经完成的多轮优先级迭代的奖
励值中最大的奖励值,也就是说,在深度强化学习模型更新后优先级组合对应的奖励值大于已经完成的多轮优先级迭代的奖励值中最大的奖励值,则对最大奖励值进行更新。
[0114]
本技术可以在深度强化学习模型的更新次数达到预设次数的情况下,确定深度强化学习模型更新完成,并可以根据更新完成后的深度强化学习模型确定目标优先级组合。
[0115]
本技术还提供一种包含有计算机程序的非易失性计算机可读存储介质。当计算机程序被一个或多个处理器执行时,实现上述任意实施例所述的车辆进程管理方法。
[0116]
例如,计算机程序被处理器执行时实现以下车辆进程管理方法的步骤:
[0117]
01:多次获取车辆驾驶场景下运行的多个进程优先级组合的当前状态、当前进程优先级组合的奖励值、配置优先级的动作和根据动作配置优先级后的进程优先级组合的下一状态作为经验序列加入经验回放池;
[0118]
02:从经验回放池中选择预设数量的经验序列进行处理得到目标优先级组合;
[0119]
03:根据目标优先级组合管理对应的车辆驾驶场景下运行的多个进程。
[0120]
可以理解,计算机程序包括计算机程序代码。计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读存储介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、以及软件分发介质等。
[0121]
本技术的存储介质应用上述车辆进程管理方法利用xpu系统的强大算力训练一个深度强化学习模型,进行优先级配置组合训练,寻找最佳的优先级配置即目标优先级组合,并根据该目标优先级组合管理对应的车辆驾驶场景下运行的多个进程,无需人工手动配置,使得多个进程的优先级配置更准确。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献