【论文阅读】PolarNet: 3D Point Clouds for Language-Guided Robotic Manipulation

Abstract

基于自然语言指令的机器人理解和执行操作任务的能力是机器人的长期目标。语言引导操作的主要方法使用 2d 图像表示,这在组合多视图相机并推断精确的 3d 位置和关系方面存在困难。为了解决这些限制,我们提出了一种基于三维点云的policy,称为polarnet,用于语言引导操作。它利用精心设计的点云输入、高效的点云编码器和多模态transformers来学习3d点云表示,并将它们与语言指令集成以进行动作预测。在rlbench基准测试上进行的各种实验中,polarnet被证明是有效的和数据效率。在单任务和多任务学习方面都优于最先进的 2d 和 3d 方法。它还在真实机器人上取得了有希望的结果。

Keywords: Robotic manipulation, 3D point clouds, language-guided policy

 1 Introduction

人们能够在3D物理环境中执行广泛的复杂操作任务。指定不同任务的一种有效且直观的方式是通过自然语言指令。因此,机器人技术的长期目标是开发可以遵循语言指令来执行各种操作任务的机器人。

大多数现有的语言引导机器人操作工作都使用 2d 图像表示 [1, 2, 3,4]。bc-z[1]应用resnet[5]对单视图图像进行动作预测编码。hiveformer[3]采用transformers[6]对多视图图像和所有历史进行联合编码。视觉和语言学习的最新进展[7,8]进一步为基于图像的操作[4]铺平了道路。cliport [4] 和 instructrl [9] 利用预训练的视觉和语言模型 [8, 10] 来提高多任务操作的泛化能力。gato[11]和palm-e[12]联合训练具有大量网络图像文本数据的机器人任务,以便更好地表示和任务推理。

尽管基于 2d 图像的 policies 取得了可喜的结果,但它们在 3d 世界中的操作具有固有的局限性。首先,它们没有充分利用多视角摄像机进行视觉遮挡推理,因为多视图图像之间没有明确对齐,如图1所示。其次,从二维图像中准确推断精确的三维位置和空间关系[13]是一项重大挑战。当前的 2d 方法主要依赖于广泛的预训练和足够的域内数据来实现令人满意的性能。

图1:(a): RLBench[19]中“Reach和Drag”任务的变化,每个变化的目标颜色不同。(b):虽然不同的视图是互补的来表示场景,但它们彼此没有明确对齐。(c) 合并多视图相机以在 3D 空间中构建统一的点云。在这项工作中仔细研究了点云输入的设计选项。

为了克服基于2d的操作policy学习的局限性,最近的研究转向了基于3d的方法。3d 表示的使用提供了一种融合多视图观察 [14] 并促进更准确的 3d 定位的自然方法 [15],见图 1(右)。例如,peract [14] 采用以动作为中心的方法,该方法接受超过 100 万个体素的高维输入来对下一个活动体素进行分类,为多任务语言引导操作实现了最先进的结果。然而,这种以动作为中心的3d体素存在量化误差和计算效率低下的问题。已经成功地探索了以点云的形式替代3d表示,用于3d对象检测[16]、分割[17]和接地[13]。然而,用于机器人操作的三维点云的有效高效处理[18]仍未得到充分探索。此外,重点是单任务操作,缺乏整合语言指令以同时完成多个任务的多功能性。

本文提出了polarnet,这是一种基于点云的语言引导机器人操作网络。我们探索了三维点云表示的各种设计选项,包括点云特征的组合、点云的覆盖范围空间、使用多个摄像机视图以及点云坐标帧的选择。我们的方法建立在pointnext架构[17]的基础上,以有效地编码点云输入。采用多模态transformer将编码的点云与中间级别的语言指令融合。最后,我们的polarnet预测7自由度(自由度)动作,包括平行夹持器的位置、旋转和开放状态,由运动平面器执行以完成任务。

