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

大连理工大学选修课——机器学习笔记(9):线性判别式与逻辑回归

线性判别式与逻辑回归

概述

判别式方法

产生式模型需要计算输入、输出的联合概率

  • 需要知道样本的概率分布,定义似然密度的隐式参数
  • 也称为基于似然的分类

判别式模型直接构造判别式 g i ( x ∣ θ i ) g_i(x|\theta_i) gi(xθi),显式定义判别式参数,不关心数据生成过程

基于判别式的方法只关注类区域之间的边界

在这里插入图片描述

一般认为,估计样本集的类密度比估计类判别式更困难,因为构造判别式通常采用简单的模型

如,线性判别式:

g i ( x ∣ w i , w i 0 ) = w i T + w i 0 = ∑ j = 1 d w i j x j + w i 0 g_i(x|w_i,w_{i0})=w_i^T+w_{i0}=\sum_{j=1}^dw_{ij}x_j+w_{i0} gi(xwi,wi0)=wiT+wi0=j=1dwijxj+wi0

广义上,线性判别式代表了一类机器学习模型

  • 逻辑回归
  • 支持向量机
  • 感知机
  • 神经网络

狭义上,线性判别式仅代表逻辑回归

线性判别式

建立判别式

g i ( x ∣ w i , w i 0 ) = w i T x + w i 0 = ∑ j = 1 d w i j x j + w i 0 g_i(x|w_i,w_{i0})=w_i^Tx+w_{i0}=\sum_{j=1}^dw_{ij}x_j+w_{i0} gi(xwi,wi0)=wiTx+wi0=j=1dwijxj+wi0

最大熵模型的判别式还是从条件后验概率出发

在这里插入图片描述

建模的条件

  1. 数据只有两类

  2. 线性可分

    在这里插入图片描述

判别式模型不考虑数据集的概率分布,直接假定判别式的形式

模型的训练

g i ( x ∣ w i , w i 0 ) = w i T x + w i 0 = ∑ j = 1 d w i j x j + w i 0 g_i(x|w_i,w_{i0})=w_i^Tx+w_{i0}=\sum_{j=1}^dw_{ij}x_j+w_{i0} gi(xwi,wi0)=wiTx+wi0=j=1dwijxj+wi0

可以采用梯度法,牛顿法等

也可以采用全局优化算法,如遗传算法,模拟退火算法等

线性模型的推广

如果数据不是线性可分的,可以提高模型的复杂度,例如使用二次判别式

  • 升维操作,增加高阶项

在这里插入图片描述

  • 升维操作的一般形式

    g i ( x ) = ∑ j = 1 k w j θ i j ( x ) + w i 0 g_i(x)=\sum_{j=1}^kw_j\theta_{ij}(x)+w_i0 gi(x)=j=1kwjθij(x)+wi0

    其中, θ i j \theta_{ij} θij是非线性函数,称为基函数

    常用的基函数有sin,exp,log等

线性模型的及决策

原则上,每个类别对应一个判别式,二值分类一个判别式可以分类

g ( x ) > 0 ? C 1 : C 2 g(x)>0\ ?\ C_1:C2 g(x)>0 ? C1:C2

线性模型的几何意义

任取超平面的两个点 x 1 , x 2 , x_1,x_2, x1,x2, g ( x 1 ) = g ( x 2 ) g(x_1)=g(x_2) g(x1)=g(x2)

w T w^T wT为超平面法线

x的新表达式为

x = x p + r w ∣ ∣ w ∣ ∣ x=x_p+r\frac{w}{||w||} x=xp+r∣∣w∣∣w

其中, x p x_p xp x x x到超平面的投影;r是x到超平面的距离 r = g ( x ) ∣ ∣ w ∣ ∣ r=\frac{g(x)}{||w||} r=∣∣w∣∣g(x)

超平面到原点的距离为 r 0 = w o ∣ ∣ w ∣ ∣ r_0=\frac{w_o}{||w||} r0=∣∣w∣∣wo

处理多类问题

当类别数大于2时,需要k个判别式,假定所有类均线性可分,则可以用线性判别式进行区分

对于属于类别 C i C_i Ci的样本 x x x,我们期望其判别式函数 g i ( x ) > 0 g_i(x)>0 gi(x)>0,而其它判别式函数 g j ( x ) < 0 g_j(x)<0 gj(x)<0

