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

AI基础:从线性回归到梯度下降

一个简单的问题:

如果此时你正站在迷路缭绕的山坡上,能见度不高,但是你又想去往最低的山谷的位置,怎么走?

在这里插入图片描述

很简单,哪里陡那就往那里走呗——而这就是梯度下降算法的思想

古话说:“先发制于人,后发而制于人。”

想要做到有效先发呢,就得做到对事务的准确预测,要预测就得先掌握其规律。规律从哪里来?当然是从数据上来,所以关键就是要找到数据与数据之间的关联。

比如气温越高,雪糕的销售额也就越高,这个就是数据与数据之间的关联:

在这里插入图片描述

还有一个经典的例子,就是房子价格与面积的关系:

在这里插入图片描述

从所给数据不难看出二者是有正相关关系的。

但是要做到准确的预测的话必须要得到它们之间的函数关系式,这样我们只需要给出一个面积值那么立马就能直接得到价格是多少了。

要求函数关系式的话,那么需不需要做一条曲线将坐标系中的所有的点都穿过去呢?明显是不可以的,因为当有新数据再加进来的时候,往往新数据根本就不在这条曲线上:

在这里插入图片描述

这样吃力不讨好的行为(勾画曲线),通常叫做过拟合

对于这种明显有相关关系的数据往往最朴素的方法反而效果更好,直接用一条直线去拟合这些数据:

在这里插入图片描述

直线的话就好搞了,就是一次函数 y=kx+b 嘛,只要把这条直线的斜率和截距都找到的时候,那么这条直线就自然被找出来了。

而我们找到最合适的这条直线的这些动作,我们就称作线性回归

那么哪条直线更合适呢?毕竟有那么多:

在这里插入图片描述

这很难说,那么既然很难决定,那就全部一起考虑,跟选秀一样,到时候留下最合适的那个就可以了。

既然是选秀,那么就会有标准,标准是什么呢?

以下图中的一条黑线和红线为例,这两条都是拟合真实数据出来的直线(二者都是理想化的估算数据):

在这里插入图片描述

不难看出二者与真实数据之间都是有差距的,但我们可以把每个点的真实数据和估算数据的误差给算出来,在图上可以表现为真实数据竖直到这条线的距离是多长:

在这里插入图片描述

可以明显看到,黑线的距离之和是要比红线的距离之和要短的,那么我们就可以认为黑线更优秀,和原数据更加符合。

接下来使用数学语言来描述一下这个事情:

假如真实数据是 y1, y2, y3, y4, y5,而估算数据是 y^ = kx+b:

在这里插入图片描述

那么其距离之和可以表示为:

在这里插入图片描述

但是此时有一个问题,点在线上方的距离算出来是正的,而点在线下方算出来的距离呢则是负值:

在这里插入图片描述

一正一负相加是会抵消掉一些距离的,那么算出来的结果肯定就会出问题,为了消除正负距离带过来的影响,我们可以对每一项进行取平方的操作:

在这里插入图片描述

这样再加起来就正确了,这同样可以反映出距离之和的大小。

但还有一个新的问题,假如红线不取五个点,而是取十个点怎么办?因为取的点越多那么累加的距离的平方和肯定就越大,所以在取样点的数量不一样的时候是根本没办法比较的,这怎么办?答案就是对他们取平均,主打一个众生平等:

在这里插入图片描述

这样取平均之后就可以进行比较了,那么这样的话选秀的标准也就自然出来了:

在这里插入图片描述

上面这个值谁求出来的小,那么谁的线就和原数据符合的越好。其还有另外一个名称:平均平方误差MSE

想要解决一负一正相加抵消的问题,那在这里不取平方取绝对值可以吗?

当然可以,取绝对值的方式叫做平均绝对误差MAE

在这里插入图片描述

二者在不同的场景之下有不同的优缺点,但是对于梯度下降呢我们一般使用MSE,因为MSE的数学性质更好一些(肯定比求绝对值好算啊)。

在上面的情况中,在少数几条直线的情况下,可以一眼就看出来或者说是稍微的计算一下就可以得出来拟合的较好的直线,但是如果候选者有无数多个,怎么办呢?

简单列个表可能更清晰一些:

在这里插入图片描述

我们的任务就是把所有的这个MSE的值全算出来然后挑出来最小的那一个 Zmin,而最小的那一个它所对应的 k 值和 b 值就是你要找的直线了。