我们在三种语言引导操作设置中对 rlbench [19] 进行了广泛的实验:单任务单变量(每 10 个任务一个 policy)、多任务单变量(所有 10 个任务的一个 policy)和多任务多变量(18 个具有 249 个变化的任务一个 policy)。图 1 说明了任务“"reach and drag”的变化。我们的模型在所有三个设置中都显着优于最先进的 2d 和基于 3d 的模型,证明了 polarnet 在将语言指导与基于 3d 点云的机器人操作表示相结合方面的有效性。polarnet 在真实机器人上的 7 个任务上也实现了 60% 的平均多任务成功率。

2 Related Work

Language-guided Robotic Manipulation.

语言引导的policy学习因其在不同的任务之间方便的人机交互和技能泛化方面的潜力而备受关注[20,21,22,23,24,25,26,27]。最近已经建立了几个多任务基准[28,19,29,30,31]。在我们的工作中,我们使用 rlbench [19],因为它提供了数百个具有挑战性的操作任务,带有演示和说明。利用预训练的大型语言模型[12,32,33,3,4,9,11]已被证明有利于语言引导的操作。现有的大多数工作都是基于二维图像[2,34,1,27,3],而最近的一些工作探索了3d表示的潜力[14,35]。c2f-arm [35] 和 peract [14] 都利用了 3d 体素表示。c2f-arm 建议以从粗到细的方式表示 3d 场景,以平衡量化误差和计算成本。peract [14] 使用以动作为中心的表示,通过感知器 transformer [36] 对工作空间中的语言和所有 3d 体素进行编码,并对哪个体素是下一个夹具位置进行分类,使其效率较低。相比之下,我们探索了点云表示并以更有效的“以点为中心的”方式预测动作

Manipulation Learning with Point Clouds

由于 3d 表示的优势,研究越来越关注从 3d 点云进行视觉引导的机器人操作 [37, 18, 38, 39, 40,41,42, 43, 44]。点云表示的设计选择对任务性能起着重要作用。strudel等人[45]显示了运动规划法线的好处。liu等人[18]发现,末端执行器和目标物体帧中的点云归一化效果明显优于普通世界和机器人基础帧。seita等人[46]添加了逐点流向量来改进工具的操作。秦等人[47] 进一步表明点云可以实现直接的 sim-to-real 传输。然而,现有工作主要利用点云来训练单任务 policy,不考虑任何语言交互。在这项工作中,我们联合表示点云和语言来执行各种操作任务,并系统地评估点云表示的设计选择,例如颜色的重要性。

Point Cloud Networks.

基于点云的视觉方法研究了三维物体检测[16]、分割[48]和三维物体接地的3d表示问题[13,15]。pointnet[48]及其扩展pointnet++[49]是处理点云最流行的网络。尽管最近提出了基于transformers[6]的更先进的网络[50,51],但pointnext[17]表明,pointnet++上的小修改甚至可以优于较新的体系结构。我们的方法polarnet基于最先进的pointnext模型[17],并在语言引导操作的背景下评估不同的设计选择

3 Method

3.1 Problem Definition

我们的目标是学习一个视觉 policy 来执行遵循自然语言指令的机器人操作任务,其中是步骤 t 的观察和动作,O 和 A 分别是观察和动作空间。在这项工作中,观察空间 O 包括:1)语言指令,其中 xi 是标记化的单词,2)来自 K 个相机的 rgb 图像,以及 3) 对齐的深度图像 。我们使用 k = 3,机械臂左肩、右肩和手腕上的摄像头,与之前的工作 [2, 3] 一样 h = w = 128。已知内部和外部相机参数。动作空间A由平行夹持器的姿态和开放状态组成。该姿态由世界坐标和旋转组成,用世界坐标系中的四元数描述。开放状态 表示夹持器是打开还是关闭的。我们遵循 rlbench [34, 2, 3, 14] 中的标准设置来预测关键步骤的动作,并使用运动规划器来执行动作。有关关键步骤的更多详细信息,请参见附录 b 节。

3.2 PolarNet: Point Cloud-based Language-guided Robotic Manipulation Policy

