【强化学习论文】小样本策略泛化的提示决策转换器

news2024/11/25 4:48:34
  • 文献题目:Prompting Decision Transformer for Few-Shot Policy Generalization

摘要

  • 人类可以利用先前的经验并从少量演示中学习新任务。与旨在通过更好的算法设计实现快速适应的离线元强化学习相比,我们研究了架构归纳偏差对少样本学习能力的影响。我们提出了一种基于提示的决策转换器 (Prompt-DT),它利用 Transformer 架构的顺序建模能力和提示框架来实现离线 RL 中的小样本自适应。我们设计了轨迹提示,其中包含小样本演示的片段,并对特定于任务的信息进行编码以指导策略生成。我们在五个 MuJoCo 控制基准测试中的实验表明,Prompt-DT 是一个强大的少样本学习器,无需对未见目标任务进行任何额外微调。 Prompt-DT 的性能大大优于其变体和强大的元离线 RL 基线,其轨迹提示仅包含几个时间步长。 Prompt-DT 对提示长度的变化也很稳健,并且可以推广到分布外 (OOD) 环境。项目页面:
    https://mxu34.github.io/PromptDT/。

引言

  • 离线强化学习(离线RL) (Levine et al.,2020)旨在从一组不访问环境的行为策略收集的轨迹中学习最优策略。这种数据驱动的方法在许多情况下是必不可少的,在这些情况下,在线交互可能是昂贵的(如机器人或教育代理)和危险的(如自动驾驶或医疗保健)。最近的一些研究表明,这种方法在支持数据驱动的游戏环境政策学习(Chen等人,2021年)、机器人操作行为(Ebert等人,2018年;Kalashnikov等人,2018年)和机器人导航技能(Kahn等人,2021年)。
  • 然而,我们发现离线RL的内在困难之一是无法推广到看不见的任务。虽然代理可能能够从训练任务中获得良好的状态覆盖,但由于分布的转移,它仍然很难在测试任务中找到一个好的策略。因此,Mitchell等人(2021)最近的工作考虑了旨在解决离线RL中的泛化问题的离线元RL设置。提出了使用优势加权回归(Peng et al., 2019)作为子例程RL算法的Meta-Actor批评家优势加权(Meta-Actor Critic with Advantage weighted, MACAW)算法,并以元学习目标优化agent的适应能力(Finn et al., 2017a)。
  • 虽然元学习方法通过算法学习的视角解决了这个问题,但我们的目的是在这项工作中调查架构归纳偏差的力量。众所周知,Transformer (Vaswani et al., 2017)模型在对大规模数据集进行预训练时,能够进行少镜头或零镜头学习。此外,自然语言处理(NLP)最近的工作(Liu et al., 2021;Brown et al., 2020)认为,==基于提示的框架是适应新任务的有效范式,如翻译和问题回答。在基于提示的框架中,提示包含关于任务的有价值的信息,并作为输入的前缀预先挂起。因此,它将少镜头或零镜头的泛化问题转化为条件序列生成,这是这些大型Transformer模型的优势所在。==最近,Chen等人(2021)表明,除了自然语言之外,Transformer体系结构还可以对轨迹数据具有强大的序列建模能力,在离线RL上实现了最先进的结果。在这项工作中,我们的目标是解决这样一个问题:我们能否利用NLP中的基于提示的框架,并将其适应于离线RL的环境,以实现对不可见任务的少镜头泛化?
  • ==值得注意的是,将基于提示的方法应用于RL问题并非易事。==在自然语言处理(NLP)中,语言模型(lm)在大量的原始文本(包括互联网上几乎所有的信息)上进行预先训练。此外,大多数NLP任务可以重写为标准的空白填充格式作为提示。这些提示作为查询从预先训练的lm中提取正确的信息。在RL中,由于不同任务之间的内在差异,预训练的模型是否有足够的知识来解决不可预见的任务是值得怀疑的。我们建议使用几发子弹的演示作为提示,我们称之为轨迹提示。我们没有进行无监督的语言模型预训练,而是集中于有监督地训练一个代理,该代理可以模仿这些演示来生成新策略,而无需进行微调。在我们基于提示的离线RL框架中,代理首先使用从同一领域/环境中的不同任务收集的离线轨迹进行训练。对于每个任务,代理学习预测目标轨迹,同时对从同一任务中采样的轨迹提示进行条件反射。在评估期间,给代理一个新任务和一些新轨迹(总步长小于或等于15)来构建提示。无需进行额外的调整,代理应该利用这些轨迹中显示的任务信息,并为新任务生成策略。该框架功能强大且具有吸引力,原因有很多:它允许代理利用从不同任务收集的离线轨迹,代理可以执行少镜头学习,在不更新代理的情况下适应新场景。
  • 我们将这种方法称为基于提示的决策转换器(prompt - dt),它利用Transformer体系结构的顺序建模能力和提示框架来实现离线RL中的少镜头适应。我们的贡献如下。
  • 1.我们提出了Prompt-DT,这是一个基于transformer的模型,通过由少量轨迹构建的短轨迹提示来学习适应看不见的任务。
  • 2.我们在五个MuJoCo控制基准测试中的实验表明,Prompt-DT是一个强大的少弹学习器,无需对目标任务进行任何额外的微调,大大超过了强元离线RL基准。
  • 3.我们的分析表明了基于提示的框架的必要性,以及提示长度的鲁棒性和提示质量的敏感性。
  • 4.提示dt可以推广到非分布任务,而之前的方法都失败了。

