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

【gym】给定的强化学习环境简介(二)

文章目录

    • 环境介绍
      • 一 box2d
        • bipedal_walker
        • car_dynamics
        • car_racing
        • lunar_lander
      • 二、 classic_control
        • acrobot
        • CartPole
        • continuous_mountain_car
        • mountain_car
        • pendulum
      • 三、toy_text
        • blackjack
        • cliffwalking
        • frozen
        • taxi
      • 四、mujoco
        • Ant:
        • HalfCheetah:
        • Hopper:
        • Humanoid:
        • InvertedDoublePendulum:
        • Reacher:
        • Swimmer:
        • Walker2D:

理解gym并测试gym小游戏CartPole (一)

环境介绍

环境中有4个子文件包
在这里插入图片描述

一 box2d

Box2D是一个强大的开源物理游戏引擎环境,用于模拟2D刚体物体的运动和碰撞。

bipedal_walker

在这里插入图片描述

  • 目标通常是让双足助行器学会行走,即在不跌倒的情况下前进尽可能远的距离。

  • 动作空间是连续的,通常包含四个维度的动作,分别对应助行器腿部的不同运动控制。

  • 观察空间包含助行器的当前状态信息,如身体部位的位置、速度等,这些信息被用来作为输入给强化学习算法。

  • 环境中有一个奖励机制,根据助行器的行走距离、是否跌倒等因素给予奖励或惩罚。

  • 使用Box2D物理引擎进行模拟,包括重力、摩擦力等物理因素,使得助行器的运动更加真实和复杂。

car_dynamics
  1. 汽车的动力学模型:这涉及汽车的物理特性,如质量、惯性、轮胎摩擦力等,以及这些特性如何影响汽车的加速、减速、转向等动作。

  2. 控制函数:car_dynamics中可能定义了控制汽车行为的函数,如steer(转向)、gas(油门)、brake(刹车)等。这些函数根据输入的控制信号(如方向盘角度、油门踏板位置、刹车踏板压力等)来计算汽车的下一个状态。

  3. 与环境的交互:在gym的环境中,car_dynamics负责与Box2D物理引擎进行交互,以模拟汽车的物理行为。它可能接收来自环境的输入(如赛道布局、障碍物位置等),并根据这些输入以及汽车当前的状态和控制信号来计算汽车的下一个位置和速度等。

  4. 奖励函数:虽然奖励函数本身可能不直接包含在car_dynamics中,但car_dynamics提供的汽车状态和环境信息通常用于计算奖励。奖励是强化学习中非常重要的一个概念,它用于评估智能体(在这种情况下是汽车)的行为好坏。

car_racing

CarRacing是一种在OpenAI Gym平台上开发和比较强化学习算法的模拟环境。它是流行的Box2D物理引擎的一个版本,经过修改以支持模拟汽车在赛道上行驶的物理过程。在这个环境中,智能体(agent)需要控制一辆汽车在赛道上行驶,并尽量快速地完成一圈或多圈赛道,同时避免碰撞和偏离赛道。

在CarRacing环境中,智能体通过观察当前的环境状态(如汽车的位置、速度、赛道形状等)来做出决策,并选择相应的动作(如加速、刹车、转向等)。环境会根据智能体的动作给予相应的奖励或惩罚,例如完成一圈赛道会获得奖励,而碰撞到赛道边缘或障碍物则会受到惩罚。

rl-video-episode-0

见资料:

  • 《CarRacing 车辆模型 学习》
lunar_lander

Lunar_lander环境模拟了一个火箭着陆器的着陆过程。着陆器需要在固定点(0,0)的着陆垫上安全着陆。
在这里插入图片描述

环境版本

  • 离散版本:环境具有离散的行动空间,即引擎只能全油门开启或关闭。
  • 连续版本:环境具有连续的动作空间,通常表示为Box(-1, +1, (2,), dtype=np.float32)。状态是一个8维向量,包括着陆器的x和y坐标、x和y的线速度、角度、角速度,以及代表每条腿是否与地面接触的两个布尔运算符.
    第一个动作决定了主发动机的油门,而第二个动作则指定了横向助推器的油门。