上面的过程简单说就是通过一个 k 一个 b 值来计算 MSE 值 z,而这不就是一个以 k 和 b 为自变量,z 为函数值的二元函数吗?

在这里插入图片描述

而二元函数长什么样?可以简单的看一下其几何图像:

在这里插入图片描述

而这个 f(k , b) = z 这个函数也被称为损失函数,刚刚不是说任务就是要把这些 z 当中的最小值 Zmin 给找出来吗?对应到这个损失函数其实也就是要把这个损失函数的最低的位置找出来。

那么现在我们的任务就变成了找到这个山谷的最低的位置了,要讲明白下山,我们就得从上山讲起:

在这里插入图片描述

其实就像地图一样,方便我们定位和指路,如果能有一个像导航一样的上山神器就好了。

还真有!其实就是以前学习过的导数

我们先看二维坐标系下的导数的相关概念,下图是一个一元函数 f(x),假如现在我们是在 x0 的位置,我们可以对这个点求导数,也就是这个点的切线的斜率,可以看到在 x0 这一点上的导数值是大于 0 的:

在这里插入图片描述

导数值大于 0 实际上就是在告诉我们这个 x0 要往增大的方向走函数值才能变大才能上坡

再看一个点 x1,该点上切线斜率实际上是小于零的,这就意味着这个 x1 要往减小的方向去走函数值才能变大才能上坡:

在这里插入图片描述

这样一看使用导数值来指明方向还挺好用的,但是只告诉了方向还不太够啊,最好是还能告诉我一步要走多远,然后走到顶了最好还可以叫我停下来这样是最好的。

恰好导数也能够做这个事情

我们直接拿导数的大小作为步子的长短,假如我们还是在 x0 的这个位置,然后求出这一点的导数是等于二的,那么我们直接拿这个二作为步子的长短,x0 呢就应该要往增大的方向加二来到这个位置对应的函数值。重复这个步骤,随着越来越靠近山顶的位置,坡度就越来越小,那么步子呢也会越来越小,来到山顶的时候导数为零那么直接就是不走了,而这就是我们想要的:

在这里插入图片描述

找新落脚点的这个动作我们还可以使用数学语言描述出来,假设现在所在的点是 Xn,对该点求导数将其作为前进的步长就把它直接加上去,得到的结果呢作为下一个点的落脚点:

在这里插入图片描述

当然这是一个最理想的状态,万一 X0 这个位置的切线斜率太大了导致跨的步子大了一些,直接一步跨过了山顶的位置来到了对面的位置,不过这也不用慌,因为此时求导数值小于0,它还是会回来的,往复循环最终也能到达山顶:

在这里插入图片描述

真正麻烦的其实是下面这几种情况,一步刚好跳到了对称的位置,因为是对称的所以求导数再往回跳就又跳回了原来的位置,然后就会一直反复横跳根本停不下来:

在这里插入图片描述

还有一种是从一个位置直接跳到了斜率更大的地方,然后它又会往回跳跳到更远的地方去了,随着循环它就会越跳越远越跳越远然后直接爆炸。

还有这种不止一个山顶的,前面的坡太小导致每一步的步伐也很小,当来到第一个小山顶的时候迈不过去了,你就会以为你已经来到了最高的位置就不走了,陷入了局部最优解:

在这里插入图片描述

因此我们在更新位置的时候一般会对这个每一步的长短呢做一个控制,也就是直接在这个导数面前乘以一个系数α,来改变其步长大小。而这个系数,我们又称之为学习率。学习率也不一定是个定值,主要是看你的策略。

那么上面讲的这些个东西是怎么应用到二元函数上面去的呢?

首先不难得知,二元函数的方向有两个,一个是 k 方向,一个是 b 方向,而上山的方向则可以看作是这两个方向的合成。这和地图上是一样的:往东走再往北走,其实等价于往东北方向走嘛:

在这里插入图片描述

既然我们要走的方向是上坡,那方向分解到 k 方向和 b 方向呢也应该都是上坡的,如何分解?

假如现在所在的位置是 K0 、B0,它所在的这条经纬线,我们沿着 K 轴的方向看过去,实际上它就是 BOZ 平面上的一条曲线:

在这里插入图片描述

而在 B 的方向上要上坡,那么直接对 B0 这个点求导不就可以了吗?

在这里插入图片描述

而因为上图中这条线是垂直于这个 K 的方向截出来的,这条线上所有的 K 值都是 K0 不变的,把 K 的值当常数然后再对 B 求导,这不就是对于二元函数来求 B 的偏导吗?然后再把 B = B0 这个点带进去所得的值就是 B 的值的变化量啦:

