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

CarPlanner:用于自动驾驶大规模强化学习的一致性自回归轨迹规划

25年2月来自浙大和菜鸟网络的论文“CarPlanner: Consistent Auto-regressive Trajectory Planning for Large-scale Reinforcement Learning in Autonomous Driving”。

轨迹规划对于自动驾驶至关重要,可确保在复杂环境中安全高效地导航。虽然最近基于学习的方法,特别是强化学习 (RL),在特定场景中显示出良好的前景,但 RL 规划器在训练效率低下和管理大规模真实驾驶场景方面仍存在困难。本文介绍 CarPlanner,一种使用 RL 生成多模态轨迹的一致自回归规划器。自回归结构可实现高效的大规模 RL 训练,而一致性的结合可通过在时间步骤中保持一致的时间一致性来确保稳定的策略学习。此外,CarPlanner 采用具有专家指导的奖励函数和不变-视图模块的生成选择框架,简化 RL 训练并提高策略性能。

轨迹规划 [41] 在自动驾驶中至关重要,它利用感知和轨迹预测模块的输出来生成自车的未来姿态。控制器跟踪该规划轨迹,产生闭环驾驶的控制命令。最近,基于学习的轨迹规划备受关注,因其能够自动化算法迭代、消除繁琐的规则设计并确保各种现实场景中的安全性和舒适性 [41]。

大多数现有研究 [3, 13, 19, 34] 采用模仿学习 (IL) 来使规划轨迹与人类专家的轨迹保持一致。然而,这种方法存在分布漂移 [33] 和因果混淆 [10] 的问题。强化学习 (RL) 提供一种潜在的解决方案,它解决这些挑战并通过奖励函数提供更丰富的监督。尽管强化学习在游戏 [39]、机器人技术 [22] 和语言模型 [28] 等领域表现出有效性,但它在大规模驾驶任务中仍然存在训练效率低下和性能问题。

如图(a)所示,该种方法涉及生成初始轨迹估计,然后通过 RL 的迭代应用对其进行细化。然而,包括 Gen-Drive [21] 在内的最新研究表明,它仍然落后于最先进 IL 和基于规则的规划器。这种方法的一个显着限制是它忽略轨迹规划任务中固有的时间因果关系。此外,在高维轨迹空间上直接优化的复杂性可能会阻碍 RL 算法的性能。

自回归模型,如图 (b)所示,其使用过渡模型中的单步策略循环地生成自车的姿态。在此类方法中,所有时间步骤中的自车姿态被合并以形成整体规划轨迹。考虑到时间因果关系,当前的自回归模型允许交互行为。然而,一个常见的限制是它们依赖于从动作分布中进行自回归随机采样来生成多模态轨迹。这种普通的自回归程序可能会损害长期一致性,并不必要地扩大 RL 中的探索空间,从而导致性能不佳。

为了解决自回归模型的局限性,本文引入 CarPlanner,这是一种一致的自回归模型,旨在进行高效、大规模的基于 RL 规划器训练(见图 ©)。CarPlanner 的关键见解是它将一致的模式表示作为自回归模型的条件。

请添加图片描述

MDP 用于对顺序决策问题进行建模,其形式为一个元组 ⟨S, A, P, R, ρ_0, γ, T⟩。S 是状态空间。A 是动作空间。P 是状态转换概率。R 表示奖励函数,有界。ρ_0 是初始状态分布。T 是时间范围,γ 是未来奖励的折扣因子。状态-动作序列定义为 τ =(s_0,a_0,s_1,a_1,…,s_T),其中 s_t 和 a_t 是时间步骤 t 时的状态和动作。RL 的目标是最大化预期回报。

状态 s_t 包含矢量表示的地图和智体信息。地图信息 m 包括道路网络、交通信号灯等,用折线和多边形表示。智体信息包括自车和其他交通智体的当前和过去姿态,用折线表示。自车的智体索引为 0,交通智体的索引范围从 1 到 N。对于每个智体 i,其历史表示为 s^i_t−H:t,i ∈ {0,1,…,N},其中 H 是历史时间范围。

