当前位置: 首页 > news >正文

【Reinforcement Learning For Quadruped Control】2

奖励函数。奖励函数是状态和动作的函数 r t ( s t , a t , s t + 1 ) r_t(s_t, a_t, s_{t+1}) rt(st,at,st+1),是强化学习(RL)算法的驱动力。在四足机器人等复杂系统的背景下,奖励可能是速度偏差与期望速度的差异、关节扭矩值与电机扭矩限制的符合度、机器人能耗以及与自身或地面的碰撞等因素。手工设计有效的奖励函数是具有挑战性的,因为它们对超参数非常敏感。手工设计的奖励函数需要大量的领域知识和精细的调整。不充分的奖励函数可能导致不良行为,而过度的奖励函数可能使超参数优化变得复杂。其他可能妨碍学习过程并导致次优策略的情况包括稀疏奖励;其中奖励通常仅在实现最终目标时获得,而不是通过中间奖励来指导策略;奖励操控;如果奖励函数设计不当,策略可能导致剥削行为和意外行为;以及奖励不确定性;这种情况可能由于信息不完整或环境的随机性而产生。

四足运动的奖励函数通常包括诸如期望朝向、期望速度、基座方向、基座速度、关节扭矩、关节速度、足部接触状态和足部速度等因素。这些因素依赖于控制器的任务及其期望的结果。通过惩罚过度的接触力和碰撞等负奖励,进一步完善奖励函数,以提高能效并实现自然的运动。也可以将风格特定的元素纳入奖励函数中,鼓励特定行为,抑制不希望出现的动作,并提高准确性。

最近的研究探索了奖励函数的分解(参见公式(2)),将任务( r t t a s k r_t^{task} rttask)和风格( r t s t y l e r_t^{style} rtstyle)奖励组件分开。虽然这种方法可以有效地将任务完成与风格考虑分开,但它引入了训练风格评估判别器的挑战。

r t = r t t a s k + r t s t y l e (2) r_t = r_t^{task} + r_t^{style} \ \ \ \ \ \ \text{(2)} rt=rttask+rtstyle      (2)

类似于生成对抗网络,在这种背景下,判别器的训练可能会因为数据稀缺、模型崩溃、梯度消失和超参数敏感性等问题而变得困难。此外,任务奖励和风格奖励之间的冲突可能会妨碍训练,甚至导致类似模型崩溃的效果。为了解决这一问题,需要谨慎的训练策略,例如,首先只关注任务奖励或风格奖励,直到策略充分收敛,然后再引入其他元素。
Rudin et al. (2022a); Hoeller et al. (2024) 通过实验使用了一种包含最终位置跟踪的奖励函数,而不是通常使用的速度跟踪。这个方法得到了一个有趣的策略,既能提高能效,又能学习更复杂的机动动作。代理并不严格保持设定的速度,而是通过优先考虑最终位置而非速度,来适应复杂地形,从而调节其速度以确保稳定性。
另一种有效的技术是使用课程奖励,通过单调增加或减少的奖励,或根据训练进展或特定条件动态调整奖励函数来定义课程奖励。适应不断变化的奖励结构能提高样本效率。

仿真平台。在深度强化学习(DRL)领域,仿真器占据了关键角色。这导致了一个常见的误解,即强化学习本质上需要模型来进行训练,尽管有相反的说法。虽然可以使用无模型的强化学习策略来训练现实世界的机器人,但这种方法通常不切实际,尤其是对于复杂且昂贵的机器人,如四足机器人。利用高保真度仿真器来训练代理可以显著加速训练过程。仿真平台可以实现更快速、更可扩展、低成本的数据收集。MuJoCo、Raisim 和 PyBullet是四足运动领域常用的仿真平台。尽管这些仿真器相对简单,但在将策略转移到现实环境时,它们的精度可能不那么可靠。尽管MuJoCo是一个流行的DRL验证平台,但在四足机器人控制器策略学习中使用较少。相比之下,Raisim和PyBullet已获得广泛采用。Isaac Gym ,专为DRL应用设计,因其GPU能力和先进的物理仿真而近期获得关注。这些先进的高保真度仿真器对促进开发算法的仿真到现实转移具有不可估量的价值。因此,Raisim和PyBullet通常用于机器人仿真,而Isaac Gym主要专注于基于DRL的控制策略开发。然而,Dreamer世界模型,一种基于模型的强化学习技术,已应用于现实世界的四足机器人,而无需使用仿真器或示范来训练运动控制器。