相关工作

  • 离线强化学习。离线RL (Levine et al., 2020)使用预收集的数据集学习策略,其中包含在行为策略下采样的轨迹。正如Levine等人(2020年)所指出的那样,离线RL问题已被证明比在线RL更具挑战性,因为学习代理需要仅使用离线数据来估计保单的价值。与在线RL类似,我们可以采用基于模型或无模型的方法。当使用基于模型的方法时,我们可以用离线数据估计奖励和过渡函数。然而,我们需要修改RL算法,以避免利用估计模型中的误差(Yu et al, 2020b;基坦比等人,2021年;Yu等人,2021年)。或者,在选择无模型方法时,我们可以将q学习算法或pol policy梯度算法应用于离线设置,但需要显式纠正离线数据中的行为策略与我们想要优化的策略之间的分布不匹配(Kumar等人,2020;伊斯兰等人,2019)。
  • Meta-Reinforcement学习。元强化学习(Meta-reinforcement learning,简称rl)旨在将智能体的知识从一个任务推广到另一个任务。一种流行的元rl算法是Finn等人(2017a)提出的模型不可知论元学习(MAML)。MAML的目标是找到一个策略参数,以便在给定任务分布中的新任务时,只需进行几次更新就可以在新任务中获得良好的性能。MAML在优化过程中包含一个内循环和一个外循环。内部循环优化策略参数,以在一个步骤或几个步骤中适应给定的任务。这可以通过遵循任何策略梯度算法来实现。外部循环包括元学习目标,它在对任务分布中所有可能的任务进行适应后优化策略的性能。MAML在基准测试领域已经显示出成功和有效的适应。然而,这种优化算法需要从内环反向传播到外环,计算量大。提出了更多的后续方法来减轻计算负担(Nichol等人,2018;Rajeswaran等人,2019)。
  • 作为序列建模的策略学习。RL算法需要处理长期信用分配的挑战,这通常是通过时间差异(TD)学习完成的(Sutton & Barto, 2018)。然而,为NLP设计的模型,如Transformer (Vaswani et al., 2017),可以固有地处理长期信用分配问题。最近,Decision Transformer (Chen等人,2021年)提出将RL问题建模为序列预测问题,在Transformer模型中使用状态、行动、奖励作为令牌。并发工作采用类似的方法,使用Transformer预测环境的动态(Janner等人,2021年)。与经典的RL算法相比,这些基于变压器的方法在基准测试领域取得了类似或更好的性能。最近,Furuta等人(2021)论证了决策转换器模型正在进行事后信息匹配。
  • Few-Shot学习。少镜头学习(FSL)旨在快速推广到只包含少量样本和监督信息的新任务(Wang et al., 2020)。FSL可以通过开发可以复制人类行为的代理来推进机器人技术。例子包括一次性模仿(Wu & Demiris, 2010)、多武装匪徒(Duan等,2017)、视觉导航(Finn等,2017a)和连续控制(Yoon等,2018)。FSL的应用包括图像分类(Vinyals等人,2016)、对象跟踪(Bertinetto等人,2016)、视觉问题回答解析(Dong等人,2018)、语言建模(Vinyals等人,2016)和神经结构搜索(Brock等人,2017)。FSL可以减少数据密集型应用程序的数据收集工作。另一个经典的FSL场景是,由于安全或伦理问题,带有监管信息的考试组很难获得(Altae-Tran等人,2017年)。
  • Prompt-based学习。对于自然语言处理来说,基于提示的学习是建立在直接模拟文本概率的语言模型的基础上的。与训练模型接受输入 x x x并预测输出 y y y P ( y ∣ x ) P(y|x) P(yx)的传统监督学习不同,基于提示的方法使用模板将原始输入 x x x修改为文本字符串提示 x ′ x' x,其中有一些未填充的空白,然后使用语言模型将答案 y y y概率地填充为空白(Liu等人,2021年)。通过这种方式,通过选择适当的提示,我们可以操纵模型来预测所需的输出,有时甚至不需要任何额外的任务特定训练(Brown et al., 2020;Radford等人,2019;高等人,2020)。潜在的假设是,经过预训练的语言模型已经从预训练语料库中学习了足够的知识,我们只需要找到正确的方法来提取这些知识。然而,在RL设置中,我们没有足够大的和通用的训练前语料库来覆盖不同的环境和任务。因此,在这项工作中,我们建议以一种不同的方式使用提示。RL代理被要求模仿提供的轨迹提示,而不是我们提供提示来从预先训练的模型中提取知识,这样它就可以再现生成这些轨迹的策略。