在这里插入图片描述

同理对于 K 值的变化量我们只需要换一个方向也就很好求解出来了,也是一个求偏导的操作,然后我们就得到了:

在这里插入图片描述

得到的这两个偏导值既告诉了 K 和 B 的方向怎么走,然后呢变化量是多大,所以这个东西不就是一个向量吗?

这个向量的名字呢,就叫做梯度

要注意一下,这个梯度指明了 K 方向和 B 方向的变化量,所以梯度应该是这个 KOB 平面上的一个二维向量,怎么理解?用一些具体的数字来看一下吧。

假如现在所在的点是 (1,2),然后求出来梯度的向量呢是(2,3),那么我们的下一个落脚点就应该是 1+2 = 3,2+3 = 5,也就是落脚点在点(3,5)的位置。

梯度是上山的方向,那么下山咋办?注意一点,这里的山是连续可微的,那直接沿着上山的方向反着走不就下山了吗?

从数学上看就是直接求出这个梯度向量,然后在它前面乘以 -1 ,然后再沿着这一个方向走,就可以下山去了呀(也就是梯度下降的形象化表示)。

因此再看回来这一幅图:

在这里插入图片描述

假设当前所在位置在 (Kn,Bn),那么下一个落脚点表示为 (Kn+1,Bn+1),按照我们上面说的,那么 Kn+1 就应该等于 Kn 加上 沿着反梯度的方向也就是减去它的导数,同理 Bn+1 也是一样。那么就可以得到如下式子:

在这里插入图片描述

当然别忘记了要在偏导前面乘上一个学习率α控制步长嗷:

在这里插入图片描述

最后当这个偏导逐渐为 0 的时候,也就意味着你走不动了,也就来到了最低的位置了。

而此时所得到的 K 值和 B 值呢,就是我们之前线性回归时心心念念的直线的斜率和截距了。

这便是梯度下降算法的第一印象了。

相关文章:

AI基础:从线性回归到梯度下降

一个简单的问题: 如果此时你正站在迷路缭绕的山坡上,能见度不高,但是你又想去往最低的山谷的位置,怎么走? 很简单,哪里陡那就往那里走呗——而这就是梯度下降算法的思想。 古话说:“先发制于人…...

AI产品经理面试

把优秀当习惯把优秀当习惯肯定不是口头说说,那有什么判断标准吗? 当我做完一件事儿的时候,我会看它有没有突破我的舒适圈、能不能惊艳到我自己。这就是我的判断标准。 在自我介绍和经历介绍时,面试者应该注重以下几个方面&#xf…...

二进制方式部署consul单机版

1.consul的下载 mkdir -p /root/consul/data && cd /root/consul wget https://releases.hashicorp.com/consul/1.18.0/consul_1.18.0_linux_amd64.zip unzip consul_1.18.0_linux_amd64.zip mv consul /usr/local/bin/ 2.配置文件 // 配置文件路径: /roo…...

SpringBoot整合Quartz实现动态定时任务

目录 1、Quartz简介1.1 Quartz的三大核心组件1.2 CronTrigger配置格式 2、SpringBoot整合Quartz框架2.1 创建项目2.2 实现定时任务 1、Quartz简介 Quartz是一个开源的任务调度服务,它可以独立使用,也可与其它的Java EE,Java SE应用整合使用。…...

qt 用宏控制静态接口的统一

1.概要 /** * 单件宏实验 * 创建一个可以生成单件的宏 * 起因:想让有些控件单件,但是c不支持静态的继承(c#支持) * 那么如果保证这些接口的统一呢,用宏 */ 2.代码 2.1 a.h #ifndef A_H #define A_H#include &…...

pdf怎么转换成jpg,本地转换还是在线转换?

PDF(Portable Document Format)和JPG(Joint Photographic Experts Group)这两种文件格式在我们的日常生活和工作中扮演着举足轻重的角色。PDF因其跨平台、保持原样性强的特点,被广泛应用于文件传输和存储;而…...

【物联网】802.15.4简介

目录 一、概述 二、802.15.4主要特点 2.1 工作频段和数据速率 2.2 支持简单器件 2.3 信标方式和超帧结构 2.4 数据传输和低功耗 三、低功耗 一、概述 802.15.4包括用于低速无线个人域网(LR-WPAN)的物理层和媒体接入控制层两个规范。它能支持消耗功率最少,一般…...