奖励:奖励机制设计用于鼓励着陆器安全、准确地着陆。

  • 从屏幕的顶部移动到着陆点并停在那里的奖励约为100~140分。
  • 如果着陆器离开了着陆台,它就会失去奖励。
  • 如果着陆器坠毁,它将获得额外的-100分。
  • 如果它稳定了(即没有移动或摇晃),它将得到额外的+100分。
  • 每一个与地面接触的腿是+10分。
  • 开启主引擎,每帧-0.3分;发射侧引擎,每帧-0.03分。

目标:着陆器的目标是尽可能准确地着陆在指定的着陆垫上,同时最小化燃料消耗(尽管在这个环境中燃料是无限的,但开启引擎会消耗分数)。
挑战:环境中的挑战包括着陆器的物理特性(如惯性、重力等)、着陆垫的大小和位置限制,以及奖励和惩罚机制的设计。

应用场景与算法

  • Lunar_lander环境常被用于测试和训练强化学习算法,如深度Q学习(Deep Q-Learning)、深度确定性策略梯度(Deep Deterministic Policy Gradient, DDPG)、软演员-评论家(Soft Actor-Critic, SAC)等。
  • 通过在这个环境中训练代理,可以学习到如何根据当前状态做出最优的决策,从而实现着陆器的安全着陆。

学习资料

  • 基于LunarLander登陆器的DQN强化学习案例(含PYTHON工程)
  • 08、基于LunarLander登陆器的DDQN强化学习(含PYTHON工程)
  • 09、基于LunarLander登陆器的Dueling DQN强化学习(含PYTHON工程)
  • 10、基于LunarLander登陆器的Dueling DDQN强化学习(含PYTHON工程)
  • 11、基于LunarLander登陆器的A2C强化学习(含PYTHON工程)
  • 13、近端策略优化Proximal Policy Optimization (PPO) 算法:从原理到实践
  • 14、强化学习Soft Actor-Critic算法:推导、理解与实战

二、 classic_control

acrobot

环境描述
Acrobot是一个由两个连杆和关节组成的机器人,这两个连杆通过转动关节相连,并且只能在一个平面内运动。初始状态下,Acrobot的连杆是下垂的,目标是通过在两个关节上施加力矩,使得Acrobot的末端(即第二个连杆的末端)能够摆动到预定的位置(通常是上方)。
状态
在Gym的Acrobot环境中,状态通常包括两个连杆的角度、角速度等物理信息,这些信息是算法进行决策的基础
动作
动作是算法在每个时间步对Acrobot施加的力矩,通常是一个连续的或离散的数值。在连续动作空间中,算法可以输出一个具体的力矩值;在离散动作空间中,算法可以选择一个预定义的力矩方向或大小。
奖励
奖励是算法在完成任务过程中获得的反馈。在Acrobot环境中,奖励通常与末端位置、速度、能耗等因素有关。例如,当末端摆动到预定位置时,算法会获得正奖励;当能耗过高或末端未能到达指定位置时,算法会获得负奖励。
目标
算法的目标是最大化总奖励。为了实现这一目标,算法需要学习如何根据当前状态选择最优的动作,使得Acrobot能够高效地摆动到预定位置。

CartPole

rl-video-episode-0

即推车-杆问题,是Barto、Sutton和Anderson在论文中提出的一个问题。它模拟了一根杆子通过一个非驱动关节连接到一辆推车上的情景。推车沿着一条无摩擦的轨道移动,而钟摆(杆子)直立在车上。目标是通过在推车上施加左右方向的力来平衡杆子,使其尽可能长时间地保持直立。

状态
在CartPole环境中,状态空间包含四个属性,分别是推车的位置(x)、速度(x_dot)、杆子的角度(theta)以及角速度(theta_dot)
每个属性都有其特定的值域范围。例如,推车的位置可以在-4.8到4.8之间,但如果推车的位置超出-2.4到2.4的范围,事件将会终止。同样,杆子的角度可以在-0.418 rad(约-24°)到0.418 rad(约24°)之间,但如果超出这个范围,事件也会终止。
动作
动作空间是离散的,只有向左和向右两个选择,通常用0和1表示