但是现实中,多个类别的判别式可能同时给出 g ( x ) > 0 g(x)>0 g(x)>0

因此,我们取判别式值最大的类即 预测类别 = m a x g i ( x ) 预测类别=max\ g_i(x) 预测类别=max gi(x)

此方法称为线性分类器

如果类线性不可分,则可以采取

  1. 升维
  2. 逐对分离:假定各类别间逐对线性可分,那么,有 K ( K − 1 ) 2 \frac{K(K-1)}{2} 2K(K1)个对,建立这么多个线性判别式

在这里插入图片描述

如果k既不属于i也不属于j,则在训练中舍弃样本 x t x^t xt x t x^t xt为其它类样本

这种不断排除的理念类似决策树

逻辑回归

讨论二值分类的对数线性模型

我们从后验概率 P ( C i ∣ x ) P(C_i|x) P(Cix)的计算出发,建立学习模型

定义 P ( C 1 ∣ x ) = y , P ( C 2 ∣ x ) = 1 − y P(C_1|x)=y,P(C_2|x)=1-y P(C1x)=y,P(C2x)=1y

决策为:

在这里插入图片描述

假设两个类别的数据 C 1 , C 2 C_1,C_2 C1,C2服从高斯分布,两类别共享协方差矩阵,在此假设下,贝叶斯分类器的判别式 g ( x ) g(x) g(x)是线性的,推导如下:

根据高斯判别分析的结论:

  • 后验概率 P ( C 1 ∣ x ) P(C_1|x) P(C1x)可表示为:

l o g P ( C 1 ∣ x ) P ( C 2 ∣ x ) = w T x + w 0 \begin{align} log\frac{P(C_1|x)}{P(C_2|x)}=w^Tx+w_0 \end{align} logP(C2x)P(C1x)=wTx+w0

  • 由于 P ( C 2 ∣ x ) = 1 − P ( C 1 ∣ x ) P(C_2|x)=1-P(C_1|x) P(C2x)=1P(C1x),上式等价于:

l o g P ( C 1 ∣ x ) 1 − P ( C 1 ∣ x ) = w T x + w 0 = l o g i t ( P ( C 1 ∣ x ) ) \begin{align} log\frac{P(C_1|x)}{1-P(C_1|x)}=w^Tx+w_0=logit(P(C_1|x)) \end{align} log1P(C1x)P(C1x)=wTx+w0=logit(P(C1x))

这正是对数几率的定义

  • ( 2 ) (2) (2)移项,得:

P ( C 1 ∣ x ) = 1 1 + e − ( w T + w 0 ) P(C_1|x)=\frac{1}{1+e^{-(w^T+w_0)}} P(C1x)=1+e(wT+w0)1

( 3 ) (3) (3)式为逻辑回归的模型形式,sigmoid。

Logistic函数(也称sigmoid)

P ( C 1 ∣ x ) = 1 1 + e − ( w T + w 0 ) = s i g m o i d ( w T x + w 0 ) P(C_1|x)=\frac{1}{1+e^{-(w^T+w_0)}}=sigmoid(w^Tx+w_0) P(C1x)=1+e(wT+w0)1=sigmoid(wTx+w0)

在这里插入图片描述

sigmoid函数图像,y>0.5,选C_1

Logistic函数的一般形式

在这里插入图片描述

其中, μ \mu μ为位置参数, γ > 0 \gamma>0 γ>0为形状参数,关于 ( μ , 1 2 ) (\mu,\frac{1}{2}) (μ,21)对称

逻辑回归

逻辑回归的核心思想,在于不考虑数据分布,假定类似然密度的对数比为线性函数,那么:

l o g P ( x ∣ C 1 ) P ( x ∣ C 2 ) = w T x + w 0 0 \begin{align} log\ \frac{P(x|C_1)}{P(x|C_2)}=w^Tx+w_0^0 \end{align} log P(xC2)P(xC1)=wTx+w00

通过贝叶斯定理,将后验概率转换为似然比和先验比的乘积:

l o g P ( C 1 ∣ x ) P ( C 2 ∣ x ) = l o g P ( x ∣ C 1 ) P ( x ∣ C 2 ) + l o g P ( C 1 ) P ( C 2 ) \begin{align} log\frac{P(C_1|x)}{P(C_2|x)}=log\frac{P(x|C_1)}{P(x|C_2)}+log\frac{P(C_1)}{P(C_2)} \end{align} logP(C2x)P(C1x)=logP(xC2)P(xC1)+logP(C2)P(C1)