图 2 显示了 PolarNet 的概述,用于使用 3D 点云进行语言引导操作。附录中的图 6 显示了更详细的架构。我们首先在第 3.2.1 节中描述点云表示的设计选择,然后在第 3.2.2 节中介绍模型架构的细节,然后是第 3.2.3 节中的训练目标。

图 2:用于语言引导操作的 polarnet。该方法以多视角rgb-d图像和语言指令获得的合并点云作为输入,并使用pointnext[17]进行高效的点云编码,并使用clip文本编码器[8]进行语言编码。点云和语言通过中间层的多层 transformer 集成。polarnet使用点云热图上的积分来预测位置(青色节点),每个点偏移,以及使用全局特征的夹持器的旋转和开放状态。

3.2.1 Point Cloud Inputs

Preprocessing. 

给定和步骤t处的已知相机intrincs和Extrinsics,我们将中的每个像素投影到3D世界坐标中。由于对齐,像素的RGB颜色可以附加到相应的点。通过这种方式,我们为世界坐标系中的每个相机获得一个点云 ,其中每个点由 XYZ 坐标及其 RGB 颜色组成。可以合并来自不同相机的点云,因为它们在同一个坐标系中。为了减少冗余,我们使用 Open3D 工具包 [52] 将合并的点云均匀地下采样到每个体素的一个点。我们在之前的工作 [14] 使用 1cm3 的体素大小。我们还通过 Open3D 估计每个点的法线。点云的几何结构使得选择相关点变得简单,这对于二维图像来说是困难的。例如,墙壁和地板等背景点远离机器人的工作空间,被操纵的物体通常高于表表面。因此,我定义了一个3D边界框,它覆盖了桌子上方的工作空间来裁剪点云(附录中的图5)只保留物体和机械臂的点我们在表 2 中的实证结果显示了删除不相关点的有效性。我们将处理后的点云中的 个点随机采样为 Vt。

图 5:点云处理的图示。我们将原始点云、背景去除的点云和背景去除点云和放置刀任务的表去除表示。

 Point cloud features.

点云表示[45]和归一化[18]的类型可以显著影响性能。我们的论文是第一个系统地研究这种影响的论文。在实验第 4.2 节中,我们首先研究了点云输入的不同组合,包括:1)XYZ 坐标,2)很少用于机器人操作的 RGB 颜色,因为大多数工作都集中在只需要求解几何结构的单个任务上,3)normal 已被证明可以有效地避免障碍物 [45],以及 4)相对于操纵台的高度,这有助于推断对象位置。然后,我们比较了两种类型的坐标系,将点云归一化为单位球:1)使用夹持器位置作为坐标原点,有利于推断物体-机器人关系[18],2)使用点云的中心作为原点,这是3D场景理解任务[15]的常见做法。我们在表 1 和表 2 中的实证结果表明,所有四个点云表示都有利于特定重要性的颜色,而两个坐标帧的表现相似

3.2.2 Model Architecture

Language encoding.

我们使用CLIP模型[8]中的语言编码器对语言指令进行标记和编码。它在大规模的图像文本对上进行了预训练,能够有效地理解视觉上相关的指令。我们冻结语言编码器,并向其添加一个线性层,以获得语言嵌入

Point cloud encoding.

我们使用最先进的PointNext编码器[17]对点云Vt进行编码。它由Le数集抽象(SA)块组成,用于分层抽象Vt的特征。每个SA块包含子采样层、分组层、多层感知器(MLP)和缩减层。第l个块处的子采样层使用最远点采样从Vt中选择个点,然后分组层为每个选定点找到邻居,这些邻居是查询半径内的点。所有点共享MLP以生成特征。最后,缩减层利用最大池化来聚合查询点的邻居内的特征。假设是第l个块处查询点i的输入特征,是该点的XYZ坐标,计算公式为:

其中表示查询点i的邻居点集,[·]是特征连接。每个SA块将点的数量减少2倍,同时将特征的维度增加2倍。我们将编码点云表示为,其中是第一层中的隐藏大小。