奖励-

  • 在CartPole环境中,奖励机制是鼓励智能体(agent)尽可能长时间地保持杆子直立。
  • 每一步操作(如果杆子仍然直立)都会给予智能体一个正的奖励(通常是1)。
  • 如果杆子倒下或推车超出轨道范围,则回合结束,并可能给予智能体一个负的奖励(虽然在一些版本中,回合结束并不直接对应负的奖励,但智能体显然无法再获得正的奖励)。

终止条件

  • 杆子倒下(即角度的绝对值大于某个阈值,如12°)。
  • 推车超出轨道范围(即位置的绝对值大于某个阈值,如2.4)。
  • 回合长度超过预设的最大步数(如500步,但在不同版本中可能有所不同)。
continuous_mountain_car

MountainCarContinuous环境,是一个连续动作空间的环境。在这个环境中,智能体(agent)需要控制一辆动力不足的汽车,通过左右移动和加速,将其推到山顶。与MountainCar-v0(离散动作空间)不同,MountainCarContinuous允许智能体对汽车施加连续值的力,以更精细地控制汽车的运动。

状态
在continuous_mountain_car环境中,状态(State)和观察(Observation)是相同的,都包含了汽车的位置(position)和速度(velocity)
位置通常被限制在一个一维的区间内,例如[-1.2, 0.6],而速度也被限制在一个较小的范围内,例如[-0.07, 0.07]。
动作
在连续动作空间中,智能体可以施加一个连续值的力来控制汽车。这个力可以是正数(表示向右推)或负数(表示向左推),并且有一个最大值和最小值限制。
智能体需要根据当前的状态(位置和速度)来选择最合适的力,以最大化长期的累积奖励。

奖励
在continuous_mountain_car环境中,如果汽车成功到达山顶(通常设定为一个特定的位置,如0.45或0.5),则智能体会获得一个较大的正奖励(如100)。
如果汽车未能到达山顶,则智能体会在每个时间步获得一个负的奖励,这个奖励通常与智能体施加的力的大小成反比,以鼓励智能体使用更小的力来完成任务。

学习资料

  • 强化学习之MountainCarContinuous(注册自己的gym环境) ⭐️
mountain_car

环境中包括一辆随机放置在正弦谷底部的汽车,动力不足的汽车必须爬上一维小山才能到达目标。目标是策略性地给汽车加速,使汽车到达山顶

lunar

状态
状态(或观察)通常包括汽车的位置和速度

动作
MountainCar中的动作是离散的。在离散动作版本中,可能的动作通常是向左或向右推动汽车(例如,+1或-1的力)。

奖励

  • 奖励机制设计得鼓励智能体以较少的步数达到目标。
  • 汽车到达山顶时获得正向奖励,而未能达到目标或采取过多步骤则可能获得负向奖励或没有奖励。

主要区别
Continuous_MountainCar与MountainCar类似,但主要区别在于动作是连续的。

学习资料

  • 强化学习库gym之mountain-car源码解读
  • 基于强化学习的gym Mountain Car稳定控制 ⭐️
pendulum

Pendulum环境模拟了一个摆动的杆子,目标是通过控制力矩来保持杆子的稳定,或者使其达到特定的状态(如竖直向上)。这个环境通常用于测试连续动作空间的强化学习算法,因为控制力矩是一个连续变化的量。
在这里插入图片描述

状态
包括摆杆的角度(theta)、角速度(theta_dot)等物理量。这些状态量可以通过传感器或物理模型获取,并作为强化学习算法的输入。

动作
动作空间是连续的,通常表示为对摆杆施加的力矩。这个力矩可以在一定的范围内变化,通过调整力矩的大小和方向,可以控制摆杆的运动。

奖励
Pendulum环境的奖励函数通常设计为与摆杆的状态相关。一种常见的奖励函数是:

r = − ( θ 2 + 0.1 × θ ˙ 2 + 0.001 × τ 2 ) r = − ( θ 2 + 0.1 × θ ˙ 2 + 0.001 × τ 2 ) r = − ( θ 2 + 0.1 × θ ˙ 2 + 0.001 × τ 2 ) r=−(θ2+0.1×θ˙2+0.001×τ2)r = -(\theta^2 + 0.1 \times \theta˙^2 + 0.001 \times \tau^2)r=−(θ2+0.1×θ˙2+0.001×τ2) r=(θ2+0.1×θ˙2+0.001×τ2)r=(θ2+0.1×θ˙2+0.001×τ2)r=(θ2+0.1×θ˙2+0.001×τ2)

