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

强化学习训练方法及装置、电子设备、存储介质与流程

2022-05-26 14:51:38 来源:中国专利 TAG:


1.本公开涉及强化学习技术领域,特别涉及一种强化学习训练方法及装置、电子设备、存储介质。


背景技术:

2.深度强化学习通过智能体和环境的不断交互试错来获得用于训练的样本,并基于奖励机制不断提高智能体的性能,其在解决序列决策问题上具有优势。目前,深度强化学习在机器人控制、自动驾驶、游戏和自然语言处理等领域取得了较好的研究成果。然而,深度强化学习算法在不同任务间进行泛化依旧存在困难。受过训练的智能体虽然可以解决较复杂的任务,但是,智能体容易对训练的环境产生过拟合,从而导致很难将已学习的经验转移到新的环境中。因此,提高深度强化学习算法的泛化能力对于算法的实际应用具有重要意义。
3.在许多实际应用中,重新收集所需的训练数据并重建模型的代价是非常昂贵的。为了提高深度强化学习算法对新任务的快速适应能力,目前主流的方法之一是迁移学习。迁移学习利用在相关领域或任务中已经训练好的模型参数,通过某种方式将其迁移到需要训练的新模型中,帮助新模型快速优化,从而避免新模型从零学习,提高新模型的学习效率。然而,迁移学习不能确定已经迁移到新模型中的模型参数在原来的模型中仍能保持很好的效果。
4.为了解决深度强化学习算法的泛化问题,现有技术主要采用域随机化或加入正则项的方式来提高模型的泛化能力。例如,一种样本增强的方法需要在仿真环境中进行大量实验,从而使模型能够很好地迁移到真实环境,然而,这种方法需要在仿真环境中采集大量样本进行实验,时间成本较高。另一种信息瓶颈方法需要尽可能地限制从环境观测传递到状态表示的信息,鼓励神经网络去学习一些高维的特征,然而,这种方法虽然提高了模型的快速迁移能力,但并没有考虑模型在多任务场景下的适用性。


技术实现要素:

5.本公开旨在至少解决现有技术中存在的问题之一,提供一种强化学习训练方法及装置、电子设备、存储介质。
6.本公开的一个方面,提供了一种强化学习训练方法,包括:
7.基于源任务场景,对预设的强化学习模型进行训练,更新强化学习模型的网络参数,得到初始强化学习模型;
8.分别确定初始强化学习模型中各个网络参数对于前一个任务场景的重要性,得到各个网络参数对应的第一重要性系数;
9.基于根据第一重要性系数确定的损失函数,在预设的当前任务场景中对初始强化学习模型进行训练,更新初始强化学习模型的网络参数,得到目标强化学习模型。
10.可选的,分别确定初始强化学习模型中各个网络参数对于前一个任务场景的重要
性,得到各个网络参数对应的第一重要性系数,包括:
11.根据下式(1),分别计算初始强化学习模型中各个网络参数对于前一个任务场景的重要性:
[0012][0013]
其中,f(xk;θ)表示初始强化学习模型,xk表示前一个任务场景中的训练样本,k=1,2,