预赛

在线和离线元强化学习

  • 强化学习 (RL) 问题是一个顺序决策问题,其中学习代理与环境交互并优化其控制策略以获得最优值。 动态环境中的每个顺序决策任务通常建模为马尔可夫决策过程 (MDP)(Sutton & Barto,2018),由元组 M = ( S , A , P , R , µ ) M = (S, A, P, R, µ) M=(S,A,P,R,µ) 表示。 S S S A A A 是状态空间和动作空间。 P : S × A × S → R P : S × A × S → R P:S×A×SR 是转移模型,其中 P ( s , a , s ′ ) P(s, a, s') P(s,a,s) 是在状态 s s s 采取行动 a a a 到达状态 s ′ s' s 的概率。 R : S → R R : S → R R:SR 是奖励函数。 µ µ µ 是初始状态分布。 在每一步,RL 智能体通过基于当前状态 s s s 采取行动 a a a 与环境交互,观察奖励 r r r 和从环境中产生的下一个状态 s ′ s' s。 顺序决策任务的目标是找到一个策略 π : S × A → R π : S × A → R π:S×AR 来优化预期的累积奖励
    在这里插入图片描述
  • 通常,RL 是在线执行的,其中代理迭代地采取行动并从环境中接收反馈。 然而,这可能并不总是可行的,因为 RL 算法由于样本效率普遍较低而可能需要大量训练数据。 这使得在线环境中的培训非常耗时。 在一些现实世界的安全关键环境中,在训练阶段在线部署代理可能会导致灾难性的失败。 我们考虑离线 RL 设置(Levine 等人,2020),其目的是从使用(可能未知的)行为策略预先收集的数据中学习策略。 在此设置中,代理可以访问包含一组轨迹的数据集 D D D。 轨迹 { s 0 , a 0 , r 0 , s 1 , a 1 , r 1 , . . . , s T , a T , r T } \{s_0, a_0, r_0, s_1, a_1, r_1, . . . , s_T , a_T , r_T \} {s0,a0,r0,s1,a1,r1,...,sT,aT,rT} 使用环境中的行为策略进行采样。 agent 需要在不与环境本身交互的情况下,仅使用数据集 D D D 找到最优策略。
  • 最初提出在线和离线 RL 设置是为了在一项任务中找到最优策略。 如果设计的学习代理能够在学习了一些任务后用少量新收集的数据适应类似任务,则可以进一步提高 RL 的效率,这主要是在元 RL 下开发的(Finn 等人,2017a) . 最近,meta-RL 已扩展到离线设置,旨在通过预先收集的数据快速适应新任务。 在 Mitchell 等人 (2021) 提出的离线元强化学习设置中,代理被赋予一组任务 T T T,其中任务 T i ∈ T T_i ∈ T TiT 定义为 ( M i , π i ) (M_i, π_i) (Mi,πi),包含 MDP M i M_i Mi 和行为策略 π i π_i πi . 对于每个任务 T i T_i Ti,代理都提供了一个数据集 D i D_i Di,其中包含使用 π i π_i πi 采样的轨迹。 该代理使用表示为 T t r a i n T^{train} Ttrain 的训练任务子集进行训练,并期望在与 T t r a i n T^{train} Ttrain 不相交的一组测试任务 T t e s t T^{test} Ttest 中找到最优策略。

决策Transformer

  • 已在 NLP(De vlin 等人,2018 年)和计算机视觉(Carion 等人,2020 年)中广泛研究的 Transformer 表现出优于基于 RNN 的架构。 它最近被用于解决 RL 问题,因为它在对长序列数据建模时具有效率和可扩展性。 离线强化学习的决策转换器 (Chen et al., 2021) 将学习策略视为顺序建模问题。 它建议使用在不同时间步长 t t t 收集的状态 s t s_t st、动作 a t a_t at 和 reward-to-go r ^ t \hat r_t r^t 元组对轨迹进行建模。 reward-to go 是从当前时间步到 episode 结束的累积奖励。 这种新颖的表示不包括单步奖励 r t r_t rt,而是有助于指导行动选择以优化回报。 在时间步 t t t,Decision Transformer 将自回归轨迹序列 τ τ τ 作为输入,其中包含最近的 K K K 步历史记录。
    在这里插入图片描述
  • 当使用离线收集的数据进行训练时,
    在这里插入图片描述
    。 在测试过程中,r^t = G? −Pti=0 ri
    其中 G*是一集的目标总回报。 每个轨迹 τ τ τ 对应于标准 Transformer 模型中的 3 K 3K 3K 个令牌。 为了对序列时间步信息进行编码,Decision Transformer 将相同的时间步嵌入连接到 s t s_t st a t a_t at r ^ t \hat r_t r^t 的嵌入。 对应于状态标记的每个头都被训练为通过在连续动作空间时最小化均方损失来预测动作。

基于提示的决策转换器

  • 本节介绍基于提示的决策转换器 (Prompt-DT),这是一种用于小样本策略泛化的新型转换器架构,如图 1 所示。

在这里插入图片描述

  • 图 1. 用于小样本策略泛化的 Prompt-DT。 左边显示了每个任务 T i ∈ T t r a i n ∪ T t e s t T_i ∈ T^{train} ∪ T^{test} TiTtrainTtest的少量样本演示数据集 P i P_i Pi。 轨迹提示定义为从存储在 P i P_i Pi 中的各种事件中采样的长度为 K K K 的轨迹序列。 在预训练和小样本评估中,Prompt-DT 将轨迹提示增强和最近的 K K K 步历史作为输入,并自回归输出与输入序列中每个状态对应的动作。

4.1 问题表述

  • 在使用离线数据对一组任务进行训练后,我们将离线少样本 RL 问题形式化为针对新任务的少样本策略泛化问题。 训练集 T t r a i n T^{train} Ttrain 中的每个任务 T i T_i Ti 都与数据集 D i D_i Di 相关联,其中包含使用未知行为策略 π i π_i πi 预先收集的轨迹。 与使用特定于任务的离线数据或在线交互更新模型权重的离线元 RL 相比,我们希望在没有微调或梯度更新的情况下实现泛化,从而保持高效率并避免由于参数移动而导致的灾难性遗忘。
  • 为了在 RL 的上下文中实现少样本学习,我们假设存在一个数据集 P i P_i Pi,其中包含每个任务 T i ∈ T t r a i n ∪ T t e s t T_i ∈ T^{train} ∪ T ^{test} TiTtrainTtest 的少样本演示。 对于训练任务 T i ∈ T t r a i n T_i ∈ T^{train} TiTtrain,我们让 P i P_i Pi 是离线数据集 D i D_i Di 的一个子集。 测试任务 T i ∈ T T_i ∈ T TiT 测试的 P i P_i Pi 可以通过人类实验者或行为策略获得。 在这项工作中,我们希望设计一种架构,可以直接提取存储在演示数据集 P i P_i Pi 中的独特任务特定信息,并利用这些信息来指导策略生成。

4.2 及时表示

  • 包含任务特定说明的文本提示使大型 Transformer 模型能够在不更改 NLP 任务中的模型参数的情况下生成答案。 在 RL 的背景下,最近引入了可以作为提示的文本描述来解决 Atari 视频游戏和多模式家庭任务(Shridhar 等人,2020)。 此类文本描述通常需要预定义的语言模板,并且可能需要大量人力来进行注释。
  • 相反,我们将 RL 的轨迹提示定义为由几个轨迹段组成的序列。 每个轨迹段包含多个状态 s ∗ s* s、动作 a ∗ a* a 和 reward-to go r ^ ∗ \hat r* r^ 元组 ( s ∗ , a ∗ , r ^ ∗ ) (s*, a*, \hat r*) (s,a,r^),遵循 Decision Transformer 中的轨迹表示。 每个带有上标的元素都与轨迹提示相关联。 由于每个顺序决策任务 T i T_i Ti 都可以建模为 MDP M i M_i Mi,因此轨迹提示可以存储部分到完整的信息,以通过隐式捕获转换模型和奖励函数来指定任务。 通过直接从少镜头演示数据集 P i P_i Pi 中采样轨迹段,与文本提示相比,轨迹提示相对容易获得。 形式上,我们将任务 T i T_i Ti 的轨迹提示 τ i τ_i τi 定义为
    在这里插入图片描述
  • K ∗ K* K 是提示中存储的环境步骤数。 请注意,我们选择的 K ∗ K* K 比任务的范围短得多。 因此,轨迹提示仅包含帮助识别任务所需的信息,但没有足够的信息供智能体模仿。

4.3 提示 DT 体系结构

  • 我们的 Prompt-DT 架构建立在 Decision Transformer (Chen et al., 2021) 的基础上,并通过提示增强序列建模问题的视角解决了离线小样本 RL 问题。 建议的轨迹提示允许对 Decision Transformer 进行最小的架构更改以进行泛化。 对于每个任务 T i T_i Ti,Prompt-DT 将 τ τ τ 输入作为输入,其中包含从 P i P_i Pi 获得的 K ∗ K* K步轨迹提示和从 D i D_i Di 采样的最近 K K K 步历史记录。 形式上 τ i n p u t = ( τ ∗ i , τ i ) τ^{input} = (τ*_i, τ_i) τinput=(τi,τi)。 由于每个时间步的数据对是一个三元组 ( s , a , r ^ ) (s, a, \hat r) (s,a,r^),因此输入序列对应于 Transformer 中的 3 ( K ∗ + K ) 3(K* + K) 3(K+K) 个标记。 Prompt-DT 自回归地输出与输入序列中的状态标记相对应的头部 K ∗ + K K* + K K+K 动作。
  • 在实现中,我们利用随机轨迹提示 τ ∗ i τ*_i τi 来提高训练稳定性并避免算法 2 中的过度拟合。任务 T i T_i Ti 的随机轨迹提示 τ ∗ i τ*_i τi 由长度为 H H H K ∗ = J H K* = JH K=JH J J J 个轨迹段组成。
    在这里插入图片描述
  • 遵循 Decision Transformer 的结构,我们利用具有线性层的 GPT 模型来获取标记嵌入,并将相同的位置嵌入添加到对应于相同时间步长的标记中。
    在这里插入图片描述

4.4 算法

  • 我们在算法 1 和算法 3 中总结了 Prompt-DT 的训练和测试算法。
    在这里插入图片描述
    在这里插入图片描述
  • 在训练期间,Prompt-DT 最大限度地减少预测动作与提示和最近历史数据中的动作之间的误差。 通过学习存储在轨迹提示中的目标动作,Prompt-DT 被激励提取存储在轨迹提示中的特定于任务的信息,并将其与最近的历史记录相结合以预测未来的动作。 在连续设置中,Prompt-DT 通过梯度下降最小化均方损失。 在每个训练步骤中,我们对包含每个训练任务的提示历史对的批次 B B B 进行采样。 我们的批次 B B B 不是使用从一个训练任务中采样的数据批次迭代地进行梯度更新,而是通过聚合 T t r a i n T^{train} Ttrain 中所有任务的梯度估计来帮助稳定训练。
  • 在测试时,我们假设离线预训练的 Prompt DT 可以针对 T t e s t T^{test} Ttest 中的每个评估任务与模拟器进行交互。 这种在线评估假设类似于训练有素的 RL 代理的实际部署。 我们基于演示集 P i P_i Pi 采样随机轨迹提示,用于类似于训练过程的任务 T i ∈ T t e s t T_i ∈ T^{test} TiTtest。 Prompt DT 然后生成将提示和最近的上下文作为输入的操作。 在每一集的开始,我们用全零初始化最近的历史 τ τ τ 用于 Prompt-DT 预测,并用流式收集的数据更新它。

实验

  • 我们进行实验来测试所提出的 Prompt-DT 的小样本泛化能力,并将度量作为情节累积奖励。 我们的目标是根据经验回答以下问题:1)Prompt-DT 能否实现少镜头策略泛化? 2)提示的数量和质量如何影响小样本泛化能力? 3)Prompt-DT 是否泛化到分布外的任务?

