矩阵的奇异值(SVD)分解和线性变换
矩阵的奇异值(SVD)分解和线性变换
SVD定义
奇异值分解(Singular Value Decomposition,简称 SVD)是一种重要的线性代数工具,能够将任意矩阵 ( A ∈ R m × n \mathbf{A} \in \mathbb{R}^{m \times n} A∈Rm×n) 分解成三个特定结构的矩阵相乘的形式:
A = U Σ V ⊤ \mathbf{A} = \mathbf{U} \boldsymbol{\Sigma} \mathbf{V}^\top A=UΣV⊤
这里,
U \mathbf{U} U 是一个 m × m m \times m m×m阶正交矩阵;
Σ \boldsymbol{\Sigma} Σ 是一个 m × n m \times n m×n阶对角矩阵,其对角线上元素称为奇异值,按降序排列;
V \mathbf{V} V是一个 n × n n \times n n×n阶正交矩阵。
计算过程
奇异值分解(Singular Value Decomposition,SVD)是一种重要的矩阵分解方法,在许多领域都有广泛应用,以下是其详细介绍:
定义与数学表达式
- 对于任意一个 m × n m\times n m×n的矩阵 A A A,奇异值分解是将其分解为三个矩阵的乘积形式,即 A = U Σ V T A = U\Sigma V^T A=UΣVT。
- 其中 U U U是一个 m × m m\times m m×m的正交矩阵,其列向量称为左奇异向量。
- Σ \Sigma Σ是一个 m × n m\times n m×n的对角矩阵,其对角线上的元素称为奇异值,通常按从大到小的顺序排列,其他非对角元素均为零。
- V V V是一个 n × n n\times n n×n的正交矩阵,其列向量称为右奇异向量。
计算过程
- 首先计算矩阵 A T A A^TA ATA和 A A T AA^T AAT,它们分别是 n × n n\times n n×n和 m × m m\times m m×m的方阵。
- 然后求 A T A A^TA ATA的特征值和特征向量,设其特征值为 λ 1 ≥ λ 2 ≥ ⋯ ≥ λ n ≥ 0 \lambda_1\geq\lambda_2\geq\cdots\geq\lambda_n\geq0 λ1≥λ2≥⋯≥λn≥0,对应的单位特征向量为 v 1 , v 2 , ⋯ , v n v_1,v_2,\cdots,v_n v1,v2,⋯,vn,则 V = [ v 1 , v 2 , ⋯ , v n ] V = [v_1,v_2,\cdots,v_n] V=[v1,v2,⋯,vn]。
- 奇异值 σ i = λ i \sigma_i=\sqrt{\lambda_i} σi=λi, i = 1 , 2 , ⋯ , n i = 1,2,\cdots,n i=1,2,⋯,n,将其组成对角矩阵 Σ \Sigma Σ。
- 最后通过 u i = 1 σ i A v i u_i=\frac{1}{\sigma_i}Av_i ui=σi1Avi(当 σ i ≠ 0 \sigma_i\neq0 σi=0时)计算左奇异向量,组成矩阵 U U U。
几何意义
- 从几何角度看,矩阵 A A A可以看作是从 n n n维空间到 m m m维空间的一个线性变换。奇异值分解将这个线性变换分解为三个步骤:
- 首先是一个由 V T V^T VT表示的旋转或反射变换,它作用于原始向量在 n n n维空间中的坐标。
- 然后是由 Σ \Sigma Σ表示的缩放变换,它沿着各个坐标轴方向对向量进行不同程度的缩放,缩放的程度由奇异值决定。
- 最后是由 U U U表示的旋转或反射变换,它将经过缩放后的向量映射到 m m m维空间中。
应用领域
- 数据压缩:在图像、视频等数据处理中,可利用奇异值分解对数据进行压缩。由于奇异值按大小排序,较大的奇异值包含了矩阵的主要信息,保留较大的奇异值,将较小的奇异值设为零,再通过分解后的矩阵重构数据,可以在损失较少信息的情况下实现数据的压缩。
- 主成分分析(PCA):在数据分析和机器学习中,PCA用于降维和特征提取。通过对数据矩阵进行奇异值分解,可以找到数据的主要成分,即对应于较大奇异值的左奇异向量或右奇异向量,从而实现对数据的降维和特征提取,去除数据中的噪声和冗余信息。
- 推荐系统:在推荐系统中,可将用户-物品评分矩阵进行奇异值分解,通过低秩近似来预测用户对未评分物品的喜好程度,从而为用户提供个性化的推荐。
- 信号处理:在信号处理领域,奇异值分解可用于信号去噪、特征提取等。例如在语音识别中,对语音信号的特征矩阵进行奇异值分解,去除噪声对应的较小奇异值,可提高语音信号的质量和识别准确率。
示例
对称方阵的SVD
对于对称方阵 A A A作奇异值分解, A = Q S Q T A=QSQ^{T} A=QSQT,其中 Q = [ cos θ − sin θ sin θ cos θ ] Q=\begin{bmatrix} \cos\theta & -\sin \theta \\ \sin \theta & \cos \theta \end{bmatrix} Q=[cosθsinθ−sinθcosθ], Q Q Q为旋转矩阵。
A = [ 2 1 1 2 ] A=\begin{bmatrix} 2 &1\\ 1 &2 \end{bmatrix} A=[2112]
令,
d e t ( A − λ I ) = 0 det(A-\lambda I)=0 det(A−λI)=0
即,
A − λ I = [ 2 1 1 2 ] − [ λ 0 0 λ ] = [ 2 − λ 1 1 2 − λ ] A-\lambda I=\begin{bmatrix}2 & 1\\1 & 2\end{bmatrix}-\begin{bmatrix}\lambda & 0 \\0 & \lambda \end{bmatrix} =\begin{bmatrix} 2-\lambda & 1\\ 1 & 2-\lambda \end{bmatrix} A−λI=[2112]−[λ00λ]=[2−λ112−λ]
即,
λ 2 − 4 λ + 3 = 0 \lambda ^{2}-4\lambda +3=0 λ2−4λ+3=0
即,
( λ − 1 ) ( λ − 3 ) = 0 (\lambda -1)(\lambda -3)=0 (λ−1)(λ−3)=0
故,矩阵 A A A的特征值为 λ 1 = 3 \lambda_{1}=3 λ1=3, λ 2 = 1 \lambda_{2}=1 λ2=1,
令,
[ 2 − λ 1 1 1 2 − λ 1 ] [ x 1 x 2 ] = [ 0 0 ] \begin{bmatrix} 2-\lambda_{1} & 1\\ 1 & 2-\lambda_{1} \end{bmatrix}\begin{bmatrix} x_{1}\\ x_{2} \end{bmatrix}=\begin{bmatrix} 0\\ 0 \end{bmatrix} [2−λ1112−λ1][x1x2]=[00]
即,
− x 1 + x 2 = 0 , x 1 − x 2 = 0 -x_{1}+x_{2}=0, x_{1}-x_{2}=0 −x1+x2=0,x1−x2=0
特征向量 λ 1 = 3 \lambda_{1}=3 λ1=3对应的特征向量为 v 1 = [ 1 1 ] v_{1}=\begin{bmatrix} 1\\ 1 \end{bmatrix} v1=[11],
同理,
特征向量 λ 2 = 1 \lambda_{2}=1 λ2=1对应的特征向量为 v 2 = [ − 1 1 ] v_{2}=\begin{bmatrix} -1\\ 1 \end{bmatrix} v2=[−11]。
把特征向量单位化,
v 1 = [ 1 1 ] = [ 2 2 2 2 ] v_{1}=\begin{bmatrix} 1\\ 1 \end{bmatrix}=\begin{bmatrix} \frac{\sqrt{2} }{2} \\ \frac{\sqrt{2} }{2} \end{bmatrix} v1=[11]=[2222]
v 2 = [ − 1 1 ] = [ − 2 2 2 2 ] v_{2}=\begin{bmatrix} -1\\ 1 \end{bmatrix}=\begin{bmatrix} -\frac{\sqrt{2} }{2} \\ \frac{\sqrt{2} }{2} \end{bmatrix} v2=[−11]=[−2222]
故,
A = [ 2 2 − 2 2 2 2 2 2 ] [ 3 0 0 1 ] [ 2 2 − 2 2 2 2 2 2 ] T A=\begin{bmatrix} \frac{\sqrt{2} }{2} & -\frac{\sqrt{2} }{2}\\ \frac{\sqrt{2} }{2} & \frac{\sqrt{2} }{2} \end{bmatrix}\begin{bmatrix} 3 & 0\\ 0 & 1 \end{bmatrix}\begin{bmatrix} \frac{\sqrt{2} }{2} & -\frac{\sqrt{2} }{2}\\ \frac{\sqrt{2} }{2} & \frac{\sqrt{2} }{2} \end{bmatrix}^{T} A=[2222−2222][3001][2222−2222]T
从线性变换的角度,
A x = Q S Q T x Ax=QSQ^{T}x Ax=QSQTx,
旋转矩阵,
Q = [ 2 2 − 2 2 2 2 2 2 ] Q=\begin{bmatrix} \frac{\sqrt{2} }{2} & -\frac{\sqrt{2} }{2}\\ \frac{\sqrt{2} }{2} & \frac{\sqrt{2} }{2} \end{bmatrix} Q=[2222−2222]
缩放矩阵,
S = [ 3 0 0 1 ] S=\begin{bmatrix} 3 & 0\\ 0 & 1 \end{bmatrix} S=[3001]
如下图所示,对黄色小正方形作线性变换 A A A,可以分解成以下旋转、缩放和旋转变换,即 Q S Q T QSQ^{T} QSQT(从右到左):
- 顺时针旋转 4 5 ∘ 45^{\circ} 45∘,将特征向量方向对齐坐标轴;
- 在 X X X轴放大3倍, Y Y Y轴上放大1倍;
- 逆时针旋转 4 5 ∘ 45^{\circ} 45∘,恢复特征向量的初始方向。
换一种说法,对黄色小正方形作线性变换 A A A,可以解释成小正方形在矩阵 A A A的特征向量空间下作缩放操作。