,n表示前一个任务场景中的训练样本编号,n表示前一个任务场景中的训练样本数量,l
22
(f(xk;θ))为f(xk;θ)的l2范数的平方,θ表示初始强化学习模型中所有网络参数组成的集合,θj表示初始强化学习模型中的网络参数,j表示初始强化学习模型中的网络参数编号且j为正整数,ωj表示网络参数θj对应的第一重要性系数。
[0014]
可选的,基于根据第一重要性系数确定的损失函数,在预设的当前任务场景中对初始强化学习模型进行训练,更新所述初始强化学习模型的网络参数,得到目标强化学习模型,包括:
[0015]
基于下式(2),在当前任务场景中对初始强化学习模型进行训练:
[0016][0017]
其中,l(θ)表示用于在当前任务场景中对初始强化学习模型进行训练的损失函数,li(θ)表示当前任务场景的损失函数,i表示当前任务场景的编号且i为正整数,表示正则项,λ表示正则项的超参数,表示目标强化学习模型中的网络参数。
[0018]
可选的,在得到目标强化学习模型之后,所述方法还包括:
[0019]
确定第二重要性系数:分别确定目标强化学习模型中各个网络参数对于当前任务场景的重要性,得到各个网络参数对应的第二重要性系数;
[0020]
确定第三重要性系数:基于第一重要性系数和第二重要性系数,确定目标强化学习模型中各个网络参数对应的第三重要性系数;
[0021]
更新训练:基于根据第三重要性系数确定的损失函数,在预设的下一个任务场景中对目标强化学习模型进行训练,更新目标强化学习模型的网络参数,得到更新后的目标强化学习模型。
[0022]
可选的,确定第三重要性系数,包括:
[0023]
将第一重要性系数和第二重要性系数的平均值,作为目标强化学习模型中各个网络参数对应的第三重要性系数。
[0024]
可选的,在更新训练之后,所述方法还包括:
[0025]
依次执行确定第二重要性系数步骤、确定第三重要性系数步骤、更新训练步骤,以完成更新后的目标强化学习模型在预设的多个任务场景中的训练,获得最终的强化学习模型。
[0026]
本公开的另一个方面,提供了一种强化学习训练装置,包括:
[0027]
第一训练模块,用于基于源任务场景,对预设的强化学习模型进行训练,更新强化学习模型的网络参数,得到初始强化学习模型;
[0028]
第一确定模块,用于分别确定初始强化学习模型中各个网络参数对于前一个任务场景的重要性,得到各个网络参数对应的第一重要性系数;
[0029]
第二训练模块,用于基于根据第一重要性系数确定的损失函数,在预设的当前任务场景中对初始强化学习模型进行训练,更新初始强化学习模型的网络参数,得到目标强化学习模型。
[0030]
可选的,所述装置还包括:
[0031]
第二确定模块,用于确定第二重要性系数:分别确定目标强化学习模型中各个网络参数对于当前任务场景的重要性,得到各个网络参数对应的第二重要性系数;
[0032]
第三确定模块,用于确定第三重要性系数:基于第一重要性系数和第二重要性系数,确定目标强化学习模型中各个网络参数对应的第三重要性系数;
[0033]
第三训练模块,用于更新训练:基于根据第三重要性系数确定的损失函数,在预设的下一个任务场景中对目标强化学习模型进行训练,更新目标强化学习模型的网络参数,得到更新后的目标强化学习模型。
[0034]
本公开的另一个方面,提供了一种电子设备,包括:
[0035]
至少一个处理器;以及,
[0036]
与至少一个处理器通信连接的存储器;其中,
[0037]
存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行前文记载的所述的强化学习训练方法。
[0038]
本公开的另一个方面,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时实现前文记载的所述的强化学习训练方法。
[0039]
本公开相对于现有技术而言,首先基于源任务场景,对预设的强化学习模型进行训练,更新强化学习模型的网络参数,得到初始强化学习模型,之后分别确定初始强化学习模型中各个网络参数对于前一个任务场景的重要性,得到各个网络参数对应的第一重要性系数,基于根据第一重要性系数确定的损失函数,在预设的当前任务场景中对初始强化学习模型进行训练,更新初始强化学习模型的网络参数,得到目标强化学习模型,从而通过在训练过程中引入网络参数对应的重要性系数,约束了网络参数的更新方向,不仅提高了目标强化学习模型的泛化能力,还能使目标强化学习模型在不同的任务场景中均具有较好的性能表现,避免了目标强化学习模型在后续的训练过程中从零开始学习以及对学习过的任务场景进行重复学习,提高了强化学习训练效率。
附图说明
[0040]
一个或多个实施方式通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施方式的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
[0041]
图1为本公开一实施方式提供的一种强化学习训练方法的流程图;
[0042]
图2为本公开另一实施方式提供的一种强化学习训练方法的流程图;
[0043]
图3为本公开另一实施方式提供的一种强化学习训练方法的流程图;
[0044]
图4为本公开另一实施方式提供的一种强化学习训练方法的流程图;
[0045]
图5本公开另一实施方式提供的一种强化学习训练装置的结构示意图;
[0046]
图6为本公开另一实施方式提供的一种强化学习训练装置的结构示意图;
[0047]
图7为本公开另一实施方式提供的电子设备的结构示意图。
具体实施方式
[0048]
为使本公开实施方式的目的、技术方案和优点更加清楚,下面将结合附图对本公开的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本公开各实施方式中,为了使读者更好地理解本公开而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本公开所要求保护的技术方案。以下各个实施方式的划分是为了描述方便,不应对本公开的具体实现方式构成任何限定,各个实施方式在不矛盾的前提下可以相互结合相互引用。
[0049]
本公开的一个实施方式涉及一种强化学习训练方法,其流程如图1所示,包括:
[0050]
步骤101,基于源任务场景,对预设的强化学习模型进行训练,更新强化学习模型的网络参数,得到初始强化学习模型。
[0051]
具体的,源任务场景可以是任意一个能够对预设的强化学习模型进行训练的任务场景,例如,源任务场景可以是机器人控制、自动驾驶、游戏和自然语言处理等领域中对强化学习模型进行训练的任务场景。
[0052]
步骤102,分别确定初始强化学习模型中各个网络参数对于前一个任务场景的重要性,得到各个网络参数对应的第一重要性系数。
[0053]
具体的,第一重要性系数可以指示某一网络参数对于源任务场景的重要程度。例如,可以用第一重要性系数的大小,表示其对应的网络参数对源任务场景的重要程度。第一重要性系数越大,表示其对应的网络参数对源任务场景的重要性越大;第一重要性系数越小,表示其对应的网络参数对源任务场景的重要性越小。
[0054]
步骤103,基于根据第一重要性系数确定的损失函数,在预设的当前任务场景中对初始强化学习模型进行训练,更新初始强化学习模型的网络参数,得到目标强化学习模型。
[0055]
具体的,将第一重要性系数引入损失函数,可以将前一个任务场景与预设的当前任务场景进行关联,从而使训练得到的目标强化学习模型在多个任务场景中均能取得较好的性能表现。
[0056]
本公开实施方式相对于现有技术而言,首先基于源任务场景,对预设的强化学习模型进行训练,更新强化学习模型的网络参数,得到初始强化学习模型,之后分别确定初始强化学习模型中各个网络参数对于前一个任务场景的重要性,得到各个网络参数对应的第一重要性系数,基于根据第一重要性系数确定的损失函数,在预设的当前任务场景中对初始强化学习模型进行训练,更新初始强化学习模型的网络参数,得到目标强化学习模型,从而通过在训练过程中引入网络参数对应的重要性系数,约束了网络参数的更新方向,不仅提高了目标强化学习模型的泛化能力,还能使目标强化学习模型在不同的任务场景中均具有较好的性能表现,避免了目标强化学习模型在后续的训练过程中从零开始学习以及对学习过的任务场景进行重复学习,提高了强化学习训练效率。
[0057]
示例性的,步骤102可以包括:
[0058]
根据下式(1),分别计算初始强化学习模型中各个网络参数对于前一个任务场景的重要性:
[0059][0060]
其中,f(xk;θ)表示初始强化学习模型,xk表示前一个任务场景中的训练样本,k=1,2,