在仿真中学习的策略通常无法有效地推广到现实世界的场景中,原因是领域不匹配和模型误差。这也被称为仿真器的现实差距reality gap。为了减少这一现实差距,需要采用领域随机化和领域适应等技术,以使代理能够适应现实世界的环境或任务,而不需要在仿真环境中经过广泛的重新训练。

领域随机化是在训练期间,训练环境的动态或机器人测量参数会发生变化)。通过这种方式,领域随机化鼓励机器人策略学习在各种环境参数和测量下有效的策略,例如机器人质量、腿长、驱动参数、重力、摩擦力、光照、纹理、传感器噪声等的变化。当对领域参数的不确定性没有先验知识时,领域随机化特别有用,但这可能会增加额外的训练时间和复杂性,并且需要专家知识来决定适当的随机化范围。过度随机化可能导致次优策略或不收敛。

领域适应的目标是通过在现实世界中对策略进行微调,或通过使用现实世界的数据在仿真中适应训练好的策略,从而最小化仿真和现实世界之间的差距。这可以通过使用基于重建的方法或不变特征生成方法来完成。在基于重建的方法中,必要的组件通过模型进行重建,策略在重建模型上进行训练。虽然方法类似,但在不变特征生成方法中,编码发生在输入数据中,以生成领域不变特征,策略在这些特征上进行训练。这些方法需要一些现实世界的数据来精炼策略。如果新领域与初始训练数据的概率分布高度不同,那么策略在仿真中适应就变得具有挑战性。

课程学习
受人类学习启发,课程学习涉及逐步增加任务或环境的复杂性。通过从较简单的任务开始,代理可以更高效地学习并为更复杂的任务做好准备。课程学习由几个关键技术定义。其中一项技术是任务排序,其中任务的难度逐渐增加,从简单的任务开始。另一项技术是经验策划,它有助于缓解遗忘效应。此外,还使用降级技术,在某些任务表现不佳的agent会被降级到较低的水平。设计有效的课程需要一定的专家知识,因为它可能是定义代理性能的关键因素。此外,这种方法也存在过度拟合早期任务的潜在风险。

层次学习
在这种方法中,任务被划分为子层次,例如较高和较低层次,每个层次单独训练。通常,由于强化学习(RL)策略在数据驱动能力上的优势,它们被用作层次结构中的较高层次控制器,以有效地管理复杂的决策过程并适应动态环境。它生成子目标指令,随后由低级控制器执行。在一些研究中,这些子目标是低级控制器用来学习控制策略的潜在空间嵌入。这种方法使agent能够学习与输入分布无关的策略,从而提高了agent学习zero-shot策略的能力。通过将最终目标分解为更易管理的子目标,策略的样本效率可以得到提高。然而,子目标的组合可能导致次优的最终策略。因此,在设计和分解子目标时需要专家知识。

端到端控制
在端到端控制中,RL策略直接将传感器输入映射到输出的关节角度,其中输入可以是复杂的传感器数据,如像素和体素,也可以是简单的传感器数据,如IMU、关节角度和期望的基座速度。这种方法消除了中间设计步骤的需求,如显式的状态估计或规划,从而减少了对机器人控制器设计阶段专家领域知识的要求。这些控制器能够学习广泛的控制方法,因为策略是在完整的解决空间中直接训练的。然而,由于神经网络的黑箱性质,这限制了控制器的可解释性,进而限制了它们在安全关键场景中的应用。尽管存在开发可解释的深度神经网络(DNN)模型的技术,但它们在四足运动应用中的使用仍然有限。在端到端控制中,DNN架构的开发是针对要解决的任务量身定制的,因此无法泛化到其他任务。此外,训练所需的适当RL优化算法的选择,以及策略的输入输出选择,必须仔细决定。

模仿学习
通过专家示范学习可以提供一个强有力的初始策略,减少训练初期所需的探索量,从而得出一个相对较好的策略。这些策略通常利用运动跟踪,其中控制器通过行为克隆、逆向强化学习(IRL)或生成对抗技术跟踪目标姿势的期望轨迹。与RL相结合,模仿学习在产生复杂行为方面已显示出其有效性。主要挑战是防止策略过度依赖模仿数据集。为了解决这一问题,可以采用数据增强、课程学习和探索技术等方法。