C++基础语法:复制构造函数,赋值构造函数及浅复制,深复制

前言 "打牢基础,万事不愁" .C的基础语法的学习 引入 前一篇帖子C基础语法:类构造函数之普通构造函数-CSDN博客讲了普通构造函数,还有 复制构造函数,赋值运算符以及延伸出来的浅复制和深复制问题,做个补充. 内容主要参考自<<C Prime Plus>> 6th Edition …...

架构是怎样练成的-楼宇监控系统案例

目录 概要 项目背景 原系统设计方案 改进后的设计方案 小结 概要 绝大多数人掌握的架构都是直接学习&#xff0c;慢慢地才能体会到一个架构的好处。架构是一种抽象&#xff0c;是为了复用目的而对代码做的抽象。通过一个项目的改造&#xff0c;理解架构是如何产生的&…...

valgrind使用浅谈

1、Valgrind 简介 Valgrind是一款用于内存调试、内存泄漏检测以及性能分析的软件开发工具&#xff0c;它可在以下平台上运行&#xff1a; X86/Linux、AMD64/Linux、ARM/Linux、ARM64/Linux、PPC32/Linux、PPC64/Linux、PPC64LE/Linu x、S390X/Linux、MIPS32/Linux、MIPS64/Li…...

强化学习专题:强化学习知识梳理(一)

2024/6/23&#xff1a; 前段时间有幸完成了大学期间的第一篇论文。在面试之前复盘一下关于自己论文中DQN的一些相关点。 浅谈主要区别&#xff08;在线 or 离线&#xff09; 首先&#xff0c;一切的开始是强化学习中时序差分方程&#xff0c;这体现了强化学习方法的优化策略。在…...

深入JVM:详解JIT即时编译器

文章目录 深入JVM&#xff1a;详解JIT即时编译器一、序言二、基础概念1、何为JIT即时编译2、热点代码 三、HotSpot内置的即时编译器1、C1编译器2、C2编译器3、分层编译3.1 协作流程 四、常见JIT优化技术1、方法内联2、逃逸分析&#xff08;1&#xff09;同步锁消除&#xff08;…...

ORBSLAM3_ROS_Ubuntu18_04环境搭建安装

orbslam3安装 ORB-SLAM3配置及安装教程&#xff08;2023.3&#xff09;_orbslam3安装-CSDN博客 换源&#xff0c;换成国内的 搜索software 安装工具 sudo apt install git sudo apt update sudo apt install gcc g cmake安装 cmake安装新版本 ubuntu20.04安装cmake详细…...

【opencv - C++ - Ubuntu】putText 显示中文最快方法

话不多说&#xff0c;直接上代码 #include <iostream> #include <opencv2/opencv.hpp> #include <opencv2/freetype.hpp>using namespace std; using namespace cv;int main(void) {Mat image(1000, 1800, CV_8UC3, Scalar(200,162,33));Ptr<freetype::F…...

百度网盘下载速度慢的解决办法

目录 一、背景 二、解决办法 1、点击三个竖点&#xff0c;再点设置 2、点击传输&#xff0c;再点击去开启该功能 3、点击同意&#xff0c;开启优化速率 三、结果 四、备注 一、背景 当你不是百度网盘会员时&#xff0c;你在使用百度网盘下载时&#xff0c;是否下载速度太…...

Python api接口 异步

Python API接口异步编程简介 在现代的软件开发中&#xff0c;大多数应用都需要通过API接口与其他系统进行交互。Python是一种非常流行的编程语言&#xff0c;因此许多开发者选择使用Python来构建他们的API接口。在一些情况下&#xff0c;API接口需要进行异步编程&#xff0c;以…...

Java 和 Kotlin 单例模式写法对比

目录 1、饿汉模式 Java 写法&#xff1a; Kotlin 写法&#xff1a; Kotlin 这段代码反编译&简化后如下&#xff1a; 2、懒汉模式&#xff0c;静态同步方法 Java 写法&#xff1a; Kotlin 写法&#xff1a; Kotlin 这段代码反编译&简化后如下&#xff1a; 3、懒…...

解析connectionReset异常的原因与解决方案

解析connectionReset异常的原因与解决方案 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们将深入探讨Java中connectionReset异常的原因及其解决方案。这…...

mindspore打卡第9天 transformer的encoder和decoder部分