,n表示前一个任务场景中的训练样本编号,n表示前一个任务场景中的训练样本数量,l
22
(f(xk;θ))为f(xk;θ)的l2范数的平方,θ表示初始强化学习模型中所有网络参数组成的集合,θj表示初始强化学习模型中的网络参数,j表示初始强化学习模型中的网络参数编号且j为正整数,ωj表示网络参数θj对应的第一重要性系数。
[0061]
通过根据上式(1)确定网络参数对应的第一重要性系数,可以进一步明确网络参数与前一个任务场景的关系,从而确定网络参数对前一个任务场景的重要性。
[0062]
示例性的,步骤103可以包括:
[0063]
基于下式(2),在当前任务场景中对初始强化学习模型进行训练:
[0064][0065]
其中,l(θ)表示用于在当前任务场景中对初始强化学习模型进行训练的损失函数。li(θ)表示当前任务场景的损失函数,可以根据具体任务场景进行选择,例如,该损失函数可以是均方误差、策略梯度、最大熵、kl散度等。i表示当前任务场景的编号且i为正整数。表示正则项,λ表示正则项的超参数。表示目标强化学习模型中的网络参数,即在当前场景中对初始强化学习模型进行训练后,得到的网络参数θj更新后的值。
[0066]
通过将第一重要性系数引入损失函数,可以限制初始强化学习模型在预设的目标任务场景中进行训练时的网络参数更新幅度,约束网络参数的更新方向,使训练得到的目标强化学习模型在不同任务场景中均能取得较好的性能表现。例如,若某一网络参数对应的第一重要性系数较大,则说明该网络参数对于前一个任务场景的重要性较大,因此,可以在训练时减小该网络参数的更新幅度,从而避免训练获得的目标强化学习模型对源任务场景的灾难性遗忘。若某一网络参数对应的第一重要性系数较小,则说明该网络参数对于前一个任务场景的重要性较小,因此,可以在训练时增大该网络参数的更新幅度,从而使训练获得的目标强化学习模型在预设的目标任务场景中取得较好的性能。
[0067]
示例性的,如图2所示,在步骤103之后,所述方法还可以包括:
[0068]
步骤104,确定第二重要性系数:分别确定目标强化学习模型中各个网络参数对于当前任务场景的重要性,得到各个网络参数对应的第二重要性系数。
[0069]
具体的,第二重要性系数可以指示某一网络参数对于当前任务场景的重要程度。例如,可以用第二重要性系数的大小,表示其对应的网络参数对当前任务场景的重要程度。第二重要性系数越大,表示其对应的网络参数对当前任务场景的重要性越大;第二重要性系数越小,表示其对应的网络参数对当前任务场景的重要性越小。
[0070]
第二重要性系数的计算方法与第一重要性系数类似,只需将上式(1)中的前一个任务场景替换为当前任务场景、将初始强化学习模型替换为目标强化学习模型即可。
[0071]
步骤105,确定第三重要性系数:基于第一重要性系数和第二重要性系数,确定目标强化学习模型中各个网络参数对应的第三重要性系数。
[0072]
通过确定第三重要性系数,可以确定某一网络参数对于已经学习过的任务场景的
重要程度,从而将网络参数与已经学习过的任务场景进行关联。
[0073]
示例性的,步骤105可以包括:
[0074]
将第一重要性系数和第二重要性系数的平均值,作为目标强化学习模型中各个网络参数对应的第三重要性系数。
[0075]
通过采用平均值的方式对网络参数的重要性系数进行更新,可以有效避免网络梯度爆炸问题。
[0076]
步骤106,更新训练:基于根据第三重要性系数确定的损失函数,在预设的下一个任务场景中对目标强化学习模型进行训练,更新目标强化学习模型的网络参数,得到更新后的目标强化学习模型。
[0077]
通过确定第二重要性系数,利用第一重要性系数和第二重要性系数获得第三重要性系数,并将第三重要性系数引入损失函数,可以进一步约束训练过程中网络参数的更新方向,使得训练得到强化学习模型在不同任务场景中均能够取得较好的性能表现,还可以进一步提高强化学习模型的训练效率。
[0078]
示例性的,如图3所示,在步骤106之后,所述方法还可以包括:
[0079]
步骤107,依次执行确定第二重要性系数步骤、确定第三重要性系数步骤、更新训练步骤,以完成更新后的目标强化学习模型在预设的多个任务场景中的训练,获得最终的强化学习模型。
[0080]
通过分别在多个目标任务场景中对强化学习模型进行训练,可以使训练获得的强化学习模型具有更强的泛化能力,从而在不同的任务场景中均能取得更好的性能表现。
[0081]
为使本领域技术人员能够更好地理解上述实施方式,下面以一具体示例为例进行说明。
[0082]
如图4所示,一种强化学习训练方法,包括以下步骤:
[0083]
设定强化学习模型,以及强化学习模型需要训练的m个目标任务场景;计算强化学习模型中每个网络参数在之前任务场景中的重要性系数;将重要性系数引入损失函数,基于新的损失函数在当前任务场景中对强化学习模型进行训练;计算强化学习模型中每个网络参数在当前任务场景中的重要性系数;基于强化学习模型中每个网络参数在之前任务场景中的重要性系数和在当前任务场景中的重要性系数,更新每个网络参数的重要性系数;将下一个目标任务场景作为当前任务场景,回到将重要性系数引入损失函数,基于新的损失函数在当前任务场景中对强化学习模型进行训练步骤,重新在当前任务场景中对强化学习模型进行训练,直至完成所有m个目标任务场景下的训练,得到具有泛化能力的强化学习模型。
[0084]
图4所述的方法具体可以包括以下步骤:
[0085]
s1:设定源任务场景以及在源任务场景训练后得到的强化学习模型f(xk;θ),其中,xk为强化学习模型的训练样本,k=1,2,