其中, θ θ θ表示摆杆的角度, θ ˙ θ˙ θ˙表示角速度, τ τ τ表示施加的力矩。这个奖励函数鼓励智能体将摆杆保持在竖直向上的位置 ( θ = 0 ) (θ=0) θ=0,同时减小角速度和力矩的大小,以节省能量和避免不必要的动作。

无终止状态:Pendulum环境通常没有明确的终止状态,需要设置一定的时间步数或达到特定的性能标准来结束一个episode

学习资料

  • 【强化学习】Pendulum-v0环境分析
  • 强化学习gym的使用之Pendulum的训练
  • gym 环境解析:Pendulum-v0

三、toy_text

blackjack

又称21点,是一种广受欢迎的纸牌游戏。在强化学习的Blackjack环境中,智能体(agent)需要学习如何根据当前的牌面情况(包括自己的牌和对手的牌)来做出最优的决策,即是否要牌(hit)或停牌(stick),以最大化自己的赢面。
状态

  • 玩家当前手上的牌的总和(the players current sum)。

  • 庄家(dealer)展示的牌(1-10,其中1代表A)。

  • 玩家手上是否有可用的A(usable ace,0或1,因为A可以当作1或11来使用)
    动作

  • 要牌(hit=1):智能体选择继续从牌堆中抽牌。

  • 停牌(stick=0):智能体选择不再抽牌,结束当前回合
    奖励

  • 获得胜利(玩家的牌面总和大于庄家的牌面总和且不超过21点):奖励为1。

  • 平局(玩家的牌面总和与庄家的牌面总和相等或都超过21点):奖励为0。

  • 输掉比赛(玩家的牌面总和小于庄家的牌面总和或超过21点):奖励为-1。

cliffwalking

在这里插入图片描述

CliffWalking(悬崖行走)环境通常被表示为一个网格世界,其中包含以下元素:

  • 起点(S):智能体开始的位置。
  • 目标(G):智能体想要到达的位置。
  • 悬崖(C):智能体一旦掉入悬崖,会重置到起点的位置,并可能获得一个较大的负奖励。
  • 普通格子:智能体在普通格子上移动时,通常会获得一个较小的负奖励(如-1),以鼓励智能体尽快到达终点。

动作

  • 上(Up):向网格的上方移动一格(如果不在边界上)。
  • 下(Down):向网格的下方移动一格(如果不在边界上)。
  • 左(Left):向网格的左方移动一格(如果不在边界上)。
  • 右(Right):向网格的右方移动一格(如果不在边界上)。
    目标
    智能体的目标是通过学习最优策略,以尽可能少的步数从起点到达终点。然而,由于悬崖的存在,智能体需要谨慎选择动作,以避免掉入悬崖并重置到起点。这增加了问题的复杂性,并使CliffWalking成为强化学习中一个具有挑战性的任务
    奖励
  1. 到达终点:当智能体到达终点时,会获得一个较大的正奖励(如+100)。
  2. 掉入悬崖:当智能体掉入悬崖时,会重置到起点,并可能获得一个较大的负奖励(如-100)。
  3. 在普通格子上移动:智能体在普通格子上移动时,会获得一个较小的负奖励(如-1),以鼓励智能体尽快到达终点。

学习资料

  • 强化学习系列案例 | 利用Q-learning求解悬崖寻路问题
  • 强化学习开发环境搭建与入门实验——CliffWalking与CartPole ⭐️
frozen

指的是Frozen Lake或类似的冻结湖泊环境,是一个由方块(或称为格子)组成的简单游戏环境.在这个环境中,智能体(Agent)需要从起始方块移动到目标方块,同时避开危险的洞(Hole)。

状态
境的状态由智能体当前所在的方块位置决定。在Frozen Lake环境中,通常有一个4x4的方块网格,因此有16个可能的状态(每个方块代表一个状态)