## 5.1 环境和数据集

  • 我们评估了如下描述的五个元强化学习控制任务(Finn 等人,2017a;Rothfuss 等人,2018;Mitchell 等人,2021;Yu 等人,2020a;Todorov 等人,2012) .
  • Cheetah-dir。 Cheetah-dir 中有两个任务,目标方向分别为向前和向后。 猎豹智能体沿着目标方向获得高速奖励。 训练集和测试集是相等的,都包含两个任务。
  • Cheetah-vel。 Cheetah-vel 中有 40 个目标速度不同的任务。 目标速度从区间 [0,3] 中统一采样。 代理因目标速度的 l2 错误而受到惩罚。 我们拿出 5 个任务来构建测试集,并用剩下的 35 个任务进行训练。
  • Ant-dir。 Ant-dir 中有 50 个不同目标方向的任务在二维空间中统一采样。 8 关节蚂蚁沿目标方向获得高速奖励。 我们抽取 5 个任务进行测试,其余的用于训练。
  • Dial。 在 Dial 中,任务是控制一个 6-DOF Jaco
    机器人到达位于数字键盘中的目标号码。 一共有10个数字,对应10个任务。 我们训练 6 个任务并测试 4 个任务。 Dial 比 Meta-World reach-v2 更复杂,因为它直接控制 6 个关节。
  • Meta-World reach-v2。 在 Meta-World reach-v2 中,任务是控制 Sawyer 机器人的末端执行器到达 3D 空间中的目标位置。 代理直接控制末端执行器的 XYZ 位置。 每个任务都有不同的目标位置。 我们训练 15 个任务并测试 5 个任务。
  • Cheetah-dir、Cheetah-vel 和 Ant-dir 中的实验严格遵循 Mitchell et al(2021) 中的数据集和设置。 所有三个任务中的代理都受到大控制信号的惩罚。 Cheetah-dir 和 Ant-dir 的数据集包含用于使用 Soft Actor Critic 训练 RL 代理的完整回放缓冲区(Haarnoja 等人,2018)。 Cheetah vel 的数据集包含使用 TD3 (Fujimoto et al., 2018) 训练的回放缓冲区,以提高训练稳定性。 在 Meta-World reach-v2 (Yu et al., 2020a) 和 Dial (Shiarlis et al., 2018) 中,我们使用两种环境中提供的脚本专家策略收集专家轨迹。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/47143.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RationalDMIS2022车削件(轴类)测量:回转体检测

