【理想汽车中科院】基于模仿学习的端到端自动驾驶数据缩放规律
论文: https://arxiv.org/pdf/2412.02689
项目: https://github.com/ucaszyp/Driving-Scaling-Law
0. 摘要
端到端自动驾驶范式因其可扩展性而最近吸引了大量关注。然而,现有方法受到现实世界数据规模有限的制约,这阻碍了对端到端自动驾驶相关扩展规律的全面探索。为了解决这一问题,我们从各种驾驶场景和行为中收集了大量数据,并针对现有的基于模仿学习的端到端自动驾驶范式进行了扩展规律的广泛研究。具体来说,我们收集了来自23种不同场景类型的大约400万个演示,总计超过30,000小时的驾驶演示。我们在严格的评估条件下,在1,400个多样化驾驶演示中进行了开环评估和闭环仿真评估(开环1,300个,闭环100个)。通过实验分析,我们发现:(1)驾驶模型的性能与训练数据量呈现出幂律关系;(2)长尾数据量的小幅增加可以显著提高对应场景的性能;(3)适当扩展数据使模型能够在新场景和动作中实现组合泛化。我们的结果强调了数据扩展在提高模型在多样化自动驾驶场景中的泛化能力中的关键作用,确保了在现实世界中的安全部署。
1. 创新点
-
大规模真实世界数据集的构建:该研究收集了约400万次不同驾驶场景和行为的演示,总计超过30,000小时的驾驶视频,覆盖23种不同的场景类型。这是端到端自动驾驶领域中少见的大规模、多样化的真实世界数据集,为深入研究数据扩展规律提供了基础。
-
数据扩展规律的探索:研究团队探索了端到端自动驾驶模型的轨迹拟合能力与训练数据量之间的幂律关系,发现模型性能与训练数据量之间的关系符合幂律分布。这一发现揭示了数据量对模型性能的显著影响,为自动驾驶模型的训练和优化提供了重要的指导。
-
长尾数据对性能的影响:研究指出,长尾数据量的少量增加可以显著提高相应场景的性能。这一点对于提高模型在罕见或特殊场景下的性能具有重要意义,增强了模型的泛化能力。
2. 相关工作
2.1 端到端自动驾驶技术
端到端自动驾驶技术近年来取得了显著进展,这种技术范式通过直接从原始传感器数据到驾驶决策的优化,减少了传统自动驾驶系统中模块间的数据丢失和误差累积。研究表明,端到端系统在感知和规划的联合特征优化方面具有优势,能够实现更高效的计算和更好的性能表现。例如,TransFuser和InterFuser等模型通过融合不同传感器信息,增强了在复杂场景下的鲁棒性和性能。此外,TCP模型仅使用单目相机就实现了卓越的性能,展现了端到端方法在资源利用上的高效性。然而,这些研究受限于真实世界数据的规模,限制了对端到端自动驾驶扩展规律的探索。
2.2 模仿学习在自动驾驶中的应用
模仿学习作为自动驾驶系统中的关键技术,通过学习人类驾驶员的行为来训练自动驾驶模型。在自动驾驶中,模仿学习通常涉及学习人类驾驶员的操作,如转向、加速、减速等决策过程。通过模仿学习,自动驾驶系统可以在没有明确奖励信号的情况下学会驾驶。研究表明,模仿学习能够显著提高自动驾驶模型的泛化能力,尤其是在数据稀缺的场景中。例如,通过在城市驾驶数据上训练的策略,在挑战性场景中的鲁棒性得到了显著提升。模仿学习与强化学习的结合,进一步提高了驾驶策略的安全性和可靠性,减少了最困难场景下的安全事件。
2.3 数据缩放律在其他领域的研究
数据缩放律在自然语言处理和计算机视觉等领域已经显示出其重要性,为模型提供了显著的泛化能力。在机器人技术领域,尤其是机器人操作中,数据缩放律的研究揭示了策略泛化性能与环境和物体数量之间的幂律关系。研究表明,环境和物体的多样性比演示的绝对数量更重要,一旦每个环境或物体的演示数量达到一定阈值,额外的演示效果有限。这些发现为自动驾驶领域提供了宝贵的洞见,即通过适当的数据扩展,可以提高模型在新环境和新动作中的泛化能力。此外,大型语言模型(LLM)的微调研究也表明,LLM模型缩放对微调的益处大于预训练数据缩放,而PET参数缩放通常效果不佳。这些跨领域的研究结果为自动驾驶中的数据缩放律提供了有力的参考和启示。
3. 方法论
3.1 数据收集与预处理
为了深入研究模仿学习基础上的端到端自动驾驶的数据扩展规律,我们收集了约400万次不同驾驶场景和行为的演示,总计超过30,000小时的驾驶视频。这些数据涵盖了23种不同的场景类型,包括城市道路、高速公路、复杂天气条件等,确保了数据的多样性和全面性。
数据预处理方面,我们首先对原始传感器数据进行清洗,去除异常值和噪声,以提高数据质量。随后,我们将数据标注为不同的驾驶行为和场景,以便于模型学习。此外,我们还对数据进行了归一化处理,使得模型能够在统一的数据尺度上进行训练,增强模型的泛化能力。
3.2 模仿学习框架构建
基于收集的数据,我们构建了一个模仿学习框架,该框架能够直接从人类驾驶员的行为中学习驾驶策略。框架的核心是一个深度神经网络,它接受原始传感器数据作为输入,并输出驾驶决策。我们采用了端到端的训练方法,通过最小化人类驾驶员行为和模型输出之间的差异来训练模型。
在框架构建过程中,我们特别关注模型的可扩展性和泛化能力。为此,我们引入了数据增强技术,通过对原始数据进行旋转、缩放、裁剪等操作,生成更多的训练样本,以提高模型对新场景的适应性。同时,我们还采用了迁移学习策略,将预训练的模型作为起点,进一步在特定场景上进行微调,以加速模型的收敛并提高性能。
3.3 实验设计与评估指标
为了评估模型性能和数据扩展规律,我们设计了一系列实验,并选择了严格的评估指标。实验分为开环评估和闭环仿真评估两部分,共计1,400次不同的驾驶演示(开环1,300次,闭环100次)。
开环评估主要关注模型预测轨迹与专家轨迹之间的差异,我们采用了平均绝对误差(MAE)和均方根误差(RMSE)作为主要指标,以量化模型预测的准确性。闭环仿真评估则更注重模型在实际驾驶环境中的表现,我们采用了驾驶安全性、效率、导航准确性、规则遵守和舒适度五个维度的综合评分,以全面评估模型的驾驶性能。
此外,我们还引入了长尾数据集的评估,以研究数据量增加对长尾场景性能的影响。通过对比不同数据量下模型在长尾场景中的表现,我们旨在揭示数据扩展对模型泛化能力的具体影响。
4. 实验结果与分析
4.1 驾驶模型性能与训练数据量关系
实验结果表明,驾驶模型的性能与训练数据量之间存在显著的幂律关系。具体来说,随着训练数据量的增加,模型的轨迹拟合能力得到了显著提升。
-
开环性能分析:在开环评测中,模型拟合专家轨迹的性能与训练数据量之间的关系符合幂律分布。如图5(a)所示,随着训练数据量的增加,模型性能呈现出快速增长的趋势,这表明数据量的增加对于提升模型的轨迹拟合能力具有重要作用。通过线性拟合,我们发现在数据量较少时,模型性能的提升速度较快,而在数据量达到一定规模后,性能提升的速度逐渐放缓。
-
闭环性能分析:与开环性能不同,闭环性能的提升并非完全遵循幂律关系。如图5©所示,在200万次数据量时,闭环性能出现了明显的拐点,之后随着数据量的增加,性能提升的速度逐渐放缓。这可能意味着在闭环条件下,模型的性能受到其他因素的影响,如环境的复杂性、模型的泛化能力等。
4.2 长尾数据对性能的影响
长尾数据量的增加对模型性能有着显著的正面影响。在保持数据总量不变的情况下,我们逐步增加了两种数据量少、模型表现差的长尾场景的数据数量,并评估了模型在这些场景中的轨迹拟合能力。
- 长尾数据扩增实验:如表3所示,当长尾数据量扩增至约4倍时,模型在相应场景的性能提升了约20%至30%。这一结果表明,针对性地增加长尾场景的数据量,可以显著提升模型在这些场景中的性能,从而提高模型的整体泛化能力。
4.3 数据缩放对模型泛化能力的影响
数据缩放对模型的泛化能力有着重要影响。通过在不同规模的数据上训练模型,并在新场景中评估其性能,我们发现适当的数据缩放可以显著提升模型的泛化能力。
-
组合泛化实验:如图6所示,当训练数据量从5万增加到200万时,模型在两个测试场景(高速绕行和路口待转)中的轨迹与其他场景之间的误差迅速缩小。特别是在高速场景上,模型的表现甚至超过了参与训练的其他场景。这一结果表明,随着训练数据量的增加,模型能够更好地泛化到新场景中。
-
可视化分析:图7中的可视化分析进一步证实了数据缩放对模型泛化能力的影响。使用200万个示例训练的模型在未见过的高速绕行和路口待转场景中,展现出与专门训练的模型相媲美的性能。这表明适当的数据缩放不仅提高了模型在训练场景中的表现,也增强了模型对新场景的适应性和鲁棒性。
5. 讨论
5.1 数据缩放律对自动驾驶技术的影响
数据缩放律在自动驾驶技术中的影响是深远的。我们的研究结果表明,驾驶模型的性能与训练数据量之间存在显著的幂律关系。这一发现意味着,通过增加训练数据量,可以显著提升自动驾驶模型的轨迹拟合能力,从而提高自动驾驶的安全性和可靠性。
- 性能提升:随着训练数据量的增加,模型在开环和闭环条件下的性能均得到了提升。特别是在开环条件下,模型的轨迹拟合能力随着数据量的增加而快速增长,这一趋势在数据量较少时尤为明显。而在闭环条件下,虽然性能提升的速度在200万次数据量时出现拐点,但整体而言,数据量的增加仍然对性能有积极影响。
- 泛化能力增强:数据缩放律不仅影响模型在训练场景中的表现,还对模型在新场景中的泛化能力有重要影响。我们的实验结果表明,随着训练数据量的增加,模型在未见过的高速绕行和路口待转场景中的表现显著提升,甚至超过了参与训练的其他场景。这表明适当的数据缩放可以显著提升模型的泛化能力,使其能够更好地适应新环境和新动作。
5.2 数据分布对模型性能的影响
数据分布对模型性能的影响同样不容忽视。我们的研究发现,长尾数据量的增加对模型性能有着显著的正面影响。在保持数据总量不变的情况下,针对性地增加长尾场景的数据量,可以显著提升模型在这些场景中的性能。
- 长尾数据的重要性:长尾数据,即那些在数据集中出现频率较低的场景和行为,对模型的泛化能力尤为重要。我们的实验结果表明,当长尾数据量扩增至约4倍时,模型在相应场景的性能提升了约20%至30%。这一结果强调了在数据收集和训练过程中,对长尾数据的关注和增加的必要性。
- 数据分布的优化:为了进一步提升模型性能,未来的研究可以探索更优的数据分布策略。例如,通过分析不同场景和行为的数据分布,可以确定哪些场景需要更多的数据支持,从而有针对性地收集和增加这些场景的数据量。此外,还可以探索数据增强技术,通过对原始数据进行变换和合成,生成更多的训练样本,以改善数据分布。
5.3 数据缩放律对未来研究的启示
数据缩放律的发现为未来自动驾驶领域的研究提供了重要启示。首先,它强调了大规模、高质量数据集在自动驾驶模型训练中的重要性。其次,它指出了数据多样性和分布对模型泛化能力的影响,为未来的数据收集和模型训练提供了指导。
- 数据集构建:未来的研究可以基于数据缩放律的发现,构建更大规模、更多样化的自动驾驶数据集。这不仅需要收集更多的驾驶场景和行为数据,还需要关注数据的质量和分布,确保数据集能够全面覆盖自动驾驶可能遇到的各种情况。
- 模型训练和优化:在模型训练和优化方面,数据缩放律提示我们可以通过对训练数据量的增加来提升模型性能。同时,也需要探索更有效的数据利用策略,如数据增强、迁移学习等,以提高模型的泛化能力和适应性。
- 泛化能力评估:未来的研究还需要开发更全面的评估方法,以量化模型在新场景和动作中的泛化能力。这包括对模型在未见过的环境下的表现进行评估,以及对模型在面对新任务和新指令时的适应性进行测试。通过这些评估,可以更好地理解数据缩放律对自动驾驶模型泛化能力的影响,从而为自动驾驶技术的安全部署提供更有力的支持。
6. 结论与未来工作
6.1 研究总结
本研究深入探讨了模仿学习基础上的端到端自动驾驶的数据扩展规律,通过大规模真实世界驾驶数据的收集与分析,我们得出以下结论:
-
数据扩展规律的存在性:研究发现,端到端自动驾驶模型的轨迹拟合能力与训练数据量之间存在显著的幂律关系。这表明数据量的增加可以显著提升模型性能,尤其是在开环条件下。此外,闭环性能在达到一定数据量后提升速度放缓,暗示可能存在“反规模化”效应。
-
数据量对模型性能的影响:实验结果证实,增加训练数据量可以显著提高模型的轨迹拟合能力。特别是在数据量较少时,模型性能提升速度较快,而在数据量达到一定规模后,性能提升的速度逐渐放缓。
-
数据扩展对泛化能力的提升:适当的数据扩展能够显著提升模型在新场景和动作中的泛化能力。通过组合泛化实验,我们发现模型能够结合已知信息,实现对新场景的泛化规划。
-
长尾数据的重要性:长尾数据量的增加对模型性能有着显著的正面影响。针对性地增加长尾场景的数据量,可以显著提升模型在这些场景中的性能,从而提高模型的整体泛化能力。
6.2 未来研究方向
基于本研究的发现,我们提出以下未来研究方向:
-
闭环性能的深入研究:进一步探索闭环条件下的数据扩展规律,尤其是“反规模化”效应的成因和影响,以优化模型在实际驾驶环境中的表现。
-
数据分布优化策略:研究更优的数据分布策略,包括数据增强技术和数据收集方法,以改善数据分布,提高模型在长尾场景中的表现。
-
泛化能力评估方法的开发:开发更全面的评估方法,量化模型在新场景和动作中的泛化能力,包括对模型在未见过的环境下的表现进行评估,以及对模型在面对新任务和新指令时的适应性进行测试。
-
大规模数据集的构建:构建更大规模、更多样化的自动驾驶数据集,以全面覆盖自动驾驶可能遇到的各种情况,为模型训练提供更丰富的数据支持。
-
模型训练和优化策略的探索:探索更有效的数据利用策略,如迁移学习、多任务学习等,以提高模型的泛化能力和适应性。
-
跨领域数据缩放律的应用:研究数据缩放律在自动驾驶领域的应用,结合其他领域的研究成果,如自然语言处理和计算机视觉,为自动驾驶模型的训练和优化提供新的思路和方法。
相关文章:
【理想汽车中科院】基于模仿学习的端到端自动驾驶数据缩放规律
论文: https://arxiv.org/pdf/2412.02689 项目: https://github.com/ucaszyp/Driving-Scaling-Law 0. 摘要 端到端自动驾驶范式因其可扩展性而最近吸引了大量关注。然而,现有方法受到现实世界数据规模有限的制约,这阻碍了对端到端自动驾驶相关扩展规律…...
重卡补能新未来:光储充换一体开启高效之路
《重卡补能新未来:光储充换一体开启高效之路》 一、光储充换一体重卡补能模式的兴起 重卡运输行业在电动化进程加速下迎来变革,光储超充快换一体化补能站成为新趋势。 随着国家 “双碳” 战略的持续推进,新能源汽车市场蓬勃发展,…...
Mybatis Plus 3.0 快速入门
1、简介 MyBatis-Plus (简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 2、创建并初始化数据库 2.1、创建数据库 mybatis_plus 2.2、创建 User 表 其表结构如下: idnameageemail1Jone18test1@baomidou.com2Jack…...
ABAP:MB51字段增强
MB51所对应的程序:RM07DOCS 1.定义增强字段:RM07DOCS_GENERATED中定义 2.取值:RM07DOCS中detail_list中加取值逻辑 也有对ITAB取值做调整的,但是要写很多处,直接这里取值就很简单。 3.展示字段:RM07DOCS中…...
nVisual 定制化APP打包流程
一、下载打包软件 HBuilder X 下载地址:https://dcloud.io/hbuilderx.html 安装:此软件为绿色软件,解压即可使用。进入目录,双击exe启动。 此软件需要注册,打开时会提供跳转链接,通过邮箱注册账号。 注册成功后&#…...
k8s的节点亲和性NodeAffinity
关键词: ① requiredDuringSchedulingIgnoredDuringExecution:表示强匹配,必须要满足 ② preferredDuringSchedulingIgnoredDuringExecution:表示弱匹配,尽可能满足,但不保证 示例: apiVersion: v1 kind:…...
比特币国家与企业机构“战略储备”潮起
100 万枚 BTC 的战略储备资产,是一个什么概念? 据世界黄金协会统计数据显示,截至 2024 年第三季度,美联储黄金储备总量达 8133.46 吨(约合 5300 亿美元),稳居全球首位。而 100 万枚 BTC 当前市…...
Vue生命周期钩子函数:深入解析与实践
作为高级Vue前端开发人员,对Vue组件的生命周期钩子函数有着深刻的理解是至关重要的。生命周期钩子函数是指在Vue组件的创建、更新、销毁等过程中,Vue自动调用的一系列方法。通过这些钩子函数,我们可以在组件的不同生命周期阶段执行特定的操作…...
mysql、postgresql、oceanbase调优
一、mysql 1、my.cnf [mysqld_safe] log-error=/data/mysql/log/mysql.log pid-file=/data/mysql/run/mysqld.pid[client] socket=/data/mysql/run/mysql.sock default-character-set=utf8[mysqld] basedir=/usr/local/mysql tmpdir=/data/mysql/tmp datadir=/data/mysql/dat…...
【Flux.jl】 卷积神经网络
Flux.jl 是包含卷积神经网络的, 但是官方API文件中没有给出一个完整的程序框架, 只是对所需神经元给了局部解释, 此外对 model-zoo 模型动物园中的案例没有及时跟着 Flux.jl 的版本更新, 也无法运行出来结果。 因此本文搭建了一个完整可训练的卷积神经网络。 Conv 卷积算子…...
数字证书管理工具 openssl keytool
OPENSSL 命令 openssl command [ command_opts ] [ command_args ] 常用command: version 用于查看版本信息 enc 用于加解密 ciphers 列出加密套件 genrsa 用于生成私钥 -des|-des3|-idea:用来加密私钥文件的三种对称加密算法。 rsa …...
notify和notifyAll
notify和notifyAll 简单来说: notify():只唤醒一个等待的线程,如果有多个线程在等待,那么被唤醒的线程是随机选择的。 notifyAll():唤醒在该对象监视器上等待的所有线程,但是这些被唤醒的线程仍然需要竞争…...
删除MySQL的多余实例步骤
删除 MySQL 的多余实例通常意味着我们希望卸载或停止某个 MySQL 服务器实例,并从系统中完全移除它。这通常涉及到几个步骤,包括但不限于停止服务、删除数据目录、卸载软件(如果适用)等。 1.基于 Linux 的系统上删除 MySQL 的多余…...
LDR6500应用:C转DP线材双向投屏开启全新体验
在当今这个科技日新月异、蓬勃发展的时代,高清视频传输以及显示技术已经深深融入到我们日常生活与工作的方方面面,其重要性不言而喻。不管是在商务场合的会议演示,还是教育领域的娱乐享受,以及充满激情的游戏竞技领域,…...
商业化大前端在性能优化领域的探索与实践
导读:在业务飞速发展的过程中,用户体验是必不可少的一个环节,而页面性能是直接影响用户体验的重要因素。当页面加载时间过长、交互操作不流畅时,意味着业务可能会出现转化率降低、用户流失等业务问题。在过去一年,为了…...
FinClip | 2024年11月产品大事记
FinClip 的使命是使您(业务专家和开发人员)能够通过小程序解决关键业务流程挑战,并完成数字化转型的相关操作。不妨让我们看看在11月的产品与市场发布亮点,看看是否有助于您实现目标。 产品方面的相关动向👇…...
EasyPlayer.js在同一个http的mp4视频流地址,浏览器可以播放,播放器中却播放不了
流媒体技术正站在数字化时代的前沿,随着互联网技术的不断进步和市场需求的日益增长,其发展前景显得尤为广阔。随着全球数字化转型的不断深入,流媒体行业将迎来更加繁荣的未来,成为信息传播和娱乐消费的主要渠道。 用户遇到在同一个…...
探索云原生安全解决方案的未来
我们是否充分意识到云端所面临的网络安全威胁? 在当今互联互通的世界中,维护安全的环境至关重要。云的出现扩大了潜在威胁的范围,因为它催生了机器身份(称为非人类身份 (NHI))及其秘密。随着组织越来越多地转向云原生…...
发愿和许愿的区别是什么?
在许多宗教和文化中,发愿和许愿都是人们表达内心愿望、祈求神灵保佑的重要方式。尽管这两个词在日常生活中经常被交替使用,但它们在含义和实践上存在一些重要的区别。本文就来详细说说发愿和许愿的区别,并提供相关的背景信息和建议。 1. 定义…...
【IntelliJ IDEA 集成工具】TalkX - AI编程助手
前言 在数字化时代,技术的迅猛发展给软件开发者带来了更多的挑战和机遇。为了提高技术开发群体在繁多项目中的编码效率和质量,他们需要一个强大而专业的工具来辅助开发过程,而正是为了满足这一需求,TalkX 应运而生。 一、概述 1…...
【故障处理--修改CI流水线】
背景:研发同事反映CI流水线卡顿严重,判断是移动云镜像仓库的带宽太小,故在公有云搭建一个harbor仓库,这就意味着CI流水线有些配置需要改动 1、CI流水线的介绍 helm-chart/pcas-appstore-hy存放的是chart包需要的文件 Dockerfile…...
Android 使用 Gson + OkHttp 实现 API 的常规使用(个人心得)
学习笔记 一、依赖和权限的添加 网络权限: 在 Android 中进行网络请求时,必须声明权限,确保应用具有访问互联网的能力。 <uses-permission android:name="android.permission.INTERNET"/> 依赖项: 确保在 build.gradle 中添加以下依赖: dependencies …...
MR30分布式 IO 模块:硅晶行业电池片导片机的智能 “心脏”
硅晶产业作为全球能源和电子领域的基石,其生产规模庞大且工艺复杂。从硅料的提纯、拉晶,到硅片的切割、电池片的制造,每一个环节都要求高精度与高稳定性。在电池片生产环节,导片机承担着硅片传输与定位的重要任务,其运…...
mysql高级篇 | 尚硅谷 | 第2章_数据库和文件系统的关系
二、数据库和文件系统的关系 文章目录 二、数据库和文件系统的关系1、查看默认数据库2、 数据库在文件系统中的表示3、表在文件系统中的表示①InnoDB存储引擎模式②表中数据和索引②MyISAM存储引擎模式 4、小结 1、查看默认数据库 查看一下在我的计算机上当前有哪些数据库&…...
React 生命周期
React 生命周期可以分为三个主要阶段:挂载(Mounting)、更新(Updating)和卸载(Unmounting) 挂载(Mounting) 当组件实例被创建并插入到 DOM 中时,会依次调用以…...
OpenCV--图像查找
OpenCV--图像查找 代码和笔记 代码和笔记 import cv2 import numpy as np""" 图像查找--特征匹配的应用,通过特征匹配和单应性矩阵 单应性变换:描述物体在世界坐标系(原图)和像素坐标系(对比图&#x…...
数据保护策略:如何保障重要信息的安全
一、什么是数据安全? 数据安全是保护数字信息免遭盗窃、未经授权的访问和恶意修改的过程。这是一个持续的过程,负责监督信息的收集、存储和传输。 机密性:保护数据免遭未授权方访问。 完整性:保护数据免遭未经授权的修改、损坏…...
AI生成图表化:深入探索Mermaid
引言 在使用生成式AI时,只要你提出让AI帮你生成mermaid图,AI的生成就会出现丰富的图形! 在现代文档编写中,图表的使用不仅能增强文档的可读性,还能更直观地表达复杂的概念和流程。Mermaid 作为一款开源的图表绘制工具…...
模型训练中梯度累积步数(gradient_accumulation_steps)的作用
模型训练中梯度累积步数(gradient_accumulation_steps)的作用 flyfish 在使用训练大模型时,TrainingArguments有一个参数梯度累积步数(gradient_accumulation_steps) from transformers import TrainingArguments梯…...
jenkins安装(jdk1.8已安装)
1. 下载对应jenkins版本 https://mirrors.jenkins.io/war/ 2. 上传至服务器目录并启动 mkdir -p /root/jenkins cd /root/jenkins 上传文件 启动:nohup java -jar jenkins.war --httpPort9090 &> jenkins.log & 访问:http://ip:9090 选…...
爬虫实战:获取1688接口数据全攻略
引言 在电商领域,数据的重要性不言而喻。1688作为中国领先的B2B电商平台,提供了海量的商品数据。通过爬虫技术获取这些数据,可以帮助企业进行市场分析、价格监控和供应链管理。本文将详细介绍如何使用Python爬虫技术合法合规地获取1688接口数…...
基于Mybatis,MybatisPlus实现数据库查询分页功能
基于Mybatis,MybatisPlus实现数据库查询分页功能 目录 基于Mybatis,MybatisPlus实现数据库查询分页功能使用Mybatis插件实现分页数据库准备分页插件配置和使用常用数据: 使用MybatisPlus插件实现分页数据库准备分页插件配置和使用自定义分页查…...
【C++】求第二大的数详细解析
博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 💯前言💯题目描述💯输入描述💯解题思路分析1. 题目核心要求2. 代码实现与解析3. 核心逻辑逐步解析定义并初始化变量遍历并处理输入数据更新最大值与次大值输…...
Ubuntu18安装后基本配置操作
1. 关掉自动更新 不关掉自动更新,会将你的ubuntu系统更新到更高版本,一些配置就不能用了,所以要关掉自动更新。在“软件和更新”中将“自动检查更新”设置为从不。 2. ubuntu换国内源 参考链接换源 按照这个换源这个换源好使 ,…...
【Azure 架构师学习笔记】- Azure Function (1) --环境搭建和背景介绍
本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Function 】系列。 前言 随着无服务计算的兴起和大数据环境中的数据集成需求, 需要使用某些轻量级的服务,来实现一些简单操作。因此Azure Function就成了微软云上的一个必不可少的组成部分。 …...
【ubuntu】将Chroma配置为LINUX服务
Chroma是一个轻量级向量数据库。既然是数据库,那么我希望它是能够长时间运行。最直接的方式是配置为service服务。 可惜官方没有去提供配置为服务的办法,而鄙人对docker又不是特别感冒。所以自己研究了下chroma配置为服务的方式。 系统:ubu…...
Linux24.04 安装企业微信
今天工作需要把windows系统换成了linux,但是公司的沟通工具是企业微信。去企业微信官网看了,没有linux版本,只能想办法解决了,不然再换回去就太坑了。 方案 1、使用docker容器,2、使用deepin-wine 本人对docker不太熟…...
路由引入问题(双点双向路由回馈问题)
简介 总所周知,路由引入import又称路由重分发redistribute,为了解决不同路由协议进程间路由信息不互通而使用的技术,由于不同路由协议的算法、机制、开销等因素的差异,它们之间无法直接交换路由信息。因此,路由引入技…...
Redis 实现分布式锁
单实例条件下的分布式锁 -- 加锁操作 -- KEYS[1]: 锁的键(lock_key) -- ARGV[1]: 当前客户端的标识(client_id) -- ARGV[2]: 锁的过期时间(毫秒)if (redis.call(EXISTS, KEYS[1]) 0) then-- 如果锁不存在…...
Redis客户端(Jedis、RedisTemplate、Redisson)
1. 简介 Redis作为一个当下很火热的非关系型数据库,Java从业人员基本都离不开对Redis的使用。在Java程序中该数据库,需要借助于市面上的开源客户端,如Jedis、Spring Data Redis、Redisson,它们可以作为操作Redis非关系型数据库的桥…...
虚幻引擎内各个组件的关系
1. GameMode: 关系: GameMode 是游戏规则的制定者和管理者,GameState 则是游戏状态的记录者和同步者。GameMode 通常负责创建和初始化 GameState。 交互: GameMode 可以直接访问和修改 GameState 的属性,例如更新游戏分数、切换游戏阶段等。GameState 的变化会通过 GameMode …...
Python Flask Web框架快速入门
Flask 入门Demo Flask 开发环境搭建,执行如下指令: pip install flask# 第一节: Flask 快速入门from flask import Flask app Flask(__name__)app.route(/flask) def hello_flask():return Hello Flaskapp.run()核心代码剖析: 从flask包导…...
【java学习笔记】Set接口实现类-LinkedHashSet
一、LinkedHashSet的全面说明 (就是把数组不同位置的链表当成一个节点然后相连)...
阿里云ACP云计算模拟试题(附答案解析)
1、将基础设施作为服务的云计算服务类型是_____服务。 A.laas B.Paas C.SaaS D.Daas 答案:A 解析:基础设施即服务有时缩写为 IaaS,包含云 IT 的基本构建块,通常提供对联网功能、计算机(虚拟或专用硬件&#x…...
java 缓存篇2
缓存的部署方式 单机主从哨兵集群 特性主从(Master-Slave)哨兵(Sentinel)集群(Cluster)数据分片不支持不支持支持,基于 slot 进行水平分片高可用性部分支持(手动故障转移ÿ…...
12.11-12.12总结(约瑟夫问题 机器翻译 滑动窗口)
12.11 刷题 《算法竞赛》这本书看了很多了,但是题目没咋做,所以今天来刷一下题 P1996约瑟夫问题 还依稀记得大一的时候被约瑟夫支配的恐惧(哭),但是现在做就感觉很简单(虽然也敲了一会,今早感…...
Elasticsearch+Kibana+IK分词器+拼音分词器安装
目录 ES报错 Kibanaik分词器拼音分词器 安装都比较简单,可以参考这几篇博客 ES 如何在 Linux,MacOS 及 Windows 上进行安装 Elasticsearch 报错 ES启动报错error downloading geoip database [GeoLite2-ASN.mmdb] Kibana KIBANA的安装教程ÿ…...
2020 年“泰迪杯”数据分析职业技能大赛A 题教育平台的线上课程智能推荐策略
2020 年“泰迪杯”数据分析职业技能大赛A 题教育平台的线上课程智能推荐策略 完整代码请私聊 博主 一、 背景 近年来,随着互联网与通信技术的高速发展,学习资源的建设与共享呈现出新的发展趋势,各种网课、慕课、直播课等层出不穷,…...
运维面试题
1 deployment和statefulset区别 Kubernetes (k8s) 中的 Deployment 和 StatefulSet 是两种不同类型的控制器,用于管理应用的生命周期,但它们适用于不同的应用场景。以下是它们在存储、调度顺序和网络分配方面的区别: 存储 Deployment: 适用…...
计算机网络之网络层超详细讲解
个人主页:C忠实粉丝 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C忠实粉丝 原创 计算机网络之网络层超详细讲解 收录于专栏【计算机网络】 本专栏旨在分享学习计算机网络的一点学习笔记,欢迎大家在评论区交流讨论💌 …...