由公式 ( 2 ) ( 3 ) ( 4 ) (2)(3)(4) (2)(3)(4)得:

l o g i t ( P ( C 1 ∣ x ) ) = w T x + w 0 0 + l o g P ( C 1 ) P ( C 2 ) \begin{align}logit(P(C_1|x))=w^Tx+w^0_0+log\frac{P(C_1)}{P(C_2)} \end{align} logit(P(C1x))=wTx+w00+logP(C2)P(C1)

w 0 0 + l o g P ( C 1 ) P ( C 2 ) w^0_0+log\frac{P(C_1)}{P(C_2)} w00+logP(C2)P(C1)合并为新的偏置项,那么先验概率 P ( C k ) P(C_k) P(Ck)被吸收到了偏置项,模型仍保持线性:

l o g i t ( P ( C 1 ∣ x ) ) = w T x + w 0 0 logit(P(C_1|x))=w^Tx+w^0_0 logit(P(C1x))=wTx+w00

处理多类问题

我们推广二值分类至 K > 2 K>2 K>2的情形,假定:

l o g p ( x ∣ C i ) p ( x ∣ C k ) = w i T + w i 0 0 \begin{align} log\frac{p(x|C_i)}{p(x|C_k)}=w_i^T+w_{i0}^0 \end{align} logp(xCk)p(xCi)=wiT+wi00

进而:

p ( C i ∣ x ) p ( C k ∣ x ) = e w i T + w i 0 , i = 1 , 2 , ⋯ , K − 1 \begin{align} \frac{p(C_i|x)}{p(C_k|x)}=e^{w_i^T+w_{i0}},\quad i=1,2,\cdots,K-1 \end{align} p(Ckx)p(Cix)=ewiT+wi0,i=1,2,,K1

∑ i = 1 K p ( C i ∣ x ) p ( C K ∣ x ) = 1 p ( C k ∣ x ) = 1 + ∑ j = 1 K − 1 e w j x + w j 0 \begin{align} \sum_{i=1}^K\frac{p(C_i|x)}{p(C_K|x)}=\frac{1}{p(C_k|x)}= 1+\sum_{j=1}^{K-1}e^{w_jx+w_{j0}} \end{align} i=1Kp(CKx)p(Cix)=p(Ckx)1=1+j=1K1ewjx+wj0

于是:

p ( C k ∣ x ) = 1 1 + ∑ j = 1 K − 1 e w j x + w j 0 \begin{align} p(C_k|x)=\frac{1}{1+\sum_{j=1}^{K-1}e^{w_jx+w_{j0}}} \end{align} p(Ckx)=1+j=1K1ewjx+wj01

对于其它类别 i = 1 , ⋯ , K − 1 , i=1,\cdots,K-1, i=1,,K1,由公式 ( 3 ) (3) (3)得:

p ( C i ∣ x ) = e w i x + w i 0 1 + ∑ j = 1 K − 1 e w j x + w 0 \begin{align} p(C_i|x)=\frac{e^{w_ix+w_{i0}}}{1+\sum_{j=1}^{K-1}e^{w_jx+w_0}} \end{align} p(Cix)=1+j=1K1ewjx+w0ewix+wi0

将公式同一形式,对所有 i = 1 , ⋯ , K : i=1,\cdots,K: i=1,,K:

p ( C i ∣ x ) = e w i x + w i 0 ∑ j = 1 K e w j x + w j 0 , 其中 w K , w K 0 = 0 p(C_i|x)=\frac{e^{w_ix+w_{i0}}}{\sum_{j=1}^Ke^{w_jx+w_{j0}}},其中w_K,w_{K0}=0 p(Cix)=j=1Kewjx+wj0ewix+wi0,其中wK,wK0=0

softmax函数

y i = p ^ ( C i ∣ x ) = e w i x + w 0 ∑ e w j x + w j 0 y_i=\hat p(C_i|x)=\frac{e^{w_ix+w_0}}{\sum e^{w_jx+w_{j0}}} yi=p^(Cix)=ewjx+wj0ewix+w0

如果一个类C的判别式加权函数值明显大于其它类的加权和,那么 y i y_i yi接近于1,将数值限定在了 [ 0 , 1 ] [0,1] [0,1]之间,可以用概率表示。