1.坐标系知识 在三坐标测量机的使用中,坐标系的建立是最为关键的一步,是工件测量的基本依据。设备在组装本身中有着XYZ三个互相垂直的坐标轴,因此坐标系的建立便是通过以工件上的特征作为依据建立XYZ三个互相垂直的坐标轴与设备的坐标轴进行对应,从而使程序得以运行。 物…

虚拟机安装

虚拟机安装 能看到这里说明你的电脑中已经安装的有虚拟机了,如果没有虚拟机可以先下载安装一些虚拟机。 有了虚拟机后首先要准备的就是镜像,我用的是CentOS-7。如果没有的也可以百度或者去阿里云下载即可。 选择下载以ISO结尾的文件,可选类型…

SLAM学习笔记(二)

5.相机与图像 相机将三维世界中的坐标点(单位米)映射到二维图像平面(单位为像素)的过程中能够用一个几何模型进行描述。 单目相机(Mono)的成像过程: 1、世界坐标系下有个固定的点P,世界坐标为 2、由于相…

关于quartus 13.1出现的问题的一些总结

1,如果IP核的版本与当前的quartus ii版本不一致的情况,有时候虽然能编译成功,但是无法修改原有工程的IP核参数设置。 如: 之前我下载的工程用到的NCO IP核是12.1 version的,但是我用到的quartus 版本是13.0和13.1&am…