师生策略学习
师生策略学习解决了现实世界中噪声或不可靠传感器数据带来的挑战。教师策略配备了包括环境真实信息(如摩擦系数和非遮挡高度图)在内的特权信息,可以在仿真中学习最优策略。这些特权信息有时仅在仿真环境中可用。相比之下,学生策略缺乏这些特权信息,仅依赖于噪声传感器数据。使用师生策略的一种常见方法是让教师策略学习控制,并使用特权数据在观察和动作之间创建信念状态。在训练学生策略时,它学习模仿教师策略,并在不使用特权数据的情况下生成这些信念状态。这种方法可以提高训练效率,并实现zero-shot仿真到现实的转移,处理现实世界中的噪声传感器数据。

元学习Meta-Learning
元学习,又称“学习的学习”(Learning to Learn),是训练能够快速适应新任务或新环境的代理的过程,代理通过学习如何更快、更高效地学习来实现这一点。结合强化学习(RL),代理可以学习智能地探索和学习正确的特征,使其在训练后将策略部署到不同环境中时,通过利用先前的学习经验,能够快速适应该领域。结合RL的元学习是一种新兴技术,具有较高的样本效率。

比如你正在训练一个服务型机器人,在一个家庭环境中完成三个任务:

  • 开门(Open the door)
  • 关灯(Turn off the light)
  • 倒水(Pour water into a cup)

训练过程中,机器人反复接触多种任务(如开门、关灯、倒水、关窗、扭旋钮等),元学习算法(比如 MAML 或 RL²)试图从这些任务中学习一个共享的任务适应机制。
训练后的元策略具备这样的能力:
在遇到“开冰箱门”这种没见过但结构类似的新任务时,能够通过1~2次尝试快速适应;
不再需要从随机动作开始探索,而是能利用已有的“开门”技能快速转移;

学习到的知识是关于“开合结构的交互方式”,而不是“特定门的打开方法”。
离线强化学习
离线强化学习方法也叫“批量强化学习(Batch RL)”,利用预先收集的数据来训练RL代理,而无需与环境进行交互。通过离线RL,RL可以应用于那些传统上看起来不像RL问题的领域,在这些领域中,探索、试错是极其危险的。离线RL可以在强大的硬件上训练大量数据。然而,这也存在标准RL中采样误差和函数逼近误差的根本问题,但由于训练的性质,这些误差可能更加严重。通常,在这种方法中,数据的时间确定性特性被忽略。

参考资料
来源网络,仅供学习使用
如有侵权,联系删除

相关文章:

【Reinforcement Learning For Quadruped Control】2

奖励函数。奖励函数是状态和动作的函数 r t ( s t , a t , s t 1 ) r_t(s_t, a_t, s_{t1}) rt​(st​,at​,st1​),是强化学习(RL)算法的驱动力。在四足机器人等复杂系统的背景下,奖励可能是速度偏差与期望速度的差异、关节扭矩值…...

Windows启动总是卡在LOGO画面有哪些原因

1. 硬件问题 硬盘故障(HDD/SSD):坏道、损坏或接口松动。 内存故障:内存条接触不良或损坏。 外设冲突:U盘、移动硬盘、打印机等外接设备导致系统无法正常启动。 2. 系统文件损坏 Windows 关键文件丢失或损坏&#x…...

4月11日随笔

本来以为大风会很厉害,本来今天早八的微积分不想去了。但是起床发现并没有很大的风,还是去了。 中午回来的路上突然变天,雷阵雨转冰雹。下了大概半小时,所幸挨淋的不是很严重。 中午打了首胜,AI的基本弄完了&#xf…...

蓝桥杯 — — 接龙数列

蓝桥杯 — — 接龙数列 接龙数列 题源:0接龙数列 - 蓝桥云课 题目: 输入样例: 5 11 121 22 12 2023输出样例: 1分析: 首先观察评测用例规模, N N N 最大为 1 0 5 10^5 105,因此时间复杂度应…...

链式多分支规则树模型的应用

目录 引入 开始调用 初始化 执行流程 欢迎关注我的博客!26届java选手,一起加油💘💦👨‍🎓😄😂 引入 最近在学习一个项目中的链式多分枝规则树模型的使用,模型如下&#…...

【后端开发】初识Spring IoC与SpringDI、图书管理系统