将轨迹规划任务建模为顺序决策过程,并将自回归模型分解为策略模型和转换模型。连接轨迹规划和自回归模型的关键,是将动作定义为自车的下一个姿态,即 a_t = s^0_t+1。因此,在推动自回归模型后,解码后的姿势被收集为自车规划的轨迹,状态序列进一步分解为策略模型和转换模型。这里典型的自回归方法带有固有的相关问题:跨时间的不一致行为源于策略分布,而策略分布取决于从动作分布中进行的随机抽样。

为了解决上述问题,在自回归方式中引入随时间步骤保持不变的一致性模式信息 c。由于专注于自车轨迹规划,因此一致性模式 c 不会影响转换模型。

这种一致性自回归方式揭示一个生成-选择框架,其中模式选择器根据初始状态 s_0 对每种模式进行评分,而轨迹生成器从模式条件策略中采样来生成多模态轨迹。

该转换模型需要在每个时间步中使用,因为它会根据当前状态 s_t 生成在时间步 t + 1 时的交通智体姿势。实际上,这个过程非常耗时,而且使用这种转换模型没有看到性能提升,因此,用轨迹预测器 P (s_1:T^1:N |s_0 ) 作为非反应性转换模型,该模型在给定初始状态 s_0 的情况下一次性生成交通智体的所有未来姿势。

规划器架构

CarPlanner 的框架如图所示,包含四个关键组件:1) 非反应式转换模型、2) 模式选择器、3) 轨迹生成器、和 4) 规则-增强选择器。规划器在生成-选择框架内运行。

请添加图片描述

给定初始状态 s_0 和所有可能的 N_mode 模式,轨迹选择器评估并为每种模式分配分数。然后,轨迹生成器生成与各自模式相对应的 N_mode 轨迹。

对于轨迹生成器,初始状态 s_0 被复制 N_mode 次,每次都与 N_mode 模式之一相关联,从而有效地创建 N_mode 平行世界。策略在这些模拟环境中执行。在策略展开期间,轨迹预测器充当状态转换模型,生成所有时间范围内交通智体的未来位置。

非反应式转换模型

该模块以初始状态 s_0 作为输入,输出交通智体的未来轨迹。初始状态由智体和地图编码器处理,然后由自注意 Transformer 编码器 [43] 融合智体和地图特征。然后将智体特征解码为未来轨迹。

智体和地图编码器。状态 s_0 包含地图和智体信息。地图信息 m 由 N_m,1 条折线和 N_m,2 个多边形组成。折线描述车道中心和车道边界,每条折线包含 3 N_p 个点,其中 3 对应车道中心、左边界和右边界。每个点的维度为 D_m = 9,并包含以下属性:x、y、航向、速度限制和类别。连接时,左边界和右边界的点与中心点一起产生 N_m,1 × N_p × 3 D_m 的维度。

利用 PointNet [30] 从每条折线的点中提取特征,得到 N_m,1 × D 的维数,其中 D 表示特征维数。多边形表示交叉路口、人行横道、停车线等,每个多边形包含 N_p 个点。利用另一个 PointNet 从每个多边形的点中提取特征,得到 N_m,2 × D 的维数。然后,将折线和多边形的特征连​​接起来形成整体地图特征,得到 N_m × D 的维数。智体信息 A 由 N 个智体组成,每个智体保持过去 H 个时间步长的姿势。每个姿势的维度为 D_a = 10,包括以下属性:x、y、航向、速度、边界框、时间步长和类别。因此,智体信息的维度为 N × H × D_a。应用另一个 PointNet 从每个智体的姿势中提取特征,故有 N × D 的智体特征维度。

模式选择器

该模块将 s_0 和纵向-横向分解模式信息作为输入,并输出每种模式的概率。