逻辑回归与最大熵模型

逻辑回归和最大熵模型可以认为是同一类模型的不同表现形式。

在这里插入图片描述

逻辑回归的训练——梯度下降法

逻辑回归交叉熵损失函数:

E = − ∑ [ r l o g y + ( 1 − r ) l o g ( 1 − y ) ] E=-\sum [rlogy+(1-r)log(1-y)] E=[rlogy+(1r)log(1y)]

对E求偏导,乘以学习率,为更新方向:

△ w j = − η ∂ E ∂ w j = η ∑ ( r − y ) x j \triangle w_j=-\eta\frac{\partial E}{\partial w_j}=\eta\sum(r-y)x_j wj=ηwjE=η(ry)xj

相关文章:

大连理工大学选修课——机器学习笔记(9):线性判别式与逻辑回归

线性判别式与逻辑回归 概述 判别式方法 产生式模型需要计算输入、输出的联合概率 需要知道样本的概率分布&#xff0c;定义似然密度的隐式参数也称为基于似然的分类 判别式模型直接构造判别式 g i ( x ∣ θ i ) g_i(x|\theta_i) gi​(x∣θi​)&#xff0c;显式定义判别式…...

[特殊字符] 开发工作高内存占用场景下,Windows 内存压缩机制是否应该启用?实测分析与优化建议

在日常开发中&#xff0c;我们往往需要同时运行多个高占用内存的工具&#xff0c;例如&#xff1a; IntelliJ IDEA VMware 虚拟机 多个 Java 后端程序 这些应用程序非常“吃内存”&#xff0c;轻松就能把 16GB、甚至 24GB 的物理内存用满。那么&#xff0c;Windows 的“内存…...

相机的基础架构

&#x1f4f7; 相机相关基础架构学习路径 一、了解手机相机系统架构 Android Camera HAL&#xff08;如果你是做 Android 平台&#xff09; 学习 Camera HAL3 架构&#xff08;基于 camera_device_t, camera3_device_ops 接口&#xff09; 熟悉 CameraService → CameraProvid…...

C# 类成员的访问:内部与外部

在 C# 编程中&#xff0c;了解如何从类的内部和外部访问成员是非常重要的。本文将详细介绍这两种访问方式&#xff0c;并通过示例代码展示其具体应用。 从类的内部访问成员 类的成员可以在类的内部自由地互相访问&#xff0c;即使这些成员被声明为private。在类的方法中&…...

DAPO:对GRPO的几点改进

DAPO&#xff1a;对GRPO的几点改进 TL; DR&#xff1a;对 GRPO 的几处细节进行了优化&#xff0c;包括去除 KL 约束、解耦 ppo-clip 的上下界&#xff0c;上界设置更高以鼓励探索、超长回答过滤、token level 损失计算等。相比于原始 GRPO&#xff0c;在 AIME24 上提升非常显著…...

从零构建 MCP Server 与 Client:打造你的第一个 AI 工具集成应用

目录 &#x1f680; 从零构建 MCP Server 与 Client&#xff1a;打造你的第一个 AI 工具集成应用 &#x1f9f1; 1. 准备工作 &#x1f6e0;️ 2. 构建 MCP Server&#xff08;服务端&#xff09; 2.1 初始化服务器 &#x1f9e9; 3. 添加自定义工具&#xff08;Tools&…...

2025.4.27 Vue.js 基础学习笔记

一、Vue.js 简介 Vue.js&#xff08;简称 Vue&#xff09;是一个用于构建用户界面的渐进式 JavaScript 框架。它具有以下特点&#xff1a; 轻量级 &#xff1a;核心库体积小&#xff0c;性能优秀&#xff0c;不占用过多资源&#xff0c;加载速度快&#xff0c;适合各种规模的应…...

基于用户场景的汽车行驶工况构建:数据驱动下的能耗优化革命

行业现状&#xff1a;标准工况与用户场景的割裂 全球汽车行业普遍采用WLTC工况进行能耗测试&#xff0c;但其与真实道路场景差异显著。据研究&#xff0c;WLTC工况下车辆能耗数据比实际道路低10%-30%&#xff0c;导致用户对续航虚标投诉激增&#xff08;数据来源&#xff1a;东…...

IoTDB集群部署中的网络、存储与负载配置优化