任意矩阵SVD
对于任意矩阵,可以将 A A T AA^{T} AAT和 A T A A^{T}A ATA转换为对称方阵。
对于矩阵 A = [ 1 2 3 4 5 6 ] A=\begin{bmatrix}1&2&3\\4&5&6\end{bmatrix} A=[142536],可以对其进行奇异值分解,以下是具体计算过程:
- 计算 A T A A^{T}A ATA和 A A T AA^{T} AAT
A T = [ 1 4 2 5 3 6 ] A^{T}=\begin{bmatrix}1&4\\2&5\\3&6\end{bmatrix} AT= 123456
A T A = [ 1 4 2 5 3 6 ] [ 1 2 3 4 5 6 ] = [ 17 22 27 22 29 36 27 36 45 ] A^{T}A=\begin{bmatrix}1&4\\2&5\\3&6\end{bmatrix}\begin{bmatrix}1&2&3\\4&5&6\end{bmatrix}=\begin{bmatrix}17&22&27\\22&29&36\\27&36&45\end{bmatrix} ATA= 123456 [142536]= 172227222936273645
A A T = [ 1 2 3 4 5 6 ] [ 1 4 2 5 3 6 ] = [ 14 32 32 77 ] AA^{T}=\begin{bmatrix}1&2&3\\4&5&6\end{bmatrix}\begin{bmatrix}1&4\\2&5\\3&6\end{bmatrix}=\begin{bmatrix}14&32\\32&77\end{bmatrix} AAT=[142536] 123456 =[14323277]
- 求 A T A A^{T}A ATA和 A A T AA^{T} AAT的特征值和特征向量
- 对于 A T A A^{T}A ATA,其特征方程为 ∣ λ I − A T A ∣ = 0 \vert\lambda I - A^{T}A\vert = 0 ∣λI−ATA∣=0,即
∣ λ − 17 − 22 − 27 − 22 λ − 29 − 36 − 27 − 36 λ − 45 ∣ = 0 \begin{vmatrix}\lambda - 17&-22&-27\\-22&\lambda - 29&-36\\-27&-36&\lambda - 45\end{vmatrix}=0 λ−17−22−27−22λ−29−36−27−36λ−45 =0
通过计算可得特征值 λ 1 ≈ 90.40267 \lambda_{1}\approx 90.40267 λ1≈90.40267, λ 2 ≈ 0.59732 \lambda_{2}\approx 0.59732 λ2≈0.59732, λ 3 ≈ 0 \lambda_{3}\approx 0 λ3≈0。
对应的特征向量分别为(近似值):
v 1 ≈ [ − 0.42866713 − 0.56630692 − 0.7039467 ] v_{1}\approx\begin{bmatrix}-0.42866713\\ -0.56630692\\-0.7039467\end{bmatrix} v1≈ −0.42866713−0.56630692−0.7039467 ,
v 2 ≈ [ 0.80596391 0.11238241 − 0.58119908 ] v_{2}\approx\begin{bmatrix}0.80596391\\0.11238241\\ -0.58119908\end{bmatrix} v2≈ 0.805963910.11238241−0.58119908 ,
v 3 ≈ [ 0.40824829 − 0.81649658 0.40824829 ] v_{3}\approx\begin{bmatrix} 0.40824829\\ -0.81649658\\ 0.40824829\end{bmatrix} v3≈ 0.40824829−0.816496580.40824829
- 对于 A A T AA^{T} AAT,其特征方程为 ∣ μ I − A A T ∣ = 0 \vert\mu I - AA^{T}\vert = 0 ∣μI−AAT∣=0,即
∣ μ − 14 − 32 − 32 μ − 77 ∣ = 0 \begin{vmatrix}\mu - 14&-32\\-32&\mu - 77\end{vmatrix}=0 μ−14−32−32μ−77 =0
计算可得特征值 μ 1 ≈ 90.40267 \mu_{1}\approx 90.40267 μ1≈90.40267, μ 2 ≈ 0.59732 \mu_{2}\approx 0.59732 μ2≈0.59732。
对应的特征向量分别为(近似值):
u 1 ≈ [ − 0.386 − 0.922 ] u_{1}\approx\begin{bmatrix}-0.386\\-0.922\end{bmatrix} u1≈[−0.386−0.922], u 2 ≈ [ 0.922 − 0.386 ] u_{2}\approx\begin{bmatrix}0.922\\-0.386\end{bmatrix} u2≈[0.922−0.386]
- 确定奇异值和(U)、(V)矩阵
奇异值 σ 1 = λ 1 ≈ 9.508032 \sigma_{1}=\sqrt{\lambda_{1}}\approx 9.508032 σ1=λ1≈9.508032, σ 2 = λ 2 ≈ 0.77286 \sigma_{2}=\sqrt{\lambda_{2}}\approx 0.77286 σ2=λ2≈0.77286
U = [ − 0.386 0.922 − 0.922 − 0.386 ] U=\begin{bmatrix}-0.386&0.922\\-0.922&-0.386\end{bmatrix} U=[−0.386−0.9220.922−0.386]
V T = [ − 0.42866713 − 0.56630692 − 0.7039467 0.80596391 0.11238241 − 0.58119908 0.40824829 − 0.81649658 0.40824829 ] V^{T}=\begin{bmatrix}-0.42866713&-0.56630692&-0.7039467\\0.80596391&0.11238241& -0.58119908\\0.40824829& -0.81649658& 0.40824829\end{bmatrix} VT= −0.428667130.805963910.40824829−0.566306920.11238241−0.81649658−0.7039467−0.581199080.40824829 - 得到奇异值分解(A = U\Sigma V^{T})
Σ = [ 9.508032 0 0 0 0.77286964 0 ] \Sigma=\begin{bmatrix}9.508032&0&0\\0&0.77286964&0\end{bmatrix} Σ=[9.508032000.7728696400]
V T = [ − 0.42866713 − 0.56630692 − 0.7039467 0.80596391 0.11238241 − 0.58119908 0.40824829 − 0.81649658 0.40824829 ] V^{T}=\begin{bmatrix}-0.42866713&-0.56630692&-0.7039467\\0.80596391&0.11238241& -0.58119908\\0.40824829& -0.81649658& 0.40824829\end{bmatrix} VT= −0.428667130.805963910.40824829−0.566306920.11238241−0.81649658−0.7039467−0.581199080.40824829
所以,
A = U Σ V T = [ − 0.386 0.922 − 0.922 − 0.386 ] [ 9.508032 0 0 0 0.77286964 0 ] [ − 0.42866713 − 0.56630692 − 0.7039467 0.80596391 0.11238241 − 0.58119908 0.40824829 − 0.81649658 0.40824829 ] A = U\Sigma V^{T}=\begin{bmatrix}-0.386&0.922\\-0.922&-0.386\end{bmatrix}\begin{bmatrix}9.508032&0&0\\0&0.77286964&0\end{bmatrix}\begin{bmatrix}-0.42866713&-0.56630692&-0.7039467\\0.80596391&0.11238241& -0.58119908\\0.40824829& -0.81649658& 0.40824829\end{bmatrix} A=UΣVT=[−0.386−0.9220.922−0.386][9.508032000.7728696400] −0.428667130.805963910.40824829−0.566306920.11238241−0.81649658−0.7039467−0.581199080.40824829
下面用python代码检验:
import numpy as np# 定义一个示例矩阵
A = np.array([[1, 2,3],[4, 5,6]])# 进行奇异值分解
U, S, VT = np.linalg.svd(A)# 打印结果
print("矩阵 A:")
print(A)print("\n左奇异向量矩阵 U:")
print(U)print("\n奇异值矩阵 S:")
# 注意:np.linalg.svd 返回的 S 是一个一维数组,包含奇异值
# 为了得到完整的对角矩阵 Σ,需要手动构建
Sigma = np.zeros((A.shape[0], A.shape[1]))
Sigma[:min(A.shape), :min(A.shape)] = np.diag(S)
print(Sigma)print("\n右奇异向量矩阵 V 的转置 VT:")
print(VT)# 验证奇异值分解结果
reconstructed_A = np.dot(U, np.dot(Sigma, VT))
print("\n通过奇异值分解重构的矩阵 A:")
print(reconstructed_A)