Vision-and-language fusion.

我们利用多层transformer架构[53]来集成点云功能和语言嵌入。具体来说,我们首先将xyz位置和步骤id嵌入添加到点云特征中,如下所示:

其中是正弦位置编码[6],表示不同的步骤。然后,在每个transformer层中,我们依次对点云特征进行自我注意,从 点云到语言的交叉注意,然后是前馈网络,即:

其中 d 是 transformer 层中的隐藏大小,LN表示层归一化。我们堆叠 L 层以获得语言条件的点云特征

Action decoding.

由于夹持器位置处于连续空间中,因此先前对动作空间进行离散化的工作[14]可能会受到量化误差的影响。然而,直接回归方法在训练中往往很困难,导致表现不佳[54]。因此,我们从积分人体姿势回归[55]中获得灵感,以获得两全其美的效果。对于位置预测,我们使用具有残差连接和上采样的PointNext解码器[17]在输入点云上生成热图,并在每个点处生成偏移。虽然点云只包含可见对象的点,但动作位置可以覆盖整个工作空间。因此,我们预测一个偏移量来移动每个点。最终预测位置如下:

它允许连续输出,底层热图表示使其易于训练。旋转和打开状态在本质上更离散,因此我们直接预测如下:

3.2.3 Training Objective 

我们使用行为克隆进行模型训练。给定数据集,其中N对成功演示和相应的指令,其中由一系列T个关键步骤组成,视觉观察,动作。训练目标是尽量减少以下损失,包括夹具位置和旋转的均方误差(MSE)以及打开状态分类的二进制交叉熵(BCE)损失:

4 Experiments

4.1 Experimental Setup

Evaluation setup.

我们考虑了RLBench上的三种评估设置[19]。单任务单变量[3]由N个任务组成,每个任务有一个变量。我们为每个任务变体生成100个演示。为每个任务训练单独的模型。多任务单变量使用与单任务单变量设置相同的N个任务,但训练了一个统一的模型来解决所有任务。在前面的工作[3]之后,我们考虑N={10,74},其中74是RLBench中可以成功执行的最大任务数。多任务多变量包括18个任务,其中每个任务都有多个变量,总共有249个变量[14]。我们对每项任务使用与[14]相同的100个演示。针对所有任务变化训练单个模型,由于任务变化集更大,每个任务变化的训练数据更少,这更具挑战性。附录中的A节提供了三种设置的更多详细信息。

Evaluation metrics.

我们使用任务成功率(SR)来衡量绩效,在没有部分学分的情况下,每集完全成功为1,失败为0。对于前两个设置,我们按照 [3] 评估每个任务 500 个看不见的情节(总共 500 × 10 = 5000 个评估集)。我们用三种种子进行了三次实验,并报告了平均值和标准偏差。对于最后一个设置,我们使用[14]中发布的数据集,并按照[14]对每个任务的25集进行评估,总共25×18=450个评估集。

Implementation details

对于模型架构,我们使用 sa 块的 pointnext-s 模型 [17] 并比较。我们使用在 shapenet 上训练的权重初始化它。transformer 层有 d = 512,我们比较。我们使用学习率为 的 adamw 优化器和 8 个演示的批量大小。我们分别针对单任务单变量、多任务单变量和多任务多变量设置训练了 20k、200k 和 600k。我们使用单个 nvidia v100 gpu 进行训练,除了在多任务多变量设置中,我们使用 4 个 gpu 进行加速。我们的模型训练效率高,单任务训练大约需要 1 小时,训练多任务多变量大约需要 30 小时。

4.2 Ablations

我们研究了点云输入和模型架构的影响。除非另有说明,我们使用结合 XYZ、RGB、法线和高度的点云表示,去除背景和桌面点,并用夹具位置将它们归一化为原点。该模型使用 。消融是在具有 10 个任务的单任务单变量设置中执行的。

Point cloud representation.