路线-速度的分解模式。为了捕捉纵向行为,生成 N_lon 模式,表示与每种模式相关的轨迹平均速度。每个纵向模式 c_lon,j 定义为 j 的标量值,在维度 D 上重复。因此,纵向模式的维数为 N_lon × D。对于横向行为,使用图搜索算法从地图中识别 N_lat 条可能的路线。这些路线对应于自车可用的车道。这些路线的维数为 N_lat × N_r × D_m。为了提取有意义的表示,用另一个 PointNet 来聚合每条路线上 N_r 个点的特征,从而生成维度为 N_lat ×D 的横向模式。为了创建全面的模式表示 c,结合横向和纵向模式,得到 N_lat × N_lon × 2D 的组合维度。为了将此模式信息与其他特征维度对齐,将其传递通过线性层,映射回 N_lat × N_lon × D。N_mode = N_lat × N_lon。

基于查询的 Transformer 解码器。此解码器用于将模式特征与从 s_0 派生的地图和智体特征融合。在此框架中,模式用作查询,而地图和智体信息用作K-V。更新后的模式特征通过多层感知器 (MLP) 解码以得出每个模式的分数,然后使用 softmax 运算符对其进行归一化。

轨迹生成器

该模块以自回归方式运行,在给定当前状态 s_t 和一致模式信息 c 的情况下,反复解码自身车辆的下一个姿势 a_t。

不变-视图模块 (IVM)。在将模式和状态输入网络之前,对它们进行预处理以消除时间信息。对于状态 s_t 中的地图和智体信息,选择自身当前姿势的 KNN [29],并仅将它们输入到策略中。K 分别设置为地图和智体元素的一半。对于捕捉横向行为的路线,过滤掉那些段,其最接近自身车辆当前姿势的点作为起点,保留 K_r 个点。在这种情况下,K_r 设置为一条路线中 N_r 个点的四分之一。最后,将路线、智体和地图姿势转换为当前时间步 t 的自车坐标系。从当前时间步长 t 中减去历史时间步长 t − H : t,得到范围为 −H : 0 的时间步长。

基于 Q 的 Transformer 解码器。采用与模式选择器相同的主干网络架构,但查询维度不同。由于 IVM 以及不同模式产生不同状态的事实,地图和智体信息不能在模式之间共享。因此,融合每个单独模式的信息。具体而言,Q维度为 1 × D,而 K-V 的维度为 (N + N_m) × D。输出特征维度保持为 1 × D。需要强调的是,Transformer 解码器可以并行处理来自多个模式的信息,无需使用一个 for 循环按顺序处理每个模式。

策略输出。模式特征由两个不同的头处理:策略头和 V 头。每个头包含自己的 MLP 来生成动作分布的参数和相应的 V 估计。采用高斯分布来建模动作分布,在训练过程中,动作从该分布中抽样。相反,在推理过程中,利用分布平均来确定动作。

规则-增强选择器

该模块首先引入一个基于规则的选择器,以初始状态 s_0、多模态自车规划轨迹和智体的预测未来轨迹为输入。它计算驾驶导向指标,例如安全性、进度、舒适度等。基于规则的分数和模式选择器提供的模式分数的加权和,获得综合分数。得分最高的自车规划轨迹被选为轨迹规划器的输出。

训练

首先训练非反应式转换模型,并在模式选择器和轨迹生成器的训练期间冻结权重。不会将所有模式都输入生成器,而是采用赢者通吃策略,其中根据自车真实轨迹分配正模式,并将其作为轨迹生成器的条件。

模式分配。正的横向模式由真实轨迹的端点决定。从起始位置到该端点的纵向距离被划分为 N_lon 间隔,正的纵向模式对应于相关距离间隔。

损失函数。对于选择器,使用交叉熵损失,即正模式的负对数似然和回归自车真实轨迹的副任务。对于生成器,使用 PPO [36] 损失,它由三部分组成:策略改进、价值估计和熵。