一、引言 在现代计算机系统和应用程序中&#xff0c;网络I/O性能是决定整体系统表现的关键因素之一。特别是在IoTDB集群环境中&#xff0c;网络I/O的重要性尤为突出&#xff0c;特别是在处理大量测点数据、客户端请求以及集群内部通信时。本文将介绍IoTDB数据库集群部署过程中…...

Unity URPShader:实现和PS一样的色相/饱和度调整参数效果(修复)

目录 前言&#xff1a; 一、问题原因 二、算法修复 三、全代码 前言&#xff1a; 在之前的文章我已经实现了标题所述的内容功能&#xff1a;Unity URPShader&#xff1a;实现和PS一样的色相/饱和度调整参数效果-CSDN博客 但在偶然测试的时候&#xff0c;发现当采样的图片为…...

告别手动时代!物联网软件开发让万物自动互联

清晨&#xff0c;智能窗帘随着阳光自动拉开&#xff1b;运动时&#xff0c;手表精准记录着健康数据&#xff1b;回到家&#xff0c;室温早已调节至最舒适状态...这些场景的实现&#xff0c;都离不开物联网软件开发的技术支撑。在智能家居软件开发、智能穿戴软件开发、医疗器械软…...

Vue ui初始化项目并使用iview写一个菜单导航

winR 输入命令 vue ui浏览器会自动打开http://localhost:8000/ 找到创建 image.png 选择一个目录创建vue项目 image.png 点击再此创建新项目 image.png 我一般都是再已经有git仓库的目录进行项目创建&#xff0c;所以这个勾去掉 点击下一步 image.png 这里可以选择默认&#x…...

函数调用及Chain——SQL+GLM

Langchainchain数据库操作_langchain 操作数据库-CSDN博客 本文和基于上述链接 进一步。 初始化数据库&模型 # temperature0&#xff0c;此处仅需要SQL语句&#xff0c;不需要多样化返回。 from langchain.chains.sql_database.query import create_sql_query_chain from …...

数据科学与计算

Seaborn的介绍 Seaborn 是一个建立在 Matplotlib 基础之上的 Python 数据可视化库&#xff0c;专注于绘制各种统计图形&#xff0c;以便更轻松地呈现和理解数据。 Seaborn 的设计目标是简化统计数据可视化的过程&#xff0c;提供高级接口和美观的默认主题&#xff0c;使得用户…...

【AI提示词】二八法则专家

提示说明 精通二八法则&#xff08;帕累托法则&#xff09;的广泛应用&#xff0c;擅长将其应用于商业、管理、个人发展等领域&#xff0c;深入理解其在不同场景中的具体表现和实际意义。 提示词 # Role: 二八法则专家## Profile - language: 中文 - description: 精通二八法…...

PostgreSQL Patroni集群组件作用介绍:Patroni、etcd、HAProxy、Keepalived、Watchdog

1. Watchdog 简介 1.1 核心作用 • 主节点故障检测 Watchdog 会定时检测数据库主节点&#xff08;或 Pgpool 主节点&#xff09;的运行状态。 一旦主节点宕机&#xff0c;它会发起故障切换请求。 • 协调主备切换 多个 Pgpool 节点时&#xff0c;Watchdog 保证只有一个 Pg…...

【计算机视觉】图像分割:Segment Anything (SAM):通用图像分割的范式革命

Segment Anything&#xff1a;通用图像分割的范式革命 技术突破与架构创新核心设计理念关键技术组件 环境配置与快速开始硬件要求安装步骤基础使用示例 深度功能解析1. 多模态提示融合2. 全图分割生成3. 高分辨率处理 模型微调与定制1. 自定义数据集准备2. 微调训练配置 常见问…...

改进系列(10):基于SwinTransformer+CBAM+多尺度特征融合+FocalLoss改进:自动驾驶地面路况识别

目录 1.代码介绍 1. 主训练脚本train.py 2. 工具函数与模型定义utils.py 3. GUI界面应用infer_QT.py 2.自动驾驶地面路况识别 3.训练过程 4.推理 5.下载 代码已经封装好&#xff0c;对小白友好。 想要更换数据集&#xff0c;参考readme文件摆放好数据集即可&#xff0c…...

大型连锁酒店集团数据湖应用示例