相关文章:
矩阵的奇异值(SVD)分解和线性变换
矩阵的奇异值(SVD)分解和线性变换 SVD定义 奇异值分解(Singular Value Decomposition,简称 SVD)是一种重要的线性代数工具,能够将任意矩阵 ( A ∈ R m n \mathbf{A} \in \mathbb{R}^{m \times n} A∈Rmn…...
Ubuntu 下 nginx-1.24.0 源码分析 - ngx_rbtree_sentinel_init
ngx_rbtree_sentinel_init 定义在 src\core\ngx_rbtree.h #define ngx_rbt_black(node) ((node)->color 0) /* a sentinel must be black */#define ngx_rbtree_sentinel_init(node) ngx_rbt_black(node)初始化哨兵节点的颜色 将哨兵节点(node&a…...
数据库的sql语句
本篇文章主要用来收集项目开发中,遇到的各种sql语句的编写。 1、根据user表的role_id字段,查询role表。 sql语句:使用JOIN连接两个表 SELECT u.*,r.rolename FROM user u JOIN role r ON u.role_id r.id WHERE u.id 1; 查询结果:…...
Ubuntu2204下使用NVIDIA GeForce RTX 4090进行DeepSeek-R1-Distill-Llama-8B模型微调
Ubuntu2204下使用NVIDIA GeForce RTX 4090进行DeepSeek-R1-Distill-Llama-8B模型微调 环境准备创建Python微调环境准备数据集准备模型文件 模型微调模型预测原始模型预测微调模型预测 使用unsloth,可以方便地对大模型进行微调。以微调DeepSeek-R1-Distill-Llama-8B为…...
Bugku CTF Crypto(二)
目录 这不是md5 贝斯家族 把猪困在猪圈里 黄道十二官(宫) 抄错的字符 这不是md5 描 述: 666c61677b616537333538376261353662616566357d 分 析:题目提示这不是md5,字符中出现了d,猜测16进制 使用…...
openssl的aes128_ECB加密解密运算实例
aes128算法ECB接口 加密接口 注意事项: EVP_EncryptInit_ex初始化算法EVP_aes_128_ecb(),和密钥,key至少16BEVP_EncryptUpdate加密运算,tmplen输出已加密长度EVP_EncryptFinal_ex结束运算,如果在此仍有加密运算&…...
单片机总结【GPIO/TIM/IIC/SPI/UART】
一、GPIO 1、概念 通用输入输出口;开发者可以根据自己的需求将其配置为输入或输出模式,以实现与外部设备进行数据交互、控制外部设备等功能。简单来说,GPIO 就像是计算机或微控制器与外部世界沟通的 “桥梁”。 2、工作模式 工作模式性质特…...
动态部署Web应用程序与web.xml配置详解
文章目录 前言一、动态部署Web应用程序1.1 什么是动态部署?1.2 动态部署的步骤1.3 动态部署的优势 二、web.xml 配置文件2.1 什么是web.xml?2.2 web.xml 文件的结构2.2.1常见配置(1) 配置上下文参数(2) 配置Servlet(3)配置过滤器(…...
Rt-thread源码剖析(1)——内核对象
前言 该系列基于rtthread-nano的内核源码,来研究RTOS的底层逻辑,本文介绍RTT的内核对象,对于其他RTOS来说也可供参考,万变不离其宗,大家都是互相借鉴,实现不会差太多。 内核对象容器 首先要明确的一点是什…...
Python 的历史进程
Python:编程世界中的瑞士军刀 在当今数字化飞速发展的时代,编程语言层出不穷,而 Python 无疑是其中一颗耀眼的明珠。它以其简洁优雅的语法、强大的功能以及广泛的应用领域,成为了全球开发者炙手可热的编程语言之一。 Python 是一种…...
十一、大数据治理平台总体功能架构
大数据治理平台的功能架构图中心主题:数据治理 核心重点是建立健全大数据资产管理框架,确保数据质量、安全性、可访问性和合规性。 大数据治理平台总体功能架构图 关键功能领域 1.数据资产平台(左侧) 此部分主要关注数据资产本身…...
STM32——HAL库开发笔记23(定时器4—输入捕获)(参考来源:b站铁头山羊)
定时器有四个通道,这些通道既可以用来作为输入,又可以作为输出。做输入的时候,可以使用定时器对外部输入的信号的时间参数进行测量;做输出的时候,可以使用定时器向外输出精确定时的方波信号。 一、输入捕获 的基本原理…...
爬虫反爬:CSS位置偏移反爬案例分析与实战案例
文章目录 1. 反爬机制概述2. 反爬原理3. 案例分析4. 破解思路5. 实战样例样例1:使用Python和Selenium破解CSS位置偏移反爬样例2:电商网站商品列表CSS位置偏移反爬破解 6. 总结 1. 反爬机制概述 CSS位置偏移反爬是一种常见的反爬虫技术,通过C…...
libGL.so.1: cannot open shared object file: No such file or directory-linux022
in <module> from PyQt5.QtGui import QPixmap, QFont, QIcon ImportError: libGL.so.1: cannot open shared object file: No such file or directory 这个错误信息表示XXXX 在启动时遇到问题,缺少 libGL.so.1 文件。libGL.so.1 是与 OpenGL 图形库相关的共…...
向量数据库milvus部署
官方文档 Milvus vector database documentationRun Milvus in Docker (Linux) | Milvus DocumentationMilvus vector database documentation 按部署比较简单,这里说一下遇到的问题 一:Docker Compose 方式部署 1、镜像无法拉取,(docker.io被禁) …...
修改`FSL Yocto Project Community BSP`用到的u-boot源码,使其能适配百问网(100ask)的开发板
前言 在博文 https://blog.csdn.net/wenhao_ir/article/details/145547974 中,我们利用官方提供的BSP(FSL Yocto Project Community BSP)构建了写到SD卡中的完整镜像,然后启动后发现存在不少问题,首要的问题就是u-boot不能识别网卡,在这篇博文中,我们就找到FSL Yocto Pro…...
(python)Arrow库使时间处理变得更简单
前言 Arrow库并不是简单的二次开发,而是在datetime的基础上进行了扩展和增强。它通过提供更简洁的API、强大的时区支持、丰富的格式化和解析功能以及人性化的显示,填补了datetime在某些功能上的空白。如果你需要更高效、更人性化的日期时间处理方式,Arrow库是一个不错的选择…...
Pytorch框架06-现有网络模型(修改/使用/保存/加载)
3.9 PyTorch网络模型的修改及使用 PyTorch 提供了多个预训练的网络模型,涵盖了广泛的计算机视觉任务,如图像分类、目标检测、语义分割等。这些预训练模型在 ImageNet 等大型数据集上进行了训练,并可以直接用于迁移学习或微调。 3.9.1 常见的…...
【亲测有效】百度Ueditor富文本编辑器添加插入视频、视频不显示、和插入视频后二次编辑视频标签不显示,显示成img标签,二次保存视频被替换问题,解决方案
【亲测有效】项目使用百度Ueditor富文本编辑器上传视频相关操作问题 1.百度Ueditor富文本编辑器添加插入视频、视频不显示 2.百度Ueditor富文本编辑器插入视频后二次编辑视频标签不显示,在编辑器内显示成img标签,二次保存视频被替换问题 问题1࿱…...
MySQL 使用 `WHERE` 子句时 `COUNT(*)`、`COUNT(1)` 和 `COUNT(column)` 的区别解析
文章目录 1. COUNT() 函数的基本作用2. COUNT(*)、COUNT(1) 和 COUNT(column) 的详细对比2.1 COUNT(*) —— 统计所有符合条件的行2.2 COUNT(1) —— 统计所有符合条件的行2.3 COUNT(column) —— 统计某一列非 NULL 的记录数 3. 性能对比3.1 EXPLAIN 分析 4. 哪种方式更好&…...
laravel11设置中文语言包
安装中文语言包 Laravel 11 默认没有内置完整中文语言包,推荐使用第三方维护的完整翻译: # 通过 Composer 安装语言包 composer require laravel-lang/common --dev# 发布中文语言文件到项目 php artisan lang:add zh_CN这会自动将中文语言文件生成到 l…...
二、IDE集成DeepSeek保姆级教学(使用篇)
各位看官老爷好,如果还没有安装DeepSeek请查阅前一篇 一、IDE集成DeepSeek保姆级教学(安装篇) 一、DeepSeek在CodeGPT中使用教学 1.1、Edit Code 编辑代码 选中代码片段 —> 右键 —> CodeGPT —> Edit Code, 输入自然语言可编辑代码,点击S…...
网络七层模型—OSI参考模型详解
网络七层模型:OSI参考模型详解 引言 在网络通信的世界中,OSI(Open Systems Interconnection)参考模型是一个基础且核心的概念。它由国际标准化组织(ISO)于1984年提出,旨在为不同厂商的设备和应…...
四、Redis主从复制与读写分离
一、环境搭建 准备环境 IP角色192.168.10.101Master192.168.10.102Slave192.168.10.103Slave 创建配置/数据/日志目录 # 创建配置目录 mkdir -p /usr/local/redis/conf # 创建数据目录 mkdir -p /usr/local/redis/data # 创建日志目录 mkdir -p /usr/local/redis/log修改配置…...
爬虫框架与库
爬虫框架与库是用于网络数据抓取的核心工具,帮助开发者高效地从网页中提取结构化数据。 Requests:用于发送HTTP请求。 BeautifulSoup:用于解析HTML和XML。 Scrapy:强大的爬虫框架,适合大规模爬取。 Selenium&#…...
【保姆级视频教程(二)】YOLOv12训练数据集构建:标签格式转换-划分-YAML 配置 避坑指南 | 小白也能轻松玩转目标检测!
【2025全站首发】YOLOv12训练数据集构建:标签格式转换-划分-YAML 配置 避坑指南 | 小白也能轻松玩转目标检测! 文章目录 1. 数据集准备1.1 标签格式转换1.2 数据集划分1.3 yaml配置文件创建 2. 训练验证 1. 数据集准备 示例数据集下载链接:P…...
数据如何安全“过桥”?分类分级与风险评估,守护数据流通安全
信息化高速发展,数据已成为企业的核心资产,驱动着业务决策、创新与市场竞争力。随着数据开发利用不断深入,常态化的数据流通不仅促进了信息的快速传递与共享,还能帮助企业快速响应市场变化,把握商业机遇,实…...
本地大模型编程实战(24)用智能体(Agent)实现智能纠错的SQL数据库问答系统(3)
本文将实现这样一个 智能体(Agent) : 可以使用自然语言对 SQLite 数据库进行查询。即:用户用自然语言提出问题,智能体也用自然语言根据数据库的查询结果回答问题。增加一个自动对查询中的专有名词进行纠错的工具,这将明显提升查询…...
Apache DolphinScheduler系列1-单节点部署及测试报告
文章目录 整体说明一、部署环境二、版本号三、部署方案四、部署步骤4.1、上传部署包4.2、创建外部数据库4.3、修改元数据库配置4.4、上传MySQLl驱动程序4.5、初始化外部数据库4.6、启停服务4.7、访问页面五、常见问题及解决方式5.1、时间不一致5.2、异常终止5.3、大量日志5.4、…...
Java+SpringBoot+Vue+数据可视化的音乐推荐与可视化平台(程序+论文+讲解+安装+调试+售后)
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,我会一一回复,希望帮助更多的人。 系统介绍 在互联网技术以日新月异之势迅猛发展的浪潮下,5G 通信技术的普及、云计算能力…...