表 1 比较了点云输入表示。只有 XYZ 的普通点云平均表现最差。RGB 颜色对于需要区分颜色的任务起着重要作用,例如“Pick-Up Cup”,其目标是在不同的彩色杯子中拾取红色杯子。点法线的改进不太稳定,这可能是由于噪声法线估计造成的。点相对于桌子的高度也可以略微提高性能。

Point cloud processing.

我们使用夹具位置或点中心作为原点,比较两个坐标系来归一化点云。如表2所示,这两种方法的性能相似,同时使用夹具位置更稳健,标准偏差更低。在点云处理中,更重要的是删除不相关的点。由于我们采样点的能力有限,不相关的点会使感兴趣的点更稀疏,从而损害性能。多任务设置的结果也显示了与附录表12相同的趋势。

Multi-view cameras.

表3分析了多视角相机对点云构建的贡献。由于遮挡,单台相机不足以完成任务,性能下降了44%以上。腕式相机在三种视图中表现最差。然而,它与其他两款相机的互补性更强,与左肩和右肩相机的组合相比,提升了10%以上。使用所有三个摄像头可以获得最佳性能,并有很大的余量(分别为+11.9%、+15.5%、+25.1%,具体取决于两个摄像头)。

Model capacity.

我们在表4中探讨了模型能力对单任务和多任务设置中任务绩效的影响。在单任务设置中,de=32的小型网络的性能略优于de=64的大型网络。我们怀疑更大的模型可能需要更多的演示来训练。然而,相同的模型容量在多任务设置中表现不佳。增加模型大小对于同时学习多个操作任务至关重要。我们还注意到,多任务中的最佳模型仍然比单任务设置中的模型低2.3%,这表明需要更好的多任务学习策略。在下文中,我们使用de=32,L=1用于单任务设置,de=64,L=2用于多任务设置。

4.3 Comparison with State of the Art

Evaluation on three setups.

我们将PolarNet与表5中单任务单变量、多任务单变量和多任务多变量设置的最新方法进行了比较。附录中的表9、10和11分别提供了三种设置的每个任务的更详细结果。比较的方法包括基于二维图像的模型,如Auto-λ[2]和Hiveformer[3],以及基于三维体素的模型PerAct[14]。我们的PolarNet在所有评估设置上始终优于之前的模型。它在多任务设置中实现了相当大的改进(+11.1),显示了3D点云同时解决多个任务的优势。此外,与之前的基于3D的模型PerAct[14]相比,我们的模型在计算上更高效,PerAct需要16天的时间用8个V100 GPU进行训练。我们只使用4个V100 GPU在30小时内训练相同数量的迭代,大约快13倍。我们在附录D部分分析了成功和失败的案例。

Robustness to viewpoint perturbation.

我们对视点方差的鲁棒性进行了新的评估,以证明点云模型与基于2D图像的方法相比的优势。在评估中,我们更改相机位置和旋转以获得新的RGB-D图像。我们只将更改应用于两个侧摄像头,但保持手腕摄像头不变,因为在现实世界的实验中,侧摄像头很容易放置在不同的位置,但手腕摄像头始终附着在机器人手上。我们将扰动因子f表示为随机选择±f cm偏移和±5f度用于修改后的相机姿态。我们直接运行在原始相机上训练的PolarNet和Hiveformer模型,在10个任务的多任务设置中使用新的相机姿势。结果如图3所示。对于所有扰动因素,PolarNet的性能下降幅度远小于Hiveformer,这证明了我们的PolarNet对相机扰动的鲁棒性。附录中的图9显示了10项任务中每项任务的详细结果。

4.4 Real-robot Experiments