,n为训练样本编号,θ为强化学习模型中所有网络参数组成的集合;设定强化学习模型需要在m个目标任务场景即d1,

,di,

,dm中都具有泛化能力,其中,i为目标任务场景的编号。
[0086]
s2:根据下式(1)计算强化学习网络模型f(xk;θ)中每个网络参数θj对于源任务场景的重要性ωj,j为强化学习网络模型f(xk;θ)中网络参数的索引值即编号:
[0087][0088]
s3:令i=1。
[0089]
s4:设置当前任务场景d=di,对强化学习模型f(xk;θ)在当前任务场景d中进行训练:
[0090]
s4-1:初始化经验池r,给定强化学习模型f(xk;θ),该强化学习模型的初始网络参数为在源任务场景中训练后得到的网络参数θj。
[0091]
s4-2:在当前任务场景中采集训练样本放入经验池r中。
[0092]
s4-3:从经验池中随机抽取训练样本,基于损失函数l(θ)对强化学习模型f(xk;θ)进行训练,更新网络参数θj,得到更新后的网络参数其中,
[0093][0094]
li(θ)表示当前任务场景的损失函数,可以根据具体任务场景选择合适的损失函数,例如,可以是均方误差、策略梯度、最大熵、kl散度等。表示正则项。λ表示正则项的超参数,默认设置为1。通过引入正则项,可以限制网络参数的更新幅度。对于ωj比较大的网络参数,说明该网络参数对之前的任务场景比较重要,在参数更新时会尽量减小该参数的更新幅度,避免引起模型对之前任务场景的灾难性遗忘;对于ωj比较小的网络参数,说明该网络参数对之前的任务场景重要性较弱,在参数更新时可以对该参数进行较大幅度的更新,从而使模型在当前任务场景中取得较好的性能。
[0095]
s5:将网络参数在前一个任务场景的重要性系数记为将上式(1)中的ωj替换为根据修改后的上式(1)计算网络参数在当前任务场景d=di的重要性系数
[0096]
s6:将网络参数在前一个任务场景的重要性系数和网络参数在当前任务场景d=di的重要性系数的平均值,作为网络参数新的重要性系数即
[0097]
s7:令i=i 1。
[0098]
s8:设置当前任务场景d=di,对强化学习模型f(xk;θ)在当前任务场景中进行训练:
[0099]
s8-1:初始化经验池r,给定强化学习网络模型f(xk;θ),其初始参数为其在前一个任务场景中训练后得到的网络参数。
[0100]
s8-2:在当前任务场景中采集训练样本放入经验池r中。
[0101]
s8-3:从经验池中随机抽取训练样本,将作为新的ωj,基于上式(2),对强化学习模型f(xk;θ)进行训练,更新网络参数。
[0102]
s9:将上式(1)中的ωj替换为根据修改后的上式(1),计算在当前任务场景d下每个网络参数对于该任务场景的重要性系数
[0103]
s10:将网络参数在前一个任务场景的重要性系数记为根据公式(3),计算网络参数θj新的重要性系数
[0104]
s11:重复步骤s7-s10,直到强化学习模型在m个目标任务场景中均完成训练,得到在源任务场景和所有目标任务场景中均表现较好的强化学习模型。
[0105]
本公开的另一个实施方式涉及一种强化学习训练装置,如图5所示,包括:
[0106]
第一训练模块501,用于基于源任务场景,对预设的强化学习模型进行训练,更新强化学习模型的网络参数,得到初始强化学习模型;
[0107]
第一确定模块502,用于分别确定初始强化学习模型中各个网络参数对于前一个任务场景的重要性,得到各个网络参数对应的第一重要性系数;
[0108]
第二训练模块503,用于基于根据第一重要性系数确定的损失函数,在预设的当前任务场景中对初始强化学习模型进行训练,更新初始强化学习模型的网络参数,得到目标强化学习模型。
[0109]
本公开实施方式相对于现有技术而言,首先利用第一训练模块基于源任务场景,对预设的强化学习模型进行训练,更新强化学习模型的网络参数,得到初始强化学习模型,之后利用第一确定模块分别确定初始强化学习模型中各个网络参数对于前一个任务场景的重要性,得到各个网络参数对应的第一重要性系数,利用第二训练模块基于根据第一重要性系数确定的损失函数,在预设的当前任务场景中对初始强化学习模型进行训练,更新初始强化学习模型的网络参数,得到目标强化学习模型,从而通过在训练过程中引入网络参数对应的重要性系数,约束了网络参数的更新方向,不仅提高了目标强化学习模型的泛化能力,还能使目标强化学习模型在不同的任务场景中均具有较好的性能表现,避免了目标强化学习模型在后续的训练过程中从零开始学习以及对学习过的任务场景进行重复学习,提高了强化学习训练效率。
[0110]
示例性的,如图6所示,所述装置还包括:
[0111]
第二确定模块504,用于确定第二重要性系数:分别确定目标强化学习模型中各个网络参数对于目标任务场景的重要性,得到各个网络参数对应的第二重要性系数;
[0112]
第三确定模块505,用于确定当前重要性系数:基于第一重要性系数和第二重要性系数,确定目标强化学习模型中各个网络参数对应的当前重要性系数;
[0113]
第三训练模块506,用于更新训练:基于根据当前重要性系数确定的新的损失函数,在预设的新的目标任务场景中对目标强化学习模型进行训练,更新目标强化学习模型的网络参数,得到更新后的目标强化学习模型。
[0114]
本公开实施方式提供的强化学习训练装置的具体实现方法,可以参见本公开实施方式提供的强化学习训练方法所述,此处不再赘述。
[0115]
本公开的另一个实施方式涉及一种电子设备,如图7所示,包括:
[0116]
至少一个处理器701;以及,
[0117]
与至少一个处理器701通信连接的存储器702;其中,
[0118]
存储器702存储有可被至少一个处理器701执行的指令,指令被至少一个处理器701执行,以使至少一个处理器701能够执行上述实施方式所述的强化学习训练方法。
[0119]
其中,存储器和处理器采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器和存储器的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器。
[0120]
处理器负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器可以被用于存储处理器在执行操作时所使用的数据。
[0121]
本公开的另一个实施方式涉及一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时实现上述实施方式所述的强化学习训练方法。
[0122]
即,本领域技术人员可以理解,实现上述实施方式所述方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本公开各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、rom(read-only memory,只读存储器)、ram(random access memory,随机存取存储器)、磁碟或者光盘等各种可以存储程序代码的介质。
[0123]
本领域的普通技术人员可以理解,上述各实施方式是实现本公开的具体实施方式,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本公开的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献