目录 一、应用前面临的严峻背景 二、数据湖的精细化构建过程 &#xff08;一&#xff09;全域数据整合规划 &#xff08;二&#xff09;高效的数据摄取与存储架构搭建 &#xff08;三&#xff09;完善的元数据管理体系建设 &#xff08;四&#xff09;强大的数据分析平台…...

element.scrollIntoView(options)

handleNextClick 函数详解 功能描述 该函数实现在一个表格中“跳转到下一行”的功能&#xff0c;并将目标行滚动至视图顶部。通常用于导航或高亮显示当前选中的数据行。 const handleNextClick () > {// 如果当前已经是最后一行&#xff0c;则不执行后续操作if (current…...

python查看指定的进程是否存在

import os class Paly_Install(object):"""项目根目录"""def get_path(self):self.basedir os.path.dirname(os.path.abspath(__file__))"""安装失败的txt文件"""def test_app(self):self.app["com.faceboo…...

HAproxy+keepalived+tomcat部署高可用负载均衡实践

目录 一、前言 二、服务器规划 三、部署 1、jdk18安装 2、tomcat安装 3、haproxy安装 4、keepalived安装 三、测试 1、服务器停机测试 2、停止haproxy服务测试 总结 一、前言 HAProxy是一个使用C语言编写的自由及开放源代码软件&#xff0c;其提供高可用性、…...

C++负载均衡远程调用学习之自定义内存池管理

目录 1.内存管理_io_buf的结构分析 2.Lars_内存管理_io_buf内存块的实现 3.buf总结 4.buf_pool连接池的单例模式设计和基本属性 5.buf_pool的初始化构造内存池 6.buf_pool的申请内存和重置内存实现 7.课前回顾 1.内存管理_io_buf的结构分析 ## 3) Lars系统总体架构 ​ …...

mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz的下载安装和使用

资源获取链接&#xff1a; mysql-5.7.24-linux-glibc2.12-x86-64.tar.gz和使用说明资源-CSDN文库 详细作用 数据库服务器的核心文件&#xff1a; 这是一个压缩包&#xff0c;解压后包含 MySQL 数据库服务器的可执行文件、库文件、配置文件模板等。 它用于在 Linux 系统上安装…...

Kafka Producer的acks参数对消息可靠性有何影响?

1. acks0 可靠性最低生产者发送消息后不等待任何Broker确认可能丢失消息&#xff08;Broker处理失败/网络丢失时无法感知&#xff09;吞吐量最高&#xff0c;适用于允许数据丢失的场景&#xff08;如日志收集&#xff09; 2. acks1 (默认值) Leader副本确认模式生产者等待Le…...

Linux-04-用户管理命令

一、useradd添加新用户: 基本语法: useradd 用户名:添加新用户 useradd -g 组名 用户:添加新用户到某个组二、passwd设置用户密码: 基本语法: passwd 用户名:设置用户名密码 三、id查看用户是否存在: 基本语法: id 用户名 四、su切换用户: 基本语法: su 用户名称:切换用…...

node爬虫包 pup-crawler,超简单易用

PUP Crawler 这是一个基于puppeteer的简单的爬虫&#xff0c;可以爬取动态、静态加载的网站。 常用于【列表-详情-内容】系列的网站&#xff0c;比如电影视频等网站。 github地址 Usage npm install pup-crawler简单用法&#xff1a; import { PupCrawler } from pup-craw…...

艺术与科技的双向奔赴——高一鑫荣获加州联合表彰

2025年4月20日,在由M.A.D公司协办的“智艺相融,共赴价值巅峰”(Academic and Artistic Fusion Tribute to the Summit of Value)主题发布会上,音乐教育与科技融合领域的代表人物高一鑫,因其在数字音乐教育与中美文化交流方面的杰出贡献,荣获了圣盖博市议员Jorge Herrera和尔湾市…...

React-Native Android 多行被截断

1. 问题描述&#xff1a; 如图所示&#xff1a; 2. 问题解决灵感&#xff1a; 使用相同的react-native代码&#xff0c;运行在两个APP&#xff08;demo 和 project&#xff09;上。demo 展示正常&#xff0c;project 展示不正常。 对两个页面截图&#xff0c;对比如下。 得出…...

Canvas基础篇:图形绘制

Canvas基础篇&#xff1a;图形绘制 图形绘制moveTo()lineTo()lineTo绘制一条直线代码示例效果预览 lineTo绘制平行线代码示例效果预览 lineTo绘制矩形代码示例效果预览 arc()arc绘制一个圆代码实现效果预览 arc绘制一段弧代码实现效果预览 arcTo()rect()曲线 结语 图形绘制 在…...

自定义实现elementui的锚点

背景 前不久有个需求&#xff0c;上半部分是el-step步骤条&#xff0c;下半部分是一些文字说明&#xff0c;需要实现点击步骤条中某个步骤自定义定位到对应部分的文字说明&#xff0c;同时滚动内容区域的时候还要自动选中对应区域的步骤。element-ui-plus的有锚点这个组件&…...

基于UNet算法的农业遥感图像语义分割——补充版

前言 本案例希望建立一个UNET网络模型&#xff0c;来实现对农业遥感图像语义分割的任务。本篇博客主要包括对上一篇博客中的相关遗留问题进行解决&#xff0c;并对网络结构进行优化调整以适应个人的硬件设施——NVIDIA GeForce RTX 3050。 本案例的前两篇博客直达链接基于UNe…...

分布式数字身份:迈向Web3.0世界的通行证 | 北京行活动预告

数字经济浪潮奔涌向前&#xff0c;Web3.0发展方兴未艾&#xff0c;分布式数字身份&#xff08;Decentralized Identity&#xff0c;简称DID&#xff09;通过将分布式账本技术与身份治理相融合&#xff0c;在Web3.0时代多方协作的分布式应用场景中发挥核心作用&#xff0c;是构建…...

CentOS网络之network和NetworkManager深度解析

文章目录 CentOS网络之network和NetworkManager深度解析1. CentOS网络服务发展历史1.1 传统network阶段&#xff08;CentOS 5-6&#xff09;1.2 过渡期&#xff08;CentOS 7&#xff09;1.3 新时代&#xff08;CentOS 8&#xff09; 2. network和NetworkManager的核心区别3. ne…...

【XR】MR芯片 和 VR芯片之争

【XR】MR芯片 和 VR芯片之争 1. MR芯片 和 VR芯片 之间的最大差异是什么2. MR芯片 和 VR芯片 之间的最大差异是什么,国内外市场上有哪些芯片,价格如何,市场怎么样,芯片价格怎么样1. MR芯片 和 VR芯片 之间的最大差异是什么 MR芯片(混合现实芯片)与VR芯片(虚拟现实芯片)…...

关于安卓自动化打包docker+jenkins实现

背景 安卓开发过程中&#xff0c;尤其是提测后&#xff0c;会有一个发包的流程。这个流程简单来说&#xff0c;一般都是开发打包&#xff0c;然后发群里&#xff0c;测试再下载&#xff0c;发送到分发平台&#xff0c;然后把分发平台的应用主页发出来&#xff0c;最后群里面的…...

如何使用CAN分析仪验证MCU CAN错误机制

本文通过实验验证CAN控制器的错误处理机制是否符合相关标准。具体而言&#xff0c;我们使用ZPS-CANFD设备&#xff08;ZPS-CANFD介绍&#xff09;作为测量工具&#xff0c;USBCANFD-200U作为被测设备&#xff08;DUT&#xff09;&#xff0c;通过注入特定类型的错误&#xff0c…...

Centos 7安装 NVIDIA CUDA Toolkit

下载 # 查看操作系统信息 uname -m && cat /etc/redhat-release # 查看显卡信息 lspci | grep -i nvidia从NVIDIA CUDA Toolkit官网下载符合你需求的版本&#xff0c;我这里选择的是runfile(local)的方式。 安装 现在完成后进行安装 chmod x cuda_12.4.0_550.54.1…...

软件测试52讲学习分享:深入理解单元测试

课程背景 最近我在学习极客时间的《软件测试52讲》课程&#xff0c;这是由腾讯TEG基础架构部T4级专家茹炳晟老师主讲的认证课程。作为数字化转型与人工智能(DTAI)产业人才基地建设中心的认证课程&#xff0c;内容非常专业实用。今天想和大家分享第3讲"什么是单元测试&…...

90.如何将Maui应用安装到手机(最简) C#例子 Maui例子

今天我来分享一下如何将Maui应用安装到手机上进行测试。 首先&#xff0c;创建一个新的Maui应用项目。 点击运行 在Visual Studio中&#xff0c;点击“运行”按钮&#xff0c;预览应用的初始效果&#xff0c;确保一切正常。 连接设备 使用数据线将手机连接到电脑。确保手机已…...

“100% 成功的 PyTorch CUDA GPU 支持” 安装攻略

#工作记录 一、总述 在深度学习领域&#xff0c;PyTorch 凭借其灵活性和强大的功能&#xff0c;成为了众多开发者和研究者的首选框架。而 CUDA GPU 支持能够显著加速 PyTorch 的计算过程&#xff0c;大幅提升训练和推理效率。然而&#xff0c;安装带有 CUDA GPU 支持的 PyTor…...

如何在Dify沙盒中安装运行pandas、numpy

如何在Dify沙盒中安装运行pandas、numpy 1. 创建python-requirements.txt文件2. 创建config.yaml文件3. 重启 docker-sandbox-14. 为什么要这样改的一些代码解析&#xff08;Youtube视频截图&#xff09; 1. 创建python-requirements.txt文件 在 Dify 的 Docker 目录下面&…...

ES集群搭建及工具类

文章说明 本文主要记录Windows下搭建ES集群的过程&#xff0c;并提供了一个通用的ES工具类&#xff1b;工具类采用http接口调用es功能&#xff0c;目前仅提供了简单的查询功能&#xff0c;可在基础上额外扩展 集群搭建 ES的下载安装非常简单&#xff0c;只需要下载软件的 zip 压…...

抓取工具Charles配置教程(mac电脑+ios手机)

mac电脑上的配置 1. 下载最新版本的Charles 2. 按照以下截图进行配置 2.1 端口号配置&#xff1a; 2.2 https配置 3. mac端证书配置 4. IOS手机端网络配置 4.1 先查看电脑上的配置 4.2 配置手机网络 连接和电脑同一个wifi&#xff0c;然后按照以下截图进行配置 5. 手机端证书…...

JavaScript 代码搜索框

1. 概述与需求分析 功能&#xff1a;在网页中实时搜索用户代码、关键字&#xff1b;展示匹配行、文件名&#xff1b;支持高亮、正则、模糊匹配。非功能&#xff1a;大文件集&#xff08;几十万行&#xff09;、高并发、响应 <100ms&#xff1b;支持增量索引和热更新。 2. …...

ESP32开发-作为TCP服务端接收数据

​​ESP32 ENC28J60 仅作为TCP服务端​​ &#xff08;电脑通过 ​​网络调试助手​​ 连接ESP32&#xff0c;实现双向通信&#xff09; ​​完整代码​​ #include <SPI.h> #include <EthernetENC.h> // 或 UIPEthernet.h// 网络配置 byte mac[] {0xDE, 0xAD…...

数智化招标采购系统针对供应商管理解决方案(采购如何管控供应商)

随着《优化营商环境条例》深化实施&#xff0c;采购领域正通过政策驱动和技术赋能&#xff0c;全面构建供应商全生命周期管理体系&#xff0c;以规范化、数智化推动采购生态向透明、高效、智能方向持续升级。 郑州信源数智化招标采购系统研发商&#xff0c;通过供应商管理子系…...

服务端字符过滤 与 SQL PDO防注入

注入示例 # step 1 SQL SELECT * FROM users WHERE username admin AND password e10adc3949ba59abbe56e057f20f883e # step 2 SQL SELECT * FROM users WHERE username admin# AND password 96e79218965eb72c92a549dd5a330112 关键点是这2个SQL的区别.其中第二步由于前台传…...

章越科技赋能消防训练体征监测与安全保障,从传统模式到智能跃迁的实践探索

引言&#xff1a;智能化转型浪潮下&#xff0c;消防训练的“破局”之需 2021年《“十四五”国家消防工作规划》的出台&#xff0c;标志着我国消防救援体系正式迈入“全灾种、大应急”的全新阶段。面对地震、洪涝、危化品泄漏等复杂救援场景&#xff0c;消防员不仅需要更强的体…...

RSYSLOG收集深信服log

RSYSLOG收集深信服ATRUST日志配置一直不成功&#xff0c;没有生成log文件&#xff0c;网上搜索到&#xff1a;如果你想要接收所有来自特定 IP 的日志&#xff0c;可以使用更通用的模式&#xff1a; 参考着修改配置 if $fromhost-ip 172.18.1.13 then /data/logs/network-devi…...