文章目录 图书管理系统用户登录需求分析接口定义前端页面代码服务器代码 图书列表展示需求分析接口定义前端页面部分代码服务器代码Controller层service层Dao层modle层 Spring IoC定义传统程序开发解决方案IoC优势 Spring DIIoC &DI使用主要注解 Spring IoC详解bean的存储五…...

VMware虚拟机Ubuntu磁盘扩容

VMware中操作: 选择要扩容的虚拟机,点击编辑虚拟机设置 打开后点击磁盘——>点击扩展(注意:如果想要扩容的话需要删除快照) 调整到你想要的容量 点击上图的扩展——>确定 然后我们进到虚拟机里面 首先&#…...

嵌入式MCU常用模块

日后填坑。 无线通信模块 NRF24L01 基本介绍 使用方法 示例代码 蓝牙模块 基本介绍 使用方法 示例代码 WIFI模块 基本介绍 使用方法 示例代码 红外遥控模块 基本介绍 使用方法 示例代码 有线通信模块 can模块 基本介绍 使用方法 示例代码 传感器模块 DHT11模块 基本介绍 使用方…...

算法 模版

cin cout加快读取速度&#xff1a; ios::sync_with_stdio(false); 高精度*高精度 vector<int> mul(vector<int>& a, vector<int>& b) {vector<int>c(b.size()a.size()5,0);for (int i 0; i < a.size(); i) {for (int j 0; j < b.si…...

C++指针(三)

个人主页:PingdiGuo_guo 收录专栏&#xff1a;C干货专栏 文章目录 前言 1.字符指针 1.1字符指针的概念 1.2字符指针的用处 1.3字符指针的操作 1.3.1定义 1.3.2初始化 1.4字符指针使用注意事项 2.数组参数&#xff0c;指针参数 2.1数组参数 2.1.1数组参数的概念 2.1…...

二分查找4:35. 搜索插入位置

链接&#xff1a;35. 搜索插入位置 - 力扣&#xff08;LeetCode&#xff09; 题解&#xff1a; 本题是最基础的二分查找算法 class Solution { public:int searchInsert(vector<int>& nums, int target) {int left0;int rightnums.size()-1;int midleft(right-lef…...

数据可视化 —— 多边图应用(大全)

一、介绍&#xff1a; 多边形图&#xff0c;也就是在数据可视化中使用多边形来呈现数据的图表&#xff0c;在多个领域都有广泛的应用场景&#xff0c;以下为你详细介绍&#xff1a; 金融领域 投资组合分析&#xff1a;在投资组合管理中&#xff0c;多边形图可用于展示不同资…...

服务器加空间失败 growpart /dev/vda 1

[rootecm-2c5 ~]# growpart /dev/vda 1 unexpected output in sfdisk --version [sfdisk&#xff0c;来自 util-linux 2.23.2] [rootecm-2c5 ~]# xfs_info /dev/vda1 meta-data/dev/vda1 isize512 agcount21, agsize1310656 blks sectsz512 attr2, projid32bit1 crc1 finobt0…...

tree-sitter的grammar.js解惑

❓问题1&#xff1a;grammar.js 不是用正则表达式 /.../ 吗&#xff1f;为什么有 print 这样的字符串&#xff1f; ✅ 回答&#xff1a; grammar.js 分成两类“终结符”表示法&#xff1a; 表达方式含义xxx直接匹配该字符串字面量/regex/匹配符合正则的文本 &#x1f4a1; …...

前端-Vue3

1. Vue3简介 2020年9月18日&#xff0c;Vue.js发布版3.0版本&#xff0c;代号&#xff1a;One Piece&#xff08;n 经历了&#xff1a;4800次提交、40个RFC、600次PR、300贡献者 官方发版地址&#xff1a;Release v3.0.0 One Piece vuejs/core 截止2023年10月&#xff0c;最…...

【毕设通关】——文献查阅

目录 &#x1f552; 1. 常见文献库&#x1f552; 2. 快速寻找文献&#x1f552; 3. 引用网页资料 &#x1f552; 1. 常见文献库 中文文献&#xff1a; CNKI中国知网万方数据维普资讯超星期刊 英文文献&#xff1a; 谷歌学术Sci-hubOALib&#xff08;Open Access Library&am…...

贪心算法-跳跃游戏

55.跳跃游戏 给你一个非负整数数组 nums &#xff0c;你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标&#xff0c;如果可以&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。输入&#xf…...