奖励函数。为了处理不同的场景,用自车未来姿势和真值之间负的位移误差 (DE) 作为通用奖励。还引入其他术语来提高轨迹质量:碰撞率和可驾驶区域合规性。如果未来姿势发生碰撞或超出可驾驶区域,则奖励设置为 -1;否则为 0。

模式丢弃。为了防止由于 Transformers 的残差连接而过度依赖模式或路线信息,在训练期间实现一个模式丢弃模块,该模块随机屏蔽路线以缓解此问题。

遵循 PDM [9] 来构建训练和验证分割。训练集的大小为 176,218,其中使用所有可用的场景类型,每种类型有 4,000 个场景。验证集的大小为 1,118,其中选择 100 个场景和 14 种类型。在 2 个 NVIDIA 3090 GPU 中对所有模型进行 50 次训练。每个 GPU 的批次大小为 64。用 AdamW 优化器,初始学习率为 1e-4,当验证损失停止减少时,以耐心为 0 和减少因子为 0.3 降低学习率。对于 RL 训练,设置折扣 γ = 0.1 和 GAE 参数 λ = 0.9。价值、策略和熵损失的权重分别设置为 3、100 和 0.001。纵向模式数设置为 12,横向模式的最大数量设置为 5。

如下算法 1 概述 CarPlanner 框架的训练过程。该过程涉及两个主要步骤:(1) 训练非反应性转换模型,(2) 训练模式选择器和轨迹生成器。

请添加图片描述

相关文章:

CarPlanner:用于自动驾驶大规模强化学习的一致性自回归轨迹规划

25年2月来自浙大和菜鸟网络的论文“CarPlanner: Consistent Auto-regressive Trajectory Planning for Large-scale Reinforcement Learning in Autonomous Driving”。 轨迹规划对于自动驾驶至关重要,可确保在复杂环境中安全高效地导航。虽然最近基于学习的方法&a…...

K8s面试题总结(十一)

1.如何优化docker镜像的大小? 使用多阶段构建(multi-stage build)选择更小的基础镜像(如alpine)减少镜像层数,合并RUN命令 2.请解释Docker中的网络模式(如bridge,host,none) Bridge&#xff…...

Android Telephony 四大服务和数据网络控制面数据面介绍

在移动通信和Android系统中,涉及的关键概念和服务以及场景案例说明如下: 一、概念 (一)Android Telephony 的四大服务 介绍Telephony Data 与 Android Data 的四大服务在Android系统中,与电话(Telephony)和移动数据(Data)相关的核心服务主要包括以下四类: 1. Tele…...

一文讲懂Go语言如何使用配置文件连接数据库

一文讲懂Go语言如何使用配置文件连接数据库 viper1. viper简介2. viper 读取.toml配置文件定义Go语言结构体编写与Go语言结构体对应的.toml配置文件定义初始化函数定义get函数 连接数据库1. 定义数据库对象2. 定义初始化函数3. 定义 get 函数4. 定义 main 函数, 连接数据库 配置…...

Jmeter使用介绍

文章目录 前言Jmeter简介安装与配置JDK安装与配置JMeter安装与配置 打开JMeter方式一方式二 设置Jmeter语言为中文方法一(仅一次性)方法二(永久设置成中文) Jmeter文件常用目录 元件与组件元件组件元件的作用域元件的执行顺序第一个案例添加线程组添加 H…...

MES机联网4:文档资料

目录信息 MES机联网1:技术方案MES机联网2:采集网关MES机联网3:管理后台MES机联网4:文档资料 MQ接入文档 1、建立连接 mqtt连接地址: 192.168.0.138 mqtt端口: 1883 mqtt用户名:admin mqtt密码:123456 …...

豆包大模型 MarsCode AI 刷题专栏 001