mindspore打卡第9天 transformer的encoder和decoder部分 import mindspore from mindspore import nn from mindspore import ops from mindspore import Tensor from mindspore import dtype as mstypeclass ScaledDotProductAttention(nn.Cell):def __init__(self, dropout_…...

Python实现IPv4地址和16进制互相转换

Python实现IPv4地址和16进制互相转换 import socketdef ip_to_hex16(ipaddr):# 使用 socket 库中的方法将IP地址转换为网络字节序的二进制表示hex_bytes socket.inet_aton(ipaddr)# 将二进制数据转换为整数, 其中byteorderbig 表示使用大端字节序&#xff08;从高位到低位&…...

计算机视觉 | 基于图像处理和边缘检测算法的黄豆计数实验

目录 一、实验原理二、实验步骤1. 图像读取与预处理2. 边缘检测3. 轮廓检测4. 标记轮廓序号 三、实验结果四、完整代码 Hi&#xff0c;大家好&#xff0c;我是半亩花海。 本实验旨在利用 Python 和 OpenCV 库&#xff0c;通过图像处理和边缘检测算法实现黄豆图像的自动识别和计…...

深入分析 Android BroadcastReceiver (七)

文章目录 深入分析 Android BroadcastReceiver (七)1. 高级应用场景1.1 示例&#xff1a;动态权限请求1.2 示例&#xff1a;应用内通知更新 2. 安全性与性能优化2.1 示例&#xff1a;设置权限防止广播攻击2.2 示例&#xff1a;使用 LocalBroadcastManager2.3 示例&#xff1a;在…...

C++中的数据结构

一.STL标准库 结构:STL中有六大组件&#xff0c;分别是&#xff1a;容器&#xff0c;算法&#xff0c;迭代器&#xff0c;仿函数&#xff0c;配接器&#xff0c;配置器&#xff1b;以下分别介绍这六大组件中的最主要的三个。 1.容器 容器来配置存储空间&#xff0c;算法通过…...

武汉星起航:一站式服务,助力亚马逊卖家高效运营,实现收益飞跃

在跨境电商的浪潮中&#xff0c;武汉星起航电子商务有限公司以其独特的一站式跨境电商服务&#xff0c;为众多亚马逊卖家提供了强有力的支持&#xff0c;助力他们在不断发展的市场中脱颖而出&#xff0c;实现收益的大幅提升。 武汉星起航的一站式跨境电商服务&#xff0c;以其…...

从灵感到实践:Kimi辅助完成学术论文选题的文艺之旅

学境思源&#xff0c;一键生成论文初稿&#xff1a; AcademicIdeas - 学境思源AI论文写作 昨天我们为大家介绍了ChatGPT辅助完成实现设计&#xff08;AI与学术的交响&#xff1a;ChatGPT辅助下的实验设计新篇章&#xff09;。今天我们再来看看Kimi对于论文选题都能提供哪些帮助…...

华为od-C卷200分题目4 -电脑病毒感染

华为od-C卷200分题目4 -电脑病毒感染 一个局域网内有很多台电脑&#xff0c;分别标注为0 - N-1的数字。相连接的电脑距离不一样&#xff0c;所以感染时间不一样&#xff0c;感染时间用t表示。其中网络内一个电脑被病毒感染&#xff0c;其感染网络内所有的电脑需要最少需要多长…...

show-overflow-tooltip 解决elementui el-table标签自动换行的问题

elementui中 el-table中某一行的高度不想因为宽度不够而撑开换行展示的解决方法。可通过show-overflow-tooltip属性解决&#xff0c;如下 代码是这样的 <el-table-column width"80" prop"id" label"ID"></el-table-column> <el…...

数字社交的领航者:解析Facebook的引领作用

在当今数字化社会中&#xff0c;社交网络已经成为了人们日常生活不可或缺的一部分。而在众多社交平台中&#xff0c;Facebook凭借其巨大的用户基础和创新的技术应用&#xff0c;被公认为数字社交领域的领航者之一。本文将深入解析Facebook在数字社交中的引领作用&#xff0c;探…...

深度分析 Apache Flink 窗口机制

什么是 Flink 窗口&#xff1f; Apache Flink 是一个用于处理实时流数据的开源框架&#xff0c;其核心功能之一是窗口&#xff08;Window&#xff09;机制。窗口是 Flink 在处理流数据时用于划分数据流的逻辑概念&#xff0c;它将无限的流数据切割成有限的、可管理的部分&…...

ubuntu 软链接(ubuntu20.04)

ubuntu 软链接&#xff08;ubuntu20.04&#xff09; 在Ubuntu和其他Linux系统中&#xff0c;软链接&#xff08;也称为符号链接&#xff09;是文件系统中的一个特殊类型的文件&#xff0c;它作为一个引用或指针&#xff0c;指向另一个文件或目录。软链接类似于Windows中的快捷…...

如何在LabVIEW中使用FPGA模块

LabVIEW FPGA模块是NI公司推出的一款强大工具&#xff0c;它允许用户使用LabVIEW图形化编程环境来开发FPGA&#xff08;现场可编程门阵列&#xff09;应用程序。与传统的HDL&#xff08;硬件描述语言&#xff09;编程相比&#xff0c;LabVIEW FPGA模块大大简化了FPGA开发的过程…...

FPGA开发技能(7)Vivado设置bit文件加密

文章目录 前言1. AES加密原理2.xilinx的AES方案3.加密流程3.1生成加密的bit流3.2将密钥写入eFUSE寄存器 4.验证结论5.传送门 前言 在FPGA的项目发布的时候需要考虑项目工程加密的问题&#xff0c;一方面防止自己的心血被盗&#xff0c;另一方面也保护公司资产&#xff0c;保护知…...

【算法专题--链表】旋转链表 -- 高频面试题(图文详解,小白一看就懂!!)

目录 一、前言 二、题目描述 三、解题方法 ⭐解题思路---闭合为环 &#x1f34d; 案例图解 四、总结与提炼 五、共勉 一、前言 旋转链表 这道题&#xff0c;可以说是--链表专题--&#xff0c;最经典的一道题&#xff0c;也是在面试中频率最高的一道题目&#x…...

ElasticSearch 和 MySQL的区别

MySQLElasticSearch 数据库&#xff08;database&#xff09;索引&#xff08;index&#xff09;数据表&#xff08;table&#xff09; 类型&#xff08;type&#xff09; 记录文档&#xff08;document&#xff0c;json格式&#xff09; 一、ES基础命令 1. ES cat查询命令 2.…...

Linux部署wordpress站点

先安装宝塔面板 yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec 因为wordpress需要php&#xff0c;mysql&#xff0c;apache &#xff0c;httpd环境 参考&#xff1a;Linux 安装宝塔…...

实体零售连锁企业如何通过物流接口实现数智化转型升级?

在电子商务浪潮的持续冲击下&#xff0c;传统的实体零售行业面临着巨大的挑战。为了在线上线下融合的新零售时代保持竞争力&#xff0c;众多实体零售企业积极寻求数字化转型的突破。 某中国零售连锁百强企业近年来致力于打造自有品牌的线上销售体系&#xff0c;自2021年8月起接…...

AWS EKS上GPU工作负载自动扩缩容的异常排查指南

在AWS EKS上使用Karpenter和KEDA实现GPU工作负载的自动扩缩容是一个复杂的过程,涉及多个组件的协同工作。当遇到问题时,系统性的排查方法可以帮助我们快速定位和解决问题。本文将详细介绍如何对这个系统进行全面的异常排查。 1. Karpenter相关组件检查 1.1 NodePool检查 N…...

Pytest+Allure+Yaml+Jenkins+Gitlab接口自动化中Jenkins配置

一、背景 Jenkins&#xff08;本地宿主机搭建&#xff09; 拉取GitLab(服务器)代码到在Jenkins工作空间本地运行并生成Allure测试报告 二、框架改动点 框架主运行程序需要先注释掉运行代码&#xff08;可不改&#xff0c;如果运行报allure找不到就直接注释掉&#xff09; …...

应用及安全

目录 一、PAM 安全认证及配置 1.1配置 su 命令的认证 1.2PAM 配置文件结构二、账号和密码安全管理 2.1账号管理 2.2系统账号清理 2.3密码安全控制 2.4密码重设示例 2.5参考命令三、命令历史限制 3.1设置命令历史记录…...

字节流和字符流的相关知识

目录 1. Writer1.1 写两行数据1.2 换一种方式1.3 追加数据1.4 写很多数据&#xff0c;记得要清一下缓存1.5 用数组、字符串写入 2. Reader2.1 读个文件2.2 读取字符2.3 读取数据到数组2.4 复制文件 3. InputStream4. OutputStream5. 参考链接 1. Writer Writer类是Java.io包中…...

LLM意图识别器实践

利用 Ollama 和 LangChain 强化条件判断语句的智能提示分类 ❝ 本文译自Supercharging If-Statements With Prompt Classification Using Ollama and LangChain一文&#xff0c;以Lumos工具为例&#xff0c;讲解了博主在工程实践中&#xff0c;如何基于LangChain框架和本地LLM优…...

常见的反爬手段和解决思路(爬虫与反爬虫)

常见的反爬手段和解决思路&#xff08;爬虫与反爬虫&#xff09; 学习目标1 服务器反爬的原因2 服务器长反什么样的爬虫&#xff08;1&#xff09;十分低级的应届毕业生&#xff08;2&#xff09;十分低级的创业小公司&#xff08;3&#xff09;不小心写错了没人去停止的失控小…...

Stable Diffusion【真人模型】:人像光影摄影极限写实真实感大模型

大家好&#xff0c;我是极客菌 今天和大家分享一个基于SD1.5的真人大模型&#xff1a;人像光影摄影极限写实真实感大模型。 该模型具有以下特点&#xff1a; 真实肤感&#xff08;在面部肌理和皮肤肌理上均有加强学习&#xff0c;拒绝ai出图假的问题&#xff09; 永不脱妆&a…...

java实现图片添加水印

文章目录 前言一、工具类WatermarkUtil二、工具类介绍2.1 图片来源类型2.2 水印类型2.3 读取本地图片2.4 读取网络图片2.5 水印处理2.6 添加水印 三、测试添加水印总结 前言 给图片添加水印是一个很常见的需求&#xff0c;一般是用来防盗用。比如我们csdn上面写的文章中&#…...

CSS规则——font-face

font-face 什么是font-face&#xff1f; 想要让网页文字千变万化&#xff0c;仅靠font-family还不够&#xff0c;还要借助font-face&#xff08;是一个 CSS 规则&#xff0c;它允许你在网页上使用自定义字体&#xff0c;而不仅仅是用户系统中预装的字体。这意味着你可以通过提…...

【单片机毕业设计选题24034】-基于STM32的手机智能充电系统

系统功能: 系统可以设置充电时长&#xff0c;启动充电后按设置的充电时长充电&#xff0c;充电时间到后自动 停止充电&#xff0c;中途检测到温度过高也会结束充电并开启风扇和蜂鸣器报警。 系统上电后&#xff0c;OLED显示“欢迎使用智能充电系统请稍后”&#xff0c;两秒钟…...

[C++][数据结构][图][中][图的遍历][最小生成树]详细讲解

目录 1.图的遍历1.广度优先遍历2.深度优先遍历 2.最小生成树1.Kruskal算法2.Prim算法 1.图的遍历 给定一个图G和其中任意一个顶点 v 0 v_0 v0​&#xff0c;从 v 0 v_0 v0​出发&#xff0c;沿着图中各边访问图中的所有顶点&#xff0c;且每个顶 点仅被遍历一次 “遍历”&…...

退市新规解读—财务类强制退市

一、退市风险警示&#xff1a;第一年触及相关指标 上市公司最近一个会计年度触及下列退市风险指标之一&#xff0c;公司股票或存托凭证被实施退市风险警示(*ST)&#xff1a; 第1项 组合类财务指标 仅发行A股或B股&#xff0c;最近一个会计年度或追溯重述后最近一个会计年度 …...

小程序的生命周期使用方法和应用场景

小程序生命周期 初始化&#xff08;App Launch&#xff09; • 触发时机&#xff1a;小程序首次启动时。 • 主要事件&#xff1a;onLaunch。 • 功能与适用场景&#xff1a; • 全局数据初始化&#xff1a;设置应用的全局状态和变量。 • 登录状态检查&#xff1a;判断用户是…...

什么是C++模块化系统?C++20的模块化系统。

C20引入的模块化系统是一种新的代码组织和编译机制&#xff0c;它旨在替代传统的头文件机制&#xff0c;提供更好的代码组织、更快的编译速度和更强的封装性。模块化系统的主要目标包括&#xff1a; 减少编译时间&#xff1a;通过减少冗余的头文件解析和宏定义传播&#xff0c…...

信息安全体系架构设计

对信息系统的安全需求是任何单一安全技术都无法解决的&#xff0c;要设计一个信息安全体系架构&#xff0c;应当选择合适的安全体系结构模型。信息系统安全设计重点考虑两个方面&#xff1b;其一是系统安全保障体系&#xff1b;其二是信息安全体系架构。 1.系统安全保障体系 安…...

C++ ariac2 Windows库编译

cd "F:\\aria2" gmp-6.1.2.tar.lz expat-2.2.0.tar.bz2 sqlite-autoconf-3160200.tar.gz zlib-1.2.11.tar.gz c-ares-1.12.0.tar.gz libssh2-1.8.0.tar.gz --enable-libaria2 --enable-static libgnutls-dev&#xff08;对于HTTPS&#xff0c;BitTorrent&#xff0…...

isprintable()方法——判断字符是否为可打印字符

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 语法参考 isprintable()方法用于判断字符串中所有字符是否都是可打印字符或字符串为空。Unicode字符集中“Other”、“Separator”类别的字符是不可…...

24/07/02数据结构(1.1201)算法效率顺序表

数据结构基本内容:1.时间复杂度 空间复杂度2.顺序表链表3.栈 队列4.二叉树5.排序 数据结构是存储,组织数据的方式.指相互之间存在一种或多种特定关系的数据元素的集合 算法是定义良好的计算过程.取一个或一组值为输入并产生一个或一组值为输出. 需要知道虽然选择题有20-30个…...

继承QAbstractListModel,结合QListView

这里想要写一个QAbstractListModel的子类&#xff0c;学习一下如何实例化QAbstractListModel。 QAbstractListModel子类化-CSDN博客 QVariant与自定义类型互转之奇巧淫技_qt 类型转 qvariant-CSDN博客 #pragma once#include <QStyledItemDelegate> #include <qmeta…...

一款十六进制编辑器,你的瑞士军刀!!【送源码】

软件介绍 ImHex是一款功能强大的十六进制编辑器&#xff0c;专为逆向工程师、程序员以及夜间工作的用户设计。它不仅提供了基础的二进制数据编辑功能&#xff0c;还集成了一系列高级特性&#xff0c;使其成为分析和修改二进制文件的理想工具。 功能特点 专为逆向工程、编程和夜…...

固态电池量产加速,我们离电动车新时代还有多远?

随着一则确定性很强的不确定性消息不胫而走,固态电池又一次成为目光焦点!5月29日,《中国日报》报道称,中国或投入约60亿元,鼓励有条件的企业对全固态电池相关技术开展研发,宁德时代、比亚迪、一汽、上汽、卫蓝新能源和吉利共六家企业或获得政府基础研发支持。多位知情人士…...

竞争问界M7?东风奕派eπ008将于6月上市

作为东风奕派品牌旗下的第二款量产车型,东风奕派eπ008定位中大型SUV,已在2024北京车展期间开启预售,预售价格为20万-25万元。而日前笔者从相关渠道获悉,东风奕派eπ008将于今年6月完成上市。结合实车图来看,东风奕派eπ008拥有宽大饱满的车头造型,同时前包围两侧集成熏黑…...

python -【五】数据容器

数据容器 一、列表 列表的循环 name_list [张三, 李四, 王五] print(f类型是&#xff1a;{type(name_list)})# while 遍历列表 count 0 while count < len(name_list):print(fwhile 下标为[{count}] 的内容是[{name_list[count]}])count 1# for 循环 for name in name…...

手机投屏技巧:手机怎么投屏到电脑显示屏上?精选6招解决!

手机怎么投屏到电脑显示屏上&#xff1f;出于一些不同的原因&#xff0c;大多数人都希望能将手机投屏到电脑上。其中一个常见的原因是&#xff0c;大家经常会希望在笔记本电脑上共享图片&#xff0c;而无需上传或者登录微信进行文件传输。以及希望不依靠投影仪&#xff0c;就能…...

用Spring Security快速实现 RABC模型案例

RABC模型通常是指“基于角色的访问控制”&#xff08;Role-Based Access Control&#xff0c;RBAC&#xff09;模型。这是一种广泛使用的访问控制机制&#xff0c;用于限制用户或系统对计算机或网络资源的访问。在RBAC模型中&#xff0c;权限与角色相关联&#xff0c;用户通过分…...

拉法空袭造成平民死伤 以军称发生地点不在“安全区”内

本文转自【央视新闻客户端】;当地时间5月27日,以色列国防军发布通告称,以军军法署署长伊法特耶鲁沙尔米指示以军总参谋部事实调查和评估机制就26日针对拉法西北部的空袭进行调查。通告指出,以方情报显示目标地点存在巴勒斯坦伊斯兰抵抗运动(哈马斯)高级成员,以军根据情报…...