程序化广告行业(75/89):行业发展与PC端和移动端投放差异

程序化广告行业&#xff08;75/89&#xff09;&#xff1a;行业发展与PC端和移动端投放差异 在互联网广告领域&#xff0c;程序化广告正发挥着越来越重要的作用。今天&#xff0c;咱们就来一起深入了解一下程序化广告行业&#xff0c;希望能和大家一起学习进步&#xff0c;共同…...

Windows 下搭建 Git 本地服务器并进行开发

目录 1. 安装 Git for Windows 2. 创建本地 Git 仓库&#xff08;裸仓库&#xff09; 3. 设置本地开发环境 (1) 在开发机器上克隆仓库 (2) 提交代码 4. 远程访问本地 Git 服务器 方法 1&#xff1a;使用 SSH 访问 (1) 配置 SSH 服务器 (2) 客户端连接 方法 2&#xf…...

C++中stack函数的用法示例

C++中stack函数的用法示例 std::stack 是C++标准模板库(STL)中的一个容器适配器,它提供了后进先出(LIFO)的数据结构。以下是stack的一些常用函数及其用法示例: 1. 基本操作 #include <iostream> #include <stack>int main() {// 创建一个整数栈std::stack<…...

网络安全1

一、网络安全的定义与重要性 定义 网络安全&#xff08;信息技术安全&#xff09;&#xff1a;保护计算机系统和网络免受电子攻击的技术和过程&#xff0c;包括保护个人信息和企业数据不被盗窃、破坏或非法访问。涵盖范围&#xff1a;网络设备、数据传输、系统运行安全。 重要…...

腾讯会议for flatpak

今天想切换opensuse&#xff0c;无意间查询了腾讯会议等软件的下载方式&#xff0c;发现腾讯会议是deb包安装的。但是过程中&#xff0c;我发现flatpak仓库中居然有腾讯会议&#xff0c;然后尝试着在wayland下的debian12中进行了安装。 发现居然可以正常开启视频等操作。 下载…...

【C++初学】C++核心编程技术详解(二):类与继承

函数提高 3.1 函数默认参数 函数的形参可以有默认值&#xff0c;调用时可以省略这些参数。 示例代码&#xff1a; int func(int a, int b 10, int c 10) {return a b c; }int main() {cout << "ret " << func(20, 20) << endl;cout <<…...

紧急任务插入,如何不影响原计划

面对紧急任务插入&#xff0c;为确保不影响原计划&#xff0c;需要做到&#xff1a;重新明确任务优先级、合理调整资源配置、灵活管理时间和任务、建立紧急任务处理流程、有效沟通与反馈。其中&#xff0c;重新明确任务优先级最为关键。这可以帮助项目团队快速确定哪些任务需立…...

蓝桥杯赛前题

开始每个人能量为3 答题了&#xff0c;答题者1 扣分最后算 #include<bits/stdc.h> using namespace std;const int N1e510; int a[N]; int main(){int n,k,q;cin>>n>>k>>q;for(int i1;i<n;i){a[i]k; }for(int i1;i<q;i){int x;cin>>x;a[…...

ETL的核心概念与价值

在数字化转型的浪潮中&#xff0c;数据已成为企业决策的基石。然而&#xff0c;面对分散、异构且质量参差不齐的数据源&#xff0c;如何高效整合并挖掘其价值&#xff1f;这一问题的答案&#xff0c;指向了一项关键的技术——ETL&#xff08;Extract-Transform-Load&#xff09…...

神经动力学系统与计算及AI拓展

大脑&#xff0c;一个蕴藏在我们颅骨之内的宇宙&#xff0c;以活动脉动&#xff0c;如同由电信号和化学信号编织而成的交响乐&#xff0c;精巧地协调着思想、情感和行为。但是&#xff0c;这种复杂的神经元舞蹈是如何产生我们丰富多彩的精神生活的呢&#xff1f;这正是神经动力…...

力扣DAY46-50 | 热100 | 二叉树:展开为链表、pre+inorder构建、路径总和、最近公共祖先、最大路径和

前言 中等 、困难 √&#xff0c;越来越有手感了&#xff0c;二叉树done&#xff01; 二叉树展开为链表 我的题解 前序遍历树&#xff0c;当遇到左子树为空时&#xff0c;栈里pop节点&#xff0c;取右子树接到左子树位置&#xff0c;同时断开该右子树与父节点的连接&#x…...