001.找单独的数 难度:易 问题描述 在一个班级中,每位同学都拿到了一张卡片,上面有一个整数。有趣的是,除了一个数字之外,所有的数字都恰好出现了两次。现在需要你帮助班长小C快速找到那个拿了独特数字卡片的同学手上…...

常用无功功率算法的C语言实现(二)

0 前言 尽管数字延迟法和积分移相法在不间断采样的无功功率计算中得到了广泛应用,但它们仍存在一些固有缺陷。 对于数字延迟法而言,其需要额外存储至少1/4周期的采样点,在高采样频率的场景下,这对存储资源的需求不可忽视。而积分移相法虽然避免了额外的存储开销,但为了抑制…...

23种设计模式简介

一、创建型(5种) 1.工厂方法 总店定义制作流程,分店各自实现特色披萨(北京店-烤鸭披萨,上海店-蟹粉披萨) 2.抽象工厂 套餐工厂(家庭装含大披萨薯条,情侣装含双拼披萨红酒&#…...

开发vue小游戏:数字华龙道

一、游戏介绍 1、历史背景 数字华容道脱胎于传统华容道,后者源自三国时期“曹操败走华容道”的故事。传统玩法是通过移动不同形状的木块,帮助“曹操”从出口逃脱。而数字华容道将棋子替换为数字,目标是通过滑动方块,将乱…...

electron的通信方式(三种)

文章目录 一、渲染进程向主进程发送消息二、渲染进程向主进程发送消息并异步获取结果三、主进程向渲染进程发送消息 electron的主要是主线程和渲染线程之间的通信,简单记录一下三种通信方式 一、渲染进程向主进程发送消息 利用ipcRenderer.send()和ipcMain.on()方法…...

MapReduce技术概述**

** MapReduce是一种并行计算框架,最初由Google开发,后来被Apache开源。它是一种分布式计算模型,能够处理大规模数据集,解决复杂的计算问题。MapReduce技术在数据处理和分析领域广泛应用,尤其是在大数据处理中。 MapR…...

ubuntu挂载固态硬盘

Ubuntu 中挂载位于 /dev/sdc1 的固态硬盘,可以按照以下步骤操作: 步骤 1:确认分区信息 首先,确保设备 /dev/sdc1 存在且已正确分区: sudo fdisk -l /dev/sdc # 查看分区表 lsblk # 确认分区路…...

同为科技智能PDU在数据中心场景的应用与解决方案

数据中心当前处于一个快速发展和技术变革的特殊时期,全新的人工智能应用正在重塑整个世界,为社会带来便捷的同时,也为数据中心的发展带来了新的机遇和挑战。智能算例的爆发式增长,对数据中心提出了大算力、高性能的新需求&#xf…...

golang学习笔记——go语言安装及系统环境变量设置

文章目录 go语言安装go envgo getgoproxy测试安装 Go 插件安装 Go 插件依赖工具参考资料用户环境变量和系统环境变量用户环境变量系统环境变量示例设置环境变量的步骤设置用户环境变量设置系统环境变量 验证环境变量总结 2024年最火的5大Go框架1. Gin:高并发接口的“…...

云服务器Linux安装Docker

系统要求 Docker 官方建议将 Docker 运行在 Linux系统上,当然也可以在其他平台运行,本篇博客只介绍在 Linux 系统上的安装方法。 Docker 运行在 CentOS7.X 版本以上,本文使用阿里云 ECS 云服务器 CentOS 7.4 版本。 Docker 需要安装在 64 …...

2025DNS二级域名分发PHP网站源码

安装教程 1.程序必须使用PHP8.1 2.将扩展ixed.8.1.lin放入/www/server/php/81/lib/php/extensions/no-debug-non-zts-20210902 3.打开宝塔→软件商店→PHP8.1→配置文件 4.放入:extensionixed.8.1.lin 5.重启PHP8.1 6.新建站点(mysql5.6-5.7andPHP8.1&a…...

审批流AntV框架蚂蚁数据可视化X6饼图(附注释)

大家好,这次使用的是AntV的蚂蚁数据可视化X6框架,类似于审批流的场景等,代码如下: X6框架参考网址:https://x6.antv.vision/zh/examples/showcase/practices#bpmn 可以进入该网址,直接复制下方代码进行调试…...

git 添加额外的远程仓库 URL

要使用 git branch -a 查看 net-next 远程仓库中的所有分支,请按照以下步骤操作: 步骤 1: 确保已添加 net-next 远程仓库 如果尚未添加 net-next 远程仓库,请运行以下命令: git remote add net-next git://git.kernel.org/pub/s…...

Qt中实现多个QMainWindow同时显示

在Qt中实现多个QMainWindow同时显示,可通过以下方法实现: 一、直接显示多个实例 必须使用new创建堆对象,避免栈对象因作用域结束被销毁‌。 int main(int argc, char *argv[]) {QApplication a(argc, argv);// 创建两个独立的主窗口QMainW…...

在ArcMap中通过Python编写自定义工具(Python Toolbox)实现点转线工具

文章目录 一、需求二、实现过程2.1、创建Python工具箱(.pyt)2.2、使用catalog测试代码2.3、在ArcMap中使用工具 三、测试 一、需求 通过插件的形式将点转线功能嵌入ArcMap界面,如何从零开始创建一个插件,包括按钮的添加、工具的实…...

关于AI数据分析可行性的初步评估

一、结论:可在部分环节嵌入,无法直接处理大量数据 1.非本地部署的AI应用处理非机密文件没问题,内部文件要注意数据安全风险。 2.AI(指高规格大模型)十分适合探索性研究分析,对复杂报告无法全流程执行&…...

cdn取消接口缓存

添加cdn后,使用cdn加速域名访问接口 是缓存,不是最新的数据,如果使用局域网则是最新的数据,如果修改配置,确保使用cdn域名请求的接口返回不是缓存 要确保通过CDN加速域名访问接口时返回的是最新的数据,而不…...

Android 屏幕适配 Tips

概念 屏幕尺寸:屏幕的对角线的长度屏幕分辨率:屏幕分辨率是指在横纵向上的像素点数,单位是px,1px1个像素点。一般以纵向像素x横向像素,如1960x1080屏幕像素密度:每英寸上的像素点数,单位是dpi …...

【Academy】HTTP Host 标头攻击 ------ HTTP Host header attacks

HTTP Host 标头攻击 ------ HTTP Host header attacks 1. 什么是 HTTP Host 标头?2. 什么是 HTTP Host 标头攻击?3. HTTP Host 标头漏洞是如何产生的?4. 如何测试 HTTP Host 标头漏洞4.1 提供任意 Host 标头4.2 检查有缺陷的验证4.3 发送不明…...

大模型架构记录2

一 应用场景 1.1 prompt 示例 1.2 自己搭建一个UI界面,调用接口 可以选用不同的模型,需要对应的API KEY 二 Agent 使用 2.1 构建GPT...

在Windows 11的WSL中安装Kali Linux

Kali Linux 是网络安全从业者和爱好者的首选工具集,但直接在物理机或虚拟机上运行可能占用较多资源。借助 Windows Subsystem for Linux (WSL),我们可以在Windows 11中原生运行Kali Linux,轻量且高效。本教程将手把手教你如何在WSL2中安装并配…...

Qt调试功能使用方法

QT编程环境 QT在Windows操作系统下的三种编程环境搭建。 方案编程环境编译器调试器1Qt CreatorMinGW GCCGDB2Qt CreatorMicrosoft Visual C CompilerDebugging Tools for Widows3Microsoft Visual Studio VS自带VS自带 方案提及的QT安装程序及压缩包均能在官网Index of /off…...

一篇文章讲解清楚ARM9芯片启动流程

SAM9X60 ARM9 boot启动流程关键词介绍: 第一级bootloader - 也叫boot ROM,是集成在MPU内部的ROM里面 它的主要功能是执行对MPU的基本初始化和配置,查找并将第二级bootloader从外部NVM中读取出来并放到MPU内部的SRAM. 可以让MPU强制停留在第一…...

DeepSeek未来发展趋势:开创智能时代的新风口

DeepSeek未来发展趋势:开创智能时代的新风口 随着人工智能(AI)、深度学习(DL)和大数据的飞速发展,众多创新型技术已经逐渐走向成熟,而DeepSeek作为这一领域的新兴力量,正逐步吸引越…...

Spring Boot与Axon Framework整合教程

精心整理了最新的面试资料和简历模板,有需要的可以自行获取 点击前往百度网盘获取 点击前往夸克网盘获取 简介 Axon Framework是一个用于构建CQRS(命令查询职责分离)和事件溯源(Event Sourcing)应用的框架&#xff0…...

从技术角度看大语言模型进化技术路线与落地应用详解:未来的最佳实践方向是什么?

文章大纲 **一、模型架构创新:从Transformer到下一代架构****二、训练与优化技术:从暴力Scaling到精细调控****三、数据与知识工程:从粗放喂养到智能增强****四、应用层进化:从通用能力到垂直场景突破****五、伦理与可持续性技术**未来技术路线图参考文献**一、大模型架构创…...

LSM-Tree (日志结构合并树)

LSM-Tree(日志结构合并树)是一种高效处理写操作的存储结构,广泛应用于NoSQL数据库如LevelDB和RocksDB。其核心思想是将随机写入转换为顺序写入,提升吞吐量。以下是其原理及Java实现示例: ### **LSM-Tree 原理** 1. **…...

自动驾驶---不依赖地图的大模型轨迹预测

1 前言 早期传统自动驾驶方案通常依赖高精地图(HD Map)提供道路结构、车道线、交通规则等信息,可参考博客《自动驾驶---方案从有图迈进无图》,本质上还是存在问题: 数据依赖性高:地图构建成本昂贵,且跨区域泛化能力受限。动态场景局限性:地图无法实时反映临时障碍物或施…...

记录一次mysql全文索引不生效

先是创建全文索引: alter table sms_img_library add fulltext index sms_img_library_title_idx(title) 但是执行下面sql,没有数据出来 select * from sms_img_library where match (title) against(壮丽);排查了最小分词,设置为2 SHOW…...

蓝桥杯题型

蓝桥杯 蓝桥杯题型分类语法基础艺术与篮球(日期问题)时间显示(时间问题)跑步计划(日期问题)偶串(字符)最长子序列(字符)字母数(进制转换)6个0&…...

用Python分割并高效处理PDF大文件

在处理大型PDF文件时,将它们分解成更小、更易于管理的块通常是有益的。这个过程称为分区,它可以提高处理效率,并使分析或操作文档变得更容易。在本文中,我们将讨论如何使用Python和为Unstructured.io库将PDF文件划分为更小的部分。…...

DeepSeek×博云AIOS:突破算力桎梏,开启AI普惠新纪元

背景 在全球人工智能技术高速迭代的背景下,算力成本高企、异构资源适配复杂、模型部署效率低下等问题,始终是制约企业AI规模化应用的关键。 DeepSeek以创新技术直击产业痛点,而博云先进算力管理平台AIOS的全面适配,则为这一技术…...

顶点着色器和片段着色器

在Unity渲染中,**顶点着色器(Vertex Shader)和片段着色器(Fragment Shader)**是图形渲染管线中的两个核心阶段。我们可以通过一个比喻来理解它们的分工:想象你要画一幅由三角形组成的3D模型,顶点…...

Uniapp打包H5端弱网络环境下存在页面UI渲染错乱问题方案实现

一.需求 uniapp打包的H5项目,首页模块的业务逻辑偏多,调用的接口数量庞大,在弱网络的情况下切换了页面或者网络较好但是页面的UI未渲染完成的情况下快速地切换了页面会出现UI渲染错乱的问题,针对该问题个人从两个方面来进行处理&…...

Dify+DeepSeek | Excel数据一键可视化(创建步骤案例)(echarts助手.yml)(文档表格转图表、根据表格绘制图表、Excel绘制图表)

Dify部署参考:Dify Rag部署并集成在线Deepseek教程(Windows、部署Rag、安装Ragan安装、安装Dify安装、安装ollama安装) DifyDeepSeek - Excel数据一键可视化(创建步骤案例)-DSL工程文件(可直接导入&#x…...

## DeepSeek写水果记忆配对手机小游戏

DeepSeek写水果记忆配对手机小游戏 提问 根据提的要求,让DeepSeek整理的需求,进行提问,内容如下: 请生成一个包含以下功能的可运行移动端水果记忆配对小游戏H5文件: 要求 可以重新开始游戏 可以暂停游戏 卡片里的水果…...

Windows系统编程(八)线程同步

线程安全问题 每个线程都有自己独立的堆栈,局部变量是存储在栈中的,这就意味着每个线程都会有一份自己的局部变量,当线程仅仅访问自己的局部变量时就不存在线程安全问题。但是全局变量是存储在全局区的,多线程共享全局变量&#…...

create_react_agent 函数,根据创建的 chat 模型实例和工具列表 tools 构造一个“反应式代理”(react agent)

graph create_react_agent(chat, tools)1. create_react_agent 函数的作用 create_react_agent 是一个工厂函数,它接收两个参数: chat 模型实例(这里是 ChatOpenAI 的对象):它负责生成语言模型的回复,也…...

Unity ECS与MonoBehaviour混合架构开发实践指南

一、混合架构设计背景 1. 技术定位差异 ECS(Entity Component System):面向数据设计(DOD),适用于大规模实体计算(如10万单位战斗) MonoBehaviour:面向对象设计&#x…...

在Linux中开发OpenGL——检查开发环境对OpenGL ES的支持

由于移动端GPU规模有限,厂商并没有实现完整的OpenGL特性,而是实现了它的子集——OpenGL ES。因此如果需要开发的程序要支持移动端平台,最好使用OpenGL ES开发。 1、 下载支持库、OpenGL ES Demo 1.1、下载PowerVRSDK支持库作为准备&#xff…...

「DataX」数据迁移-IDEA运行DataX方法总结

背景 业务需求希望把Oracle数据库中的数据,迁移至MySql数据库中,因为需要迁移全量和增量的数据,所以希望想用数据迁移工具进行操作。 经过一些调研查询,最终打算使用DataX进行数据的迁移。 DataX简单介绍 DataX 是阿里云 DataW…...

python从入门到精通(二十六):python文件操作之Word全攻略(基于python-docx)

python文件操作之word技巧大全 word技巧基础到高级操作大全A.准备工作1. 安装python-docx库2. 导入库 B.基础操作1. 创建Word文档1.1 创建文档对象1.2 添加word标题1.3 添加word段落1.4 设置段落样式1.5 创建有序列表1.6 创建无序列表1.7添加word分页1.8 添加word图片1.9 添加w…...

STM32 ST-LINK Utility 切换 NRST_MODE 后下载失败问题

在使用 STM32 ST-LINK Utility 烧录时,有需要改变芯片选择复位的时候需要修改 Option Bytes 中的 NRST_MODE 选项,可能会遇见 “Programming error 0x8000200!” 的错误,后面不管是取消读写加密还是复位都不能下载,包括再用 keil …...

【算法】010、合并两个有序链表

【算法】010、合并两个有序链表 文章目录 一、合并两个有序链表1.1 思路1.2 多语言解法 一、合并两个有序链表 1.1 思路 // go package mainimport ("fmt""strconv" )type ListNode struct {Val intNext *ListNode }func (n *ListNode) String() (ans s…...