led灯什么牌子的质量好?2022双十二家用护眼台灯推荐

台灯作为一种晚上或者其他黑暗条件下的照明灯具,对于经常熬夜的人群来说可以说是必备工具了,无论是看书、写字,还是工作、学习,都非常实用,它不同于平常的家用的室内照明顶灯,光线不会那么刺眼,…

uni-app入门:小程序UI组件Vant Weapp

1.vant介绍 2.安装步骤 2.1 通过 npm 安装 2.2 修改 app.json 2.3 修改 project.config.json 2.4 构建 npm 包 3.使用说明 1.vant介绍Vant Weapp 是一个轻量、可靠的移动端组件库,于 2017 年开源,是由有赞前端团队开…

Mysql 安装与卸载

MySQL8.0.26-Linux版安装 文章目录MySQL8.0.26-Linux版安装1. 安装1.1 准备一台Linux服务器1.2. 下载Linux版MySQL安装包1.3. 上传MySQL安装包1.4. 创建目录,并解压1.5. 安装mysql的安装包1.6. 启动MySQL服务1.7. 查询自动生成的root用户密码1.8. 修改root用户密码1.9. 创建用户…

【FRP】群晖docker中部署Frp

2022-08-24 by 崔斐然 0:需求 公司有台笔记本,现在疫情期间居家办公。我用的MacBook RDP客户端做的非常好用,如相互粘贴文件、文字等,MacBook通过远程桌面连接公司内网电脑会比较方便,时延和体验感远优于向日葵。之前…