备赛蓝桥杯-Python-考前突击

额&#xff0c;&#xff0c;离蓝桥杯开赛还有十个小时&#xff0c;最近因为考研复习节奏的问题&#xff0c;把蓝桥杯的优先级后置了&#xff0c;突然才想起来还有一个蓝桥杯呢。。 到目前为止python基本语法熟练了&#xff0c;再补充一些常用函数供明天考前再背背&#xff0c;算…...

蓝桥杯 Web 方向入门指南:从基础到实战

一、蓝桥杯 Web 方向简介 蓝桥杯是国内最具影响力的编程竞赛之一&#xff0c;Web 方向主要考察前端开发和后端服务能力。比赛形式为 4 小时限时编程&#xff0c;题型包括页面布局、数据交互、API 开发等。根据最新大纲&#xff0c;大学组需掌握 HTML5、CSS3、JavaScript、Vue.…...

生命篇---心肺复苏、AED除颤仪使用、海姆立克急救法、常见情况急救简介

生命篇—心肺复苏、AED除颤仪使用、海姆立克急救法、常见情况急救简介 文章目录 生命篇---心肺复苏、AED除颤仪使用、海姆立克急救法、常见情况急救简介一、前言二、急救1、心肺复苏&#xff08;CPR&#xff09;&#xff08;1&#xff09;适用情况&#xff08;2&#xff09;操作…...

C++Cherno 学习笔记day19 [76]-[80] std::optional、variant、any

b站Cherno的课[76]-[80] 一、如何处理OPTIONAL数据 std::optional二、单一变量存放多类型的数据 std::variant三、如何存储任意类型的数据 std::any四、如何让C运行得更快五、如何让C字符串更快 一、如何处理OPTIONAL数据 std::optional std::optional C17 数据是否存在是可选…...

【Python Requests 库详解】

目录 简介一、安装与导入安装导入 二、发送 HTTP 请求1. GET 请求基本请求URL 参数 2. POST 请求表单数据提交JSON 数据提交文件上传 3. 其他方法PUT 请求示例DELETE 请求示例 三、处理响应1. 响应内容解析文本内容处理二进制内容处理JSON 数据处理 2. 响应状态与头信息状态码检…...

二维偏序-蓝桥20102,没写完

代码&#xff1a; 暴力&#xff1a;只过了35%,双重for循环o(n^2)1e10; #include <iostream> #include <bits/stdc.h> using namespace std; const int N1e910; typedef long long LL; typedef pair<int,int> PII;int main() {// 请在此输入您的代码//相当于…...

ASEG的鉴定

等位基因特异性表达(Allele-Specific Expression, ASE)基因的鉴定是研究杂种优势和基因表达调控的重要手段。以下是鉴定ASE基因的详细流程和方法: ### **1. 实验设计与样本准备** - **选择材料**:选择杂交种及其亲本作为研究材料。例如,玉米中的B73和Mo17及其杂交组合B73…...

从零开始:在 GrapesJS Style Manager 中新增 row-gap 和 column-gap

在前端开发中&#xff0c;页面样式的灵活性和可扩展性至关重要。GrapesJS 作为一个强大的网页构建工具&#xff0c;其内置的 Style Manager 提供了常见的 CSS 样式的可视化设置&#xff0c;极大地方便了开发者和设计师。然而&#xff0c;随着项目需求的不断变化&#xff0c;有些…...

解决双系统ubuntu24.04开机出现花屏等情况

1. 问题描述&#xff1a; 刚刚装上的双系统ubuntu24.04开机就出现花屏情况 2. 解决方案 安装显卡驱动 查看显卡型号 查看显卡硬件支持的驱动类型 ubuntu-drivers devices如果输入没有反映&#xff0c;请更新软件源&#xff0c;或者换官方软件源 sudo add-apt-repository…...

基于SpringBoot的智慧社区管理系统(源码+数据库)

499基于SpringBoot的智慧社区管理系统&#xff0c;系统包含三种角色&#xff1a;管理员、用户主要功能如下。 【用户功能】 1. 首页&#xff1a;查看系统。 2. 超市商品&#xff1a;浏览超市中各类商品信息。 3. 动物信息&#xff1a;了解社区内的动物种类和相关信息。 4. 车位…...

通俗理解CLIP模型如何实现图搜图乃至文搜图