动作
智能体可以执行的动作通常包括向左、向右、向上和向下移动。这些动作分别用数字(如0、1、2、3)或符号(如LEFT、RIGHT、UP、DOWN)表示。

奖励
智能体在移动到目标方块时获得奖励(通常为1),如果掉入洞中则获得惩罚(通常为0或负值,但在Frozen Lake中通常是结束当前回合并获得0奖励)。

taxi

Taxi环境通常包含四个地点(例如R、G、B、Y),每个地点用不同的字母标记,代表出租车可以到达的不同位置。状态空间是离散的,由出租车的位置、乘客的位置以及目的地共同决定。具体地,状态可以表示为一个元组(taxi_row, taxi_col, passenger_location, destination),分别代表出租车所在行、出租车所在列、乘客位置和目的地。

动作空间
Taxi环境的动作空间也是离散的,通常包含六个动作,分别是向南移动(south)、向北移动(north)、向东移动(east)、向西移动(west)、接乘客(pickup)和放乘客(drop-off)

奖励

  • 成功接送乘客:如果出租车成功地将乘客送到目的地,将获得+20分的奖励。
  • 时间步长惩罚:每经过一个时间步长,出租车将受到-1分的惩罚,以鼓励算法尽快完成任务。
  • 错误接送乘客:如果出租车在没有到达目的地的情况下将乘客放下,将受到-10分的惩罚。

环境特点与难度

  • 随机性:每次运行环境时,出租车、乘客和目的地的位置都是随机生成的,这增加了问题的复杂性和挑战性。
  • 状态空间与动作空间的维度:Taxi问题的状态空间和动作空间维度适中,既不过于简单也不过于复杂,使得它成为测试强化学习算法性能的一个理想选择。
  • 栅栏与路径限制:环境中可能存在可以穿越和不能穿越的栅栏,这进一步增加了问题的复杂性和算法需要探索的状态空间

解决方法
Taxi问题可以通过多种强化学习算法来解决,例如Q-learning、Sarsa等。这些算法通过不断尝试和学习,逐渐找到最优的接送乘客路径。在训练过程中,算法会根据奖励机制不断调整其策略,以最大化累计奖励。

四、mujoco

Ant:

这是一个模拟的多足机器人环境。
Ant环境要求代理(Agent)学习如何控制机器人的多个关节,以实现稳定的行走和移动。

HalfCheetah:

这是一个模拟的半猎豹机器人环境。
HalfCheetah环境挑战代理学习如何控制机器人的关节,以模拟猎豹般的奔跑动作。

Hopper:

这是一个模拟的单腿跳跃机器人环境。
Hopper环境要求代理学习如何控制机器人的跳跃动作,包括起跳、空中姿态调整和落地等。

Humanoid:

这是一个模拟的人类机器人环境。
Humanoid环境是最具挑战性的环境之一,要求代理学习如何控制机器人的多个关节,以实现复杂的动作,如行走、跑步和跳跃等。

InvertedDoublePendulum:

这是一个模拟的双摆倒立环境。
InvertedDoublePendulum环境要求代理学习如何控制两个相连的摆杆,使它们保持倒立状态。

Reacher:

这是一个模拟的机械臂环境。
Reacher环境要求代理学习如何控制机械臂的移动,以将末端执行器移动到目标位置。

Swimmer:

这是一个模拟的游泳机器人环境。
Swimmer环境要求代理学习如何控制机器人的多个关节,以模拟游泳动作。

Walker2D:

这是一个模拟的双足行走机器人环境。
Walker2D环境要求代理学习如何控制机器人的双足,以实现稳定的行走。

相关文章:

【gym】给定的强化学习环境简介(二)

文章目录 环境介绍一 box2dbipedal_walkercar_dynamicscar_racinglunar_lander 二、 classic_controlacrobotCartPolecontinuous_mountain_carmountain_carpendulum 三、toy_textblackjackcliffwalkingfrozentaxi 四、mujocoAnt:HalfCheetah:Hopper&…...

ctfhub disable_functions关卡

1.CTFHub Bypass disable_function —— LD_PRELOAD 2.CTFHub Bypass disable_function —— ShellShock 3.CTFHub Bypass disable_function —— Apache Mod CGI 4.CTFHub Bypass disable_function —— 攻击PHP-FPM 5.CTFHub Bypass disable_function —— GC UAF 6.CTFHub B…...