java成神之路-基础篇 (搞定java基础看这一篇就够用)

java成神之路-基础篇 文章目录java成神之路-基础篇[toc]01面向对象**→ 什么是面向对象**→ 平台无关性→ 值传递1、什么是[值传递](https://so.csdn.net/so/search?q值传递&spm1001.2101.3001.7020),什么是引用传递?2.值传递和[引用传递](https://…

23软考备考已开始,网络工程师知识点速记~

新一轮软考备考来啦~ 为了帮助大家提高备考效率,将2023上半年软考网络工程师知识点速记分享给大家,快来跟着一起打卡学习吧! 进制的转换 数据的表示方法有二进制、八进制、十进制和十六进制等。网络工程师考试要求重点掌握这四种进制之间的…

mysql基础知识篇(六)

1.如何分库? 垂直分库:以表为依据,按照业务归属不同,将不同的表拆分到不同的库中。 水平分库:以字段为依据,按照一定策略(hash、range 等),将一个库中的数据拆分到多个库…

线代 | 【提神醒脑】自用笔记串联三 —— 相似对角化 · 二次型 · 合同变换

本文总结参考于 kira 2023 线代提神醒脑技巧班。 笔记均为自用整理。加油!ヾ(◍∇◍)ノ゙ 九、相似对角化 9.1、矩阵相似的性质 ----------------------------------------------------------------------------------------------------------…

Linux 网络编程项目 —— FTP 网盘

文章目录项目简介知识点描述项目功能指令远程功能指令本地功能指令使用的关键函数access 函数popen 函数chdir 函数strtok 函数strncmp 函数linux system函数是否执行成功判断方法基本流程服务端客户端FTP代码实例头文件 ftp.h客户端 client.c服务端 server.cV2.0版 – 启用副服…

如何实现虹科物联网HMI/网关的调度器功能?

一、前言 JMobile软件提供了一个调度器引擎,通过设定的时间计划表自动执行特定动作,从而赋予HMI/网关调度器功能,减少现场操作人员的工作压力。本文主要介绍如何实现JMobile软件的调度器功能。 二、工具 1. Windows PC 2. JMobile Studio…

《论文阅读》DeepSFM: Structure From Motion Via Deep Bundle Adjustment

留个笔记自用 DeepSFM: Structure From Motion Via Deep Bundle Adjustment 做什么 首先是最基础的,Structure-from-Motion(SFM),SFM可以简单翻译成运动估计,是一种基于dui8序列图片进行三维重建的算法。简单来说就…

C++11(三)可变模板参数、lambda表达式、包装器

🧸🧸🧸各位大佬大家好,我是猪皮兄弟🧸🧸🧸 文章目录一、可变模板参数1.通过递归推导参数包2.通过列表初始化推导参数包二、emplace三、lambda表达式1.lambda表达式语法2.使用lambda3.捕捉列表说…

phpstorm+wamp在线调试wordpress

简介 本文源自公司内部使用wordpress搭建了一套官网,经常有定制化的需求,有些插件实现不了,需要通过phpstorm调试的方式熟悉wordpress,同时修改php代码,本地测试环境window,适合用wamp作为php运行环境&…

解放你的双手----WIN7设置自动化任务

近期在使用双屏工具DualMonitor的时候遇到一个问题,每次电脑锁屏超过一定时常之后,登录解锁该软件虽然在运行但是功能失效了,需要手动关闭打开该程序,一时也没找到有效的解决方法和替代软件,于是就想着能不能在我登录解…

数据存储——存储图像

图像数字化(一)图像数字化1.图像采样2.数字图像的技术指标3.编码(三)数字图像的分类1.光栅图2.矢量图总结:图像数字化的过程(一)图像数字化 按一定空间间隔,自左至右,自…

面试系列Spring:SpringMVC的工作流程

核心组件: DispatcherServlet:前端控制器,负责调度其他模块执行,核心模块 Handler:处理器,完成具体的业务逻辑,相当于Servlet HandlerMapping:处理器映射器,DispatcherSe…