一、图搜图与文搜图 图搜图和文搜图的场景相信大家并不少见&#xff0c;比如度娘的搜索框就可以直接上传图片找到相似的图片&#xff0c;还有某宝某团都有这种上传图片匹配到相似商品或者商品页的推荐的功能。那比如我想搜一张“正在跳舞的狗”的图片&#xff0c;是不是就能搜…...

谷歌最近放出大招——推出全新“Agent Development Kit(简称ADK)

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…...

std::string` 类

以下是对 std::string 类中 修改操作 和 字符串操作 的示例代码&#xff0c;帮助你更好地理解这些函数的使用&#xff1a; 5. 修改操作 (1) operator 用于追加字符串、C 风格字符串或字符。 #include <iostream> #include <string>int main() {std::string str …...

Sping Cloud配置和注册中心

1.Nacos实现原理了解吗&#xff1f; Nacos是注册中心&#xff0c;主要是帮助我们管理服务列表。Nacos的实现原理大概可以从下面三个方面来讲&#xff1a; 服务注册与发现&#xff1a;当一个服务实例启动时&#xff0c;它会向Nacos Server发送注册请求&#xff0c;将自己的信息…...

Java基础 - 泛型(常见用法)

文章目录 泛型类泛型方法泛型类派生子类示例 1&#xff1a;子类固定父类泛型类型&#xff08;StringBox 继承自 Box<String>&#xff09;示例 2&#xff1a;子类保留父类泛型类型&#xff08;AdvancedBox<T> 继承自 Box<T>)示例 3&#xff1a;添加子类自己的…...

待排序元素规模较小时,宜选取哪种排序算法效率最高

当待排序元素规模较小时&#xff0c;通常选择以下几种简单高效的排序算法&#xff0c;因为它们在小规模数据下具有更低的常数开销和良好的局部性表现&#xff1a; ✅ 插入排序&#xff08;Insertion Sort&#xff09; 推荐理由&#xff1a;在数据量小、数据部分有序的情况下&a…...

SAQ评级是什么,SAQ评级的意义?对企业发展好处

SAQ评级&#xff08;Supplier Audit Questionnaire&#xff0c;供应商审计问卷评级&#xff09;是供应链管理中常见的一种评估机制&#xff0c;主要用于对供应商的质量、合规性、风险管理能力等进行标准化审核和分级。它常见于汽车、电子、医药等对供应链要求严格的行业&#x…...

嵌入式---电机分类

一、按电流类型分类&#xff08;最基础分类&#xff09; 1. 直流电机&#xff08;DC Motor&#xff09; 工作原理&#xff1a;通过换向器&#xff08;有刷&#xff09;或电子换向&#xff08;无刷&#xff09;将直流电源转换为交变磁场&#xff0c;驱动转子旋转。 核心特点&a…...

定制一款国密浏览器(5):修改浏览器名称

在上一章中,我介绍了如何修改浏览器的 logo,这一章介绍修改浏览器的名称。 浏览器的名称是 AI 帮我想的,英文名 Mojo Browser,中文名墨舟浏览器。 第一步先修改 desktop 文件,desktop 文件支持多语言化,遵循 Freedesktop.org 制定的 Desktop Entry Specification 规范。…...

水库大坝安全监测系统

水库大坝安全监测系统是现代水利管理中至关重要的组成部分&#xff0c;是一种用于实时监控和评估大坝结构安全状况的技术系统&#xff0c;通过多种技术手段实现对水库大坝的全方位、全天候监测&#xff0c;旨在确保大坝的稳定性和安全性&#xff0c;预防潜在风险。 系统构成 …...

文件IO5(JPEG图像原理与应用)

JPEG图像原理与应用 ⦁ 基本概念 JPEG&#xff08;Joint Photographic Experts Group&#xff09;指的是联合图像专家组&#xff0c;是国际标准化组织ISO制订并于1992年发布的一种面向连续色调静止图像的压缩编码标准&#xff0c;所以也被称为JPEG标准。 同样&#xff0c;JP…...

开源Cursor替代品——Void

我原先写过很多关于Cursor文章。 今天分享一个开源的 Cursor 替代方案。 如果你也热爱开源项目,那么这篇文章正是为你准备的! 寻找开源替代的原因 我一直在思考:市面上这类产品层出不穷,但真正的核心技术似乎都依赖于大语言模型(LLM)。于是萌生了一个想法——何不自己…...