SpringAI人工智能开发框架006---SpringAI多模态接口_编程测试springai多模态接口支持

可以看到springai对多模态的支持. 同样去创建一个项目 也是跟之前的项目一样,修改版本1.0.0 这里 然后修改仓库地址,为springai的地址 然后开始写代码...

2025年我国网络安全发展形势展望

展望2025年,我国网络安全产业有望迎来新的快速增长阶段,零信任安全架构将在各行各业加快应用落地,数据安全技术攻关和应用进程加快,关键基础设施安全能力不断提升。同时,也应关注国家级网络对抗风险加剧、网络安全产业…...

【漏洞复现】BIG-IP Next Central Manager OData 注入漏洞(CVE-2024-21793)

🏘️个人主页: 点燃银河尽头的篝火(●’◡’●) 如果文章有帮到你的话记得点赞👍+收藏💗支持一下哦 一、漏洞概述 1.1漏洞简介 漏洞名称:BIG-IP Next Central Manager OData 注入漏洞漏洞编号:CVE-2024-21793漏洞威胁等级:超危影响范围:BIG-IP Next Central Manage…...

GitLab部署到阿里云服务器上

GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。 一、安装 1.创建一…...

VTK知识学习(27)- 图像基本操作(二)

1、图像类型转换 1)vtkImageCast 图像数据类型转换在数字图像处理中会频繁用到。一些常用的图像算子(例如梯度算子)在计算时出于精度的考虑,会将结果存储为float或double类型,但在图像显示时,一般要求图像为 unsigned char 类型,…...

MyBatis如何处理延迟加载?