我们用真实机器人上的真实视觉传感器进一步评估了polarnet。我们使用6自由度ur5机械臂,并采用7个真实世界的任务。对于每项任务,我们收集了20个人类演示,并在收集的数据上对在rlbench上训练的语言条件多任务模型进行了微调。更多细节见附录e节。表6显示了真实的机器人结果。我们报告了每项任务10集的成功率。我们的polarnet在7个真实任务中平均成功率达到60%。我们总结了polarnet失败的两个常见原因。首先,该模型混淆了目标对象,如“草莓”和“苹果”,因为稀疏点云可能无法提供足够的语义信息。其次,预测的抓取姿势缺乏精度。我们推测这是由于部分观点和目标动作分布的多模态性质造成的。为了解决这些局限性,可以对预训练语义感知的3d表示进行进一步的研究[56],将其与预训练的2d模型相结合,并提高动作policy的复杂性。请访问我们的项目网站[57],了解policy在现实世界中的执行示例。

5 Conclusion

这项工作解决了使用3D点云进行语言引导的机器人操纵问题。所提出的PolarNet采用精心设计的点云输入、高效的点云编码器和多模态transformer来预测语言条件操纵的7-DoF动作。我们发现,使用带颜色的点颜色、过滤不相关的点和合并多个视图至关重要。在RLBench基准上进行的大量实验表明,PolarNet在从单任务单变量到多任务多变量的各种任务上都优于最先进的模型。PolarNet在解决多任务的真实机器人上也取得了有前景的结果。

Limitations: 

我们的多任务模型仍然不如最好的单任务模型,需要更先进的多任务学习算法。此外,虽然我们的policy可以执行多个任务,但我们还没有研究对新场景、对象和任务的泛化

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

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

相关文章

供方软件供应链安全保障要求及开源场景对照自评表(下)

国标《信息安全技术 软件供应链安全要求》确立了软件供应链安全目标,规定了软件供应链安全风险管理要求和供需双方的组织管理和供应活动管理安全要求。 开源软件供应链作为软件供应链的一种特殊形式,该国标亦适用于指导开源软件供应链中的供需双方开展组…

专业化的自动化解决方案 VM5XX系列模块在应力应变、仪器仪表和自动化信息化领域的广泛应用

专业化的自动化解决方案 VM5XX系列模块在应力应变、仪器仪表和自动化信息化领域的广泛应用 VM501系列模块是一款专业化的读数模块,采用了单振弦式传感器激励、频率读取和温度转换技术。该模块具有集成度高、体积小、精度高和适应能力强等优点,能够极大地…

力扣面试150 添加与搜索单词 - 数据结构设计 字典树

Problem: 211. 添加与搜索单词 - 数据结构设计 👩‍🏫 参考题解 public class WordDictionary {// 定义一个内部类 Node,用于表示 Trie(前缀树)中的每个节点class Node{// 每个节点有一个大小为 26 的数组&#xff0c…

数据结构--顺序表的创建和增删改查操作

一、编写代码,完成学生管理系统,实现以下操作: 1、输入学生信息 2、任意位置插入学生信息 3、任意位置删除学生信息 4、查找任意位置学生信息 5、修改任意位置学生信息 6、表头插入学生信息 7、表尾插入学生信息 8、表头删除学生信息…

JVM 内存模型:堆、栈、方法区讲解

1. 引言 Java 虚拟机(JVM)的内存模型是 Java 程序运行时的基础之一。JVM 内存模型主要包括 堆、栈、和 方法区。它们各自有不同的作用和管理方式,并且影响着程序的性能和稳定性。为了更好地理解 JVM 的内存管理机制,我们将结合电…

CISP备考题库(八)

CISP即“注册信息安全专业人员”,是面向信息安全企业、信息安全咨询服务机构、信息安全测评机构、政府机构、社会各组织、团体、大专院校以及企事业单位中负责信息系统建设、运行维护和管理工作的信息安全专业人员所颁发的专业资质证书。 更多CISP介绍:e…

快速掌握Postman接口测试

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 一、前言 在前后端分离开发时,后端工作人员完成系统接口开发后,需要与前端人员对接,测试调试接口,验证接口的正…

简述混沌神经网络

混沌神经网络是一种结合了神经网络与混沌理论的新型智能信息处理系统。以下是对混沌神经网络的详细解析: 一、定义与背景 混沌神经网络是由于神经网络具有高度非线性动力学系统的特性,而混沌又具有无规则性、遍历性、随机性等特点,因此神经网…

豆包MarsCode IDE 搭建 VitePress 博客并使用 GitHub 部署

以下是「 豆包MarsCode 体验官」优秀文章,作者粥里有勺糖。 创建豆包MarsCode 项目 还没有注册登录的可以访问 www.marscode.cn/introductio… 登录并进入IDE界面 在左上角和右上角都有创建项目的入口。 选择 Node.js 项目进行创建。 创建后可以看到项目列表里只是…

monaco editor 在react中的使用

1. 首先先导入monaco editor npm install monaco-editor// npm install monaco-editor --force // 版本冲突? 强行安装 2. 在react中使用 期望效果如下 3. 我遇到的问题 : 输入json数据后 未格式化 , json数据仍然一行展示 我遇到的问题 : 直接输入json数据会白屏报错…

安卓 uniapp跨端开发

HBuilder X 4.24 本地插件方式使用原生插件 例如 MT-TTS 地址PS: 播放 speek({text: ‘test’}) 应为 播放 speak({text: ‘test’})MT-TTS下载下来之后,将 nativeplugins 文件夹拷贝到 uniapp 项目根目录中manifest.json ---- App原生插件配置 运行 语音引擎测试文字转语音播…

基于CNN的10种物体识别项目

一:数据导入和处理 1.导入相关包: import numpy as np import pandas as pd import matplotlib.pyplot as plt import tensorflow as tf2.下载数据 (x_train_all, y_train_all), (x_test, y_test) tf.keras.datasets.cifar10.load_data()# x_valid:测…

基于springboot的智慧社区微信小程序

文未可获取一份本项目的java源码和数据库参考。 本课题研究目标 本文主要对小区生活服务平台的功能和非功能需求进行了分析,系统除了提供物业保修、小区资讯、投诉留言、常用电话等基础功能外,为了满足用户的多样化需求,还提供邻里圈子和有…

sheng的学习笔记-AI-归纳逻辑程序设计(ILP)

AI目录:sheng的学习笔记-AI目录-CSDN博客 规则学习(rule learning): sheng的学习笔记-AI-规则学习(rule learning)-CSDN博客 一阶规则学习: sheng的学习笔记-AI-FOIL(First-Order Inductive Learner)-CSD…

Tiny-universe学习笔记1:Qwen-blog

本文是参与Datawhale Tiny-universe组队学习的第一篇学习笔记,参考链接:https://github.com/datawhalechina/tiny-universe Tiny-universe学习笔记1:Qwen-blog Qwen整体架构与Llama2类似,具体如下图所示: 其中&#…

1 elasticsearch安装

【0】官网参考 https://www.elastic.co/guide/en/elasticsearch/reference/7.11/targz.html 【1】Centos7 下载安装 【1.1】下载 官网:Download Elasticsearch | Elastic 选择好自己想要的相关版本即可; 【2】Centos7.X 前置环境配置(uli…

C# 访问Access存取图片

图片存入ole字段,看有的代码是获取图片的字节数组转换为base64字符串,存入数据库;显示图片是把base64字符串转换为字节数组再显示;直接存字节数组可能还好一点; 插入的时候用带参数的sql写法比较好;用拼接…

汽车应用生态系统的飞跃

在过去的几年里,汽车系统经历了前所未有的变革,驾驶员和乘客对于车内体验的期待已远远超越了传统的驾驶范畴。随着技术的不断进步,基于Android Automotive OS(AAOS)和Google Automotive Services(GAS&#…

毕业设计选题:基于ssm+vue+uniapp的农产品自主供销小程序

开发语言:Java框架:ssmuniappJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:M…

力扣 167.两数之和||—输入为有序数组

文章目录 题目介绍解法 题目介绍 解法 利用相向双指针&#xff0c;初始时l在最用左边&#xff0c;r在最右边 1.numbers[l] numbers[r] < target 则 l 2.numbers[l] numbers[r] < target 则 r 3.numbers[l] numbers[r] target 说明找到了答案 class Solution {publi…