大家好,我是锋哥。今天分享关于【MyBatis如何处理延迟加载?】面试题。希望对大家有帮助; MyBatis如何处理延迟加载? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 MyBatis 支持 延迟加载(Lazy Loading&am…...

前端网络之【浏览器跨域问题分析与解决方案】

文章目录 同源策略同源与异源跨域的限制场景解决方案 CORS 请求分类 简单请求预检请求 注意点一 【关于Cookie】注意点二 【关于跨域获取响应头】 JSONP 基本流程 代理服务器 如何选择对应方案 同源策略 **同源策略是一套浏览器的安全策略机制,当一个源的文档和脚…...

LeetCode:3218. 切蛋糕的最小总开销 I(贪心 Java)

目录 3218. 切蛋糕的最小总开销 I 题目描述: 实现代码与解析: 贪心 原理思路: 3218. 切蛋糕的最小总开销 I 题目描述: 有一个 m x n 大小的矩形蛋糕,需要切成 1 x 1 的小块。 给你整数 m ,n 和两个数…...

前端下载后端文件流,文件可以下载,但是打不开,显示“文件已损坏”的问题分析与解决方案

目录 场景还原 相关代码开发者工具 - 网络请求记录 问题排查 定位改bug 总结 场景还原 我在前端使用axios接收后端xlsx表格文件流并下载,xlsx文件能够下载成功,但是打开却显示文件无法打开 相关代码 请求API封装:Content–Type以及responseType经核…...

PageRank Web页面分级算法 HNUST【数据分析技术】(2025)

1.理论知识 算法原理PageRank 通过网络浩瀚的超链接关系来确定一个页面的等级。 Google 把从 A 页面到 B 页面的链接解释为A页面给B页面投票, Google 根据投票来源(甚至来源的来源, 即链接到A页面的页面)和投票目标的等级来决定新…...

数字IC前端学习笔记:脉动阵列的设计方法学(四)

相关阅读 数字IC前端https://blog.csdn.net/weixin_45791458/category_12173698.html?spm1001.2014.3001.5482 引言 脉动结构(也称为脉动阵列)表示一种有节奏地计算并通过系统传输数据的处理单元(PEs)网络。这些处理单元有规律地泵入泵出数据以保持规则…...

对话 Project Astra 研究主管:打造通用 AI 助理,主动视频交互和全双工对话是未来重点

Project Astra 愿景之一:「系统不仅能在你说话时做出回应,还能在持续的过程中帮助你。」 近期,Google DeepMind 的 YouTube 频道采访了 Google DeepMind 研究主管格雷格韦恩 (Greg Wayne)。 格雷格韦恩的研究工作为 DeepMind 的诸多突破性成…...

NetApp 存储设备巡检作业指导书

NetApp 存储设备巡检作业指导书 一、目的 本指导书旨在指导管理员通过 SSH 或 Console 登录 NetApp FAS2552 存储系统,切换节点并进行日常管理操作。 二、适用范围 适用于基于 NetApp ONTAP 操作系统的 FAS2552 存储环境。 三、前提条件 网络和权限要求&#xff1…...

adb无法连接到安卓设备【解决方案】报错:adb server version (40) doesn‘t match this client (41);

下载老版本Platformtools​​​​​​​​​​​​​​https://dl.google.com/android/repository/platform-tools_r28.0.2-windows.zip?hlzh-cn 替换原来的platform-tools文件夹即可。 问题原因分析:电脑端adb client版本(41)和安卓端adb …...

每天五分钟机器学习:核函数

本文重点 在学习支持向量机算法之前,我们要继续学习一些数学基础,本文我们将学习核函数的概念。当数据线性不可分的时候,此时就需要核函数出场了,它可以将低维不可分的数据映射到高维可分数据,此时就可以完成数据分类了。 核函数的定义 核函数K(x, y)定义为两个数据点x…...

Word窗体联动Excel实现级联组合框

在Word中的使用用户窗体(UserForm)定制界面如下图所示,其中控件如下(忽略Label控件): CompanyName 组合框Attention 组合框CommandButton1 按钮 现在需要实现级联组合框效果,即用户在 CompanyN…...

RAG实战:构建基于本地大模型的智能问答系统

RAG实战:构建基于本地大模型的智能问答系统 引言 在当今AI快速发展的时代,如何构建一个既智能又可靠的问答系统是一个重要课题。本文将介绍如何使用RAG(检索增强生成)技术,结合本地大模型,构建一个高效的智…...

Docker 部署 plumelog 最新版本 实现日志采集

1.配置plumelog.yml version: 3 services:plumelog:#此镜像是基于plumelog-3.5.3版本image: registry.cn-hangzhou.aliyuncs.com/k8s-xiyan/plumelog:3.5.3container_name: plumelogports:- "8891:8891"environment:plumelog.model: redisplumelog.queue.redis.redi…...

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…...

VB.net复制Ntag213卡写入UID

本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...

【入坑系列】TiDB 强制索引在不同库下不生效问题

文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析

这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...

Python如何给视频添加音频和字幕

在Python中,给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加,包括必要的代码示例和详细解释。 环境准备 在开始之前,需要安装以下Python库:…...

【JavaSE】绘图与事件入门学习笔记

-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角,以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素 …...

WPF八大法则:告别模态窗口卡顿

⚙️ 核心问题:阻塞式模态窗口的缺陷 原始代码中ShowDialog()会阻塞UI线程,导致后续逻辑无法执行: var result modalWindow.ShowDialog(); // 线程阻塞 ProcessResult(result); // 必须等待窗口关闭根本问题&#xff1a…...

TJCTF 2025

还以为是天津的。这个比较容易,虽然绕了点弯,可还是把CP AK了,不过我会的别人也会,还是没啥名次。记录一下吧。 Crypto bacon-bits with open(flag.txt) as f: flag f.read().strip() with open(text.txt) as t: text t.read…...

如何通过git命令查看项目连接的仓库地址?

要通过 Git 命令查看项目连接的仓库地址,您可以使用以下几种方法: 1. 查看所有远程仓库地址 使用 git remote -v 命令,它会显示项目中配置的所有远程仓库及其对应的 URL: git remote -v输出示例: origin https://…...

Element-Plus:popconfirm与tooltip一起使用不生效?

你们好&#xff0c;我是金金金。 场景 我正在使用Element-plus组件库当中的el-popconfirm和el-tooltip&#xff0c;产品要求是两个需要结合一起使用&#xff0c;也就是鼠标悬浮上去有提示文字&#xff0c;并且点击之后需要出现气泡确认框 代码 <el-popconfirm title"是…...