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

[paddle] 矩阵的分解

特征值

A A A 是一个 n × n n \times n n×n 的方阵, λ \lambda λ 是一个标量, v \mathbf{v} v 是一个非零向量。如果满足以下方程:
A v = λ v A\mathbf{v} = \lambda\mathbf{v} Av=λv
则称 λ \lambda λ 为矩阵 A A A 的一个 特征值(Eigenvalue),而 v \mathbf{v} v 称为对应于 特征值 λ \lambda λ 的特征向量(Eigenvector)。 行列式 ∣ A − λ I ∣ = 0 |A-\lambda I|=0 AλI=0

paddle.linalg.eigvals(x, name=None) 一般方阵

paddle.linalg.eigvalsh(x, name=None) 实对称或厄尔米特矩阵

import paddle
paddle.seed(2023)
x = paddle.rand(shape=[3, 3], dtype='float64')
print(x)
print(paddle.linalg.eigvals(x))

特征分解

如果矩阵 A A A n n n 个线性独立的特征向量 v 1 , v 2 , … , v n \mathbf{v}_1, \mathbf{v}_2, \ldots, \mathbf{v}_n v1,v2,,vn,分别对应于特征值 λ 1 , λ 2 , … , λ n \lambda_1, \lambda_2, \ldots, \lambda_n λ1,λ2,,λn,那么矩阵 A A A 可以被分解为:
A = V Λ V − 1 A = V \Lambda V^{-1} A=VΛV1
其中:

  • V V V 是一个 n × n n \times n n×n 的矩阵,其列向量是 A A A 的特征向量,即 V = [ v 1 , v 2 , … , v n ] V = [\mathbf{v}_1, \mathbf{v}_2, \ldots, \mathbf{v}_n] V=[v1,v2,,vn]
  • Λ \Lambda Λ 是一个 n × n n \times n n×n 的对角矩阵,其对角线上的元素是 A A A 的特征值,即 Λ = diag ( λ 1 , λ 2 , … , λ n ) \Lambda = \text{diag}(\lambda_1, \lambda_2, \ldots, \lambda_n) Λ=diag(λ1,λ2,,λn)
  • V − 1 V^{-1} V1 是矩阵 V V V 的逆矩阵。

特征分解的性质

  1. 特征值的唯一性:对于一个给定的矩阵,其特征值是唯一的(考虑重根的情况)。
  2. 特征向量的线性独立性:不同特征值对应的特征向量是线性独立的。
  3. 对角化现实中存在大量方阵不能与对角矩阵相似,(但与其若尔当标准型总相似), 这不妨碍软件求解的特征值和特征向量的正确性。

paddle.linalg.eig(x)

  • x为方阵)

paddle.linalg.eigh(x)

  • x为实对称矩阵或这复数共轭对称矩阵(Hermit 矩阵)
import paddle
x = paddle.to_tensor([[1.6707249, 7.2249975, 6.5045543],[9.956216,  8.749598,  6.066444 ],[4.4251957, 1.7983172, 0.370647 ]])
w, v = paddle.linalg.eig(x)
print(v)
print(w)
# paddle.multi_dot  没有定义复数域矩阵乘法,此处给出作者定义的矩阵乘法进行结果检验
def mat_dot(List):A=List[0]B=List[1]sizeA=A.shape sizeB=B.shapeif len(sizeA)==1 and len(sizeB)==1:if sizeA[0]==sizeB[0]:C= addle.sum(A*B)else:print("矩阵乘法维数不匹配")elif len(sizeA)==1 and len(sizeB)==2:if sizeA[0]==sizeB[1]:C=paddle.zeros([sizeB[1]])for j in range(sizeB[1]):C[j]= addle.sum(A*B[:,j])else:print("矩阵乘法维数不匹配")elif len(sizeA)==2 and len(sizeB)==1:C=paddle.zeros([sizeA[0]])if sizeA[1]==sizeB[0]:for i in range(sizeA[0]):C[i]=paddle.sum(A[i,:]*B)elif len(sizeA)==2 and len(sizeB)==2:C=paddle.zeros([sizeA[0],sizeB[1]])if sizeA[1]==sizeB[0]:for i in range(sizeA[0]):for j in range(sizeB[1]):C[i]=paddle.sum(A[i,:]*B[:,j])return(C)     # 特征向量与特征值的检验比较 Aν v.s. λν
for i in range(3):print(mat_dot([x,v[:,i]]))print(w[i]*v[:,i])

LU 分解

X = L U X=LU X=LU, 其中 L L L 为下三角矩阵, U U U 为上三角矩阵,常用与求解线性方程组的解。

paddle.linalg.lu(x, pivot=True, get_infos=False, name=None)

  • x (Tensor) - 需要进行 LU 分解的输入矩阵 x,x 是维度大于 2 维的矩阵。
  • pivot (bool,可选) - LU 分解时是否进行旋转。若为 True 则执行旋转操作,若为 False 则不执行旋转操作,该选项只在 gpu 下起作用,cpu 下暂不支持为 False,会报错。默认 True。
  • get_infos (bool,可选) - 是否返回分解状态信息,若为 True,则返回分解状态 Tensor,否则不返回。默认 False。
  • name (str,可选) - 具体用法请参见 Name,一般无需设置,默认值为 None。
import paddle
x = paddle.to_tensor([[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]]).astype('float64')
lu,p,info = paddle.linalg.lu(x, get_infos=True)
print(lu)
print(p)
print(info)
P,L,U = paddle.linalg.lu_unpack(lu,p)
print(P)
print(L)
print(U)
# one can verify : X = P @ L @ U ;

Householder 乘积

Householder变换的乘积

Householder变换可以通过一个向量来定义。设 w \mathbf{w} w 是一个单位向量,即 w ⊤ w = 1 \mathbf{w}^\top \mathbf{w} = 1 ww=1,则Householder变换矩阵 H \mathbf{H} H 可以表示为:
H = I − 2 w w ⊤ \mathbf{H} = \mathbf{I} - 2\mathbf{w}\mathbf{w}^\top H=I2ww其中 I \mathbf{I} I 是单位矩阵。

Householder变换的乘积

当多个Householder变换矩阵相乘时,其结果仍然是一个Householder变换矩阵。具体来说,如果 H 1 , H 2 , … , H k \mathbf{H}_1, \mathbf{H}_2, \ldots, \mathbf{H}_k H1,H2,,Hk 都是Householder变换矩阵,那么它们的乘积 H = H 1 H 2 … H k \mathbf{H} = \mathbf{H}_1\mathbf{H}_2 \ldots \mathbf{H}_k H=H1H2Hk 也是一个Householder变换矩阵。常用于QR分解。

乘积的性质

  • 正交性:每个Householder变换矩阵都是正交矩阵,即 H ⊤ = H − 1 \mathbf{H}^\top = \mathbf{H}^{-1} H=H1。因此,它们的乘积也是正交矩阵。
  • 行列式:Householder变换矩阵的行列式为 − 1 -1 1 1 1 1。因此,多个Householder变换矩阵相乘后,其行列式为 ( − 1 ) k (-1)^k (1)k 1 1 1,其中 k k k 是变换的个数。
  • 反射性:Householder变换矩阵的乘积仍然具有反射性,即它可以将一个向量反射到另一个向量上。

paddle.linalg.householder_product(x, tau, name=None)

import paddle
x = paddle.to_tensor([[-1.1280,  0.9012, -0.0190],[ 0.3699,  2.2133, -1.4792],[ 0.0308,  0.3361, -3.1761],[-0.0726,  0.8245, -0.3812]])
tau = paddle.to_tensor([1.7497, 1.1156, 1.7462])
Q = paddle.linalg.householder_product(x, tau)
print(Q)

QR 分解

计算一个或一批矩阵的正交三角分解,也称 QR 分解(暂不支持反向)。

X = Q R X=QR X=QR, Q Q Q是正交矩阵 Q Q ⊤ = I QQ^\top =I QQ=I, R R R 是上三角矩阵。

paddle.linalg.qr(x, mode=‘reduced’, name=None)

  • Tensor Q,正交三角分解的 Q 正交矩阵,需注意如果 mode = “reduced”,则不返回 Q 矩阵,只返回 R 矩阵。
  • Tensor R,正交三角分解的 R 上三角矩阵。
import paddle
x = paddle.to_tensor([[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]]).astype('float64')
q, r = paddle.linalg.qr(x)
print (q)
print (r)
# one can verify : X = Q * R ;

Cholesky 分解

Cholesky分解是用于将一个正定矩阵分解为一个下三角矩阵和其转置的乘积的方法。设 A \mathbf{A} A 是一个 n × n n \times n n×n 的正定矩阵,则存在一个下三角矩阵 L \mathbf{L} L,使得:
A = L L ⊤ \mathbf{A} = \mathbf{L}\mathbf{L}^\top A=LL其中 L ⊤ \mathbf{L}^\top L表示 L \mathbf{L} L 的转置矩阵。

Cholesky分解的性质

  • 唯一性:对于给定的正定矩阵 A \mathbf{A} A,其Cholesky分解是唯一的。
  • 正定性:只有正定矩阵才能进行Cholesky分解。
  • 下三角性:分解得到的矩阵 L \mathbf{L} L 是一个下三角矩阵,即其上三角部分的元素均为零。

Cholesky分解的算法

Cholesky分解的算法通常通过迭代计算下三角矩阵 L \mathbf{L} L 的各个元素。对于 i ≤ j i \leq j ij,有:
l i j = 1 l i i ( a i j − ∑ k = 1 i − 1 l i k l j k ) l_{ij} = \frac{1}{l_{ii}} \left( a_{ij} - \sum_{k=1}^{i-1} l_{ik} l_{jk} \right) lij=lii1(aijk=1i1likljk)其中 l i j l_{ij} lij是矩阵 L \mathbf{L} L的元素, a i j a_{ij} aij是矩阵 A \mathbf{A} A 的元素。

paddle.linalg.cholesky(x, upper=False, name=None)

  • x (Tensor)- 输入变量为多维 Tensor,它的维度应该为 [, M, N],其中为零或更大的批次尺寸,并且最里面的两个维度上的矩阵都应为对称的正定矩阵,支持数据类型为 float32、float64。
  • upper (bool)- 指示是否返回上三角矩阵或下三角矩阵。默认值:False。
import paddle
paddle.seed(2023)a = paddle.rand([3, 3], dtype="float32")
a_t = paddle.transpose(a, [1, 0])
x = paddle.matmul(a, a_t) + 1e-03out = paddle.linalg.cholesky(x, upper=False)
print(out)

SVD 分解

SVD分解的定义

SVD(Singular Value Decomposition,奇异值分解)是线性代数中的一种矩阵分解方法,它将一个矩阵分解为三个矩阵的乘积:一个正交矩阵、一个对角矩阵和一个正交矩阵的转置。具体来说,对于任意一个 m × n m \times n m×n的矩阵 A A A,都可以表示为:
A = U Σ V T A = UΣV^T A=UΣVT
其中:

  • U U U是一个 m × m m \times m m×m的正交矩阵,其列向量称为左奇异向量。
  • Σ Σ Σ是一个 m × n m \times n m×n的对角矩阵,对角线上的元素称为奇异值,按照从大到小的顺序排列。
  • V V V是一个 n × n n \times n n×n的正交矩阵,其列向量称为右奇异向量。

SVD分解的性质

  1. 奇异值是非负的,并且按照从大到小的顺序排列。
  2. 左奇异向量和右奇异向量是正交的。
  3. 原矩阵 A A A的秩等于其非零奇异值的个数。
  4. SVD分解是唯一的,只要奇异值不重复。

SVD分解的几何意义

SVD分解可以看作是将矩阵 A A A的作用分解为三个步骤:

  1. 通过矩阵 V V V将原始空间旋转到一个新的坐标系。
  2. 通过对角矩阵 Σ Σ Σ进行各个方向的缩放。
  3. 通过矩阵 U U U将缩放后的空间旋转到最终的坐标系。
    这种分解方式揭示了矩阵 A A A在几何上的本质作用,即旋转、缩放和再旋转。

paddle.linalg.svd(x, full_matrices=False, name=None)

  • x (Tensor) - 输入的欲进行奇异值分解的一个或一批方阵,类型为 Tensor。 x 的形状应为 [*, M, N],其中 * 为零或更大的批次维度,数据类型支持 float32, float64。
  • full_matrices (bool) - 是否计算完整的 U 和 V 矩阵,类型为 bool 默认为 False。这个参数会影响 U 和 V 生成的 Shape。

返回

  • Tensor U,奇异值分解的 U 矩阵。如果 full_matrics 设置为 False,则 Shape 为 [ ∗ , M , K ] [*, M, K] [,M,K],如果 full_metrices 设置为 True,那么 Shape 为 [ ∗ , M , M ] [*, M, M] [,M,M]。其中 K 为 M 和 N 的最小值。
  • Tensor S,奇异值向量,Shape 为 [ ∗ , K ] [*, K] [,K]
  • Tensor VH,奇异值分解的 VH 矩阵。如果 full_matrics 设置为 False,则 Shape 为 [ ∗ , K , N ] [*, K, N] [,K,N],如果 full_metrices 设置为 True,那么 Shape 为 [ ∗ , N , N ] [*, N, N] [,N,N]。其中 K 为 M 和 N 的最小值。
import paddle
x = paddle.to_tensor([[1.0, 2.0], [1.0, 3.0], [4.0, 6.0]]).astype('float64')
x = x.reshape([3, 2])
u, s, vh = paddle.linalg.svd(x)
print (u)
print (s)
print (vh)

低秩矩阵的SVD分解

paddle.linalg.svd_lowrank(x, q=None, niter=2, M=None, name=None)

  • x (Tensor) - 输入的需要进行奇异值分解的一个或一批方阵,类型为 Tensor。 x 的形状应为 [*, M, N],其中 * 为零或更大的批次维度,数据类型支持 float32, float64。
  • q (int,可选) - 对输入 X
    的秩稍微高估的预估值,默认值为 None,代表预估值取 6。
  • niter (int) - 需要进行的子空间迭代次数。默认值为 2。
  • M (Tensor) - 输入矩阵在 axis=-2 维上的均值,形状应为 [*, 1, N],默认为 None。
import paddle
paddle.seed(2024)
x = paddle.randn((5, 5), dtype='float64')
U, S, V = paddle.linalg.svd_lowrank(x)
print(U)
print(S)
print(V)

相关文章:

[paddle] 矩阵的分解

特征值 设 A A A 是一个 n n n \times n nn 的方阵, λ \lambda λ 是一个标量, v \mathbf{v} v 是一个非零向量。如果满足以下方程: A v λ v A\mathbf{v} \lambda\mathbf{v} Avλv 则称 λ \lambda λ 为矩阵 A A A 的一个 特征值…...

【基于SprintBoot+Mybatis+Mysql】电脑商城项目之修改密码和个人资料

🧸安清h:个人主页 🎥个人专栏:【Spring篇】【计算机网络】【Mybatis篇】 🚦作者简介:一个有趣爱睡觉的intp,期待和更多人分享自己所学知识的真诚大学生。 目录 🎃1.修改密码 -持久…...

【深度学习】DataLoader自定义数据集制作

第一步 导包 import os import matplotlib.pyplot as plt %matplotlib inline import numpy as np import torch from torch import nn import torch.optim as optim import torchvision from torchvision import transforms,models,datasets import imageio import time impo…...

【Elasticsearch】Geo-distance聚合

geo_distance聚合的形状是圆形。它基于一个中心点(origin)和一系列距离范围来计算每个文档与中心点的距离,并将文档分配到相应的距离范围内。这种聚合方式本质上是以中心点为圆心,以指定的距离范围为半径的圆形区域来划分数据。 为…...

【R语言】apply函数族

在R语言中使用循环操作时是使用自身来实现的,效率较低。所以R语言有一个符合其统计语言出身的特点:向量化。R语言中的向量化运用了底层的C语言,而C语言的效率比高层的R语言的效率高。 apply函数族主要是为了解决数据向量化运算的问题&#x…...

Vue - shallowRef 和 shallowReactive

一、shallowRef 和 shallowReactive (一)shallowRef 在 Vue 3 中,shallowRef 是一个用于创建响应式引用的 API,它与 ref 相似,但它只会使引用的基本类型(如对象、数组等)表现为响应式&#xf…...

双目标定与生成深度图

基于C#联合Halcon实现双目标定整体效果 一,标定 1,标定前准备工作 (获取描述文件与获取相机参数) 针对标准标定板可以直接调用官方提供描述文件,也可以自己生成描述文件后用PS文件打印 2,相机标定 &…...

实名制-网络平台集成身份证实名认证接口/身份证查询-PHP

在当今数字化快速发展的时代,线上平台的安全性和用户体验成为了衡量其成功与否的关键因素。其中,身份证实名认证接口的集成显得尤为重要,它不仅为用户提供了更加安全、可靠的网络环境,同时也增强了平台的信任度和合规性。 对于任…...

全面解析机器学习优化算法中的进化策略

全面解析机器学习优化算法中的进化策略 全面解析机器学习优化算法中的进化策略引言什么是进化策略?基本概念核心组件算法流程数学基础高斯扰动期望值更新与其他优化方法的比较梯度下降法(Gradient Descent, GD)遗传算法(Genetic Algorithm, GA)Python案例基本实现改进版:…...

go数据结构学习笔记

本博文较为完整的实现了go的链表、栈,队列,树,排序,链表包括顺序链表,双向链表,循环链表,队列是循环队列,排序包含冒牌、选择 1.链表 1.1 顺序链表 type LNode struct {data intn…...

【深度学习】DeepSeek模型介绍与部署

原文链接:DeepSeek-V3 1. 介绍 DeepSeek-V3,一个强大的混合专家 (MoE) 语言模型,拥有 671B 总参数,其中每个 token 激活 37B 参数。 为了实现高效推理和成本效益的训练,DeepSeek-V3 采用了多头潜在注意力 (MLA) 和 De…...

使用SpringBoot发送邮件|解决了部署时连接超时的bug|网易163|2025

使用SpringBoot发送邮件 文章目录 使用SpringBoot发送邮件1. 获取网易邮箱服务的授权码2. 初始化项目maven部分web部分 3. 发送邮件填写配置EmailSendService [已解决]部署时连接超时附:Docker脚本Dockerfile创建镜像启动容器 1. 获取网易邮箱服务的授权码 温馨提示…...

【工具篇】深度揭秘 Midjourney:开启 AI 图像创作新时代

家人们,今天咱必须好好唠唠 Midjourney 这个在 AI 图像生成领域超火的工具!现在 AI 技术发展得那叫一个快,各种工具层出不穷,Midjourney 绝对是其中的明星产品。不管你是专业的设计师、插画师,还是像咱这种对艺术创作有点小兴趣的小白,Midjourney 都能给你带来超多惊喜,…...

构成正方形的数量:算法深度剖析与实践

目录 引言算法核心概念 定义正方形的构成条件数据结构与输入形式算法数学原理 几何关系的数学表达坐标运算与判定逻辑Python 实现 代码展示代码解析Python 实现的优势与局限C 语言实现 代码展示代码解析C 语言实现的性能特点性能分析与优化 性能分析 时间复杂度空间复杂度优化思…...

Spring设计模式(9种)(详细篇)

总体分为三大类: 创建型模式:工厂方法模式、单例模式。 结构型模式:适配器模式、代理模式、装饰器模式。 行为型模式:观察者模式、策略模式、模板方法模式。 一、简单工厂模式(Simple Factory) 概述&…...

使用Express.js和SQLite3构建简单TODO应用的后端API

使用Express.js和SQLite3构建简单TODO应用的后端API 引言环境准备代码解析1. 导入必要的模块2. 创建Express应用实例3. 设置数据库连接4. 初始化数据库表5. 配置中间件6. 定义数据接口7. 定义路由7.1 获取所有TODO项7.2 创建TODO项7.3 更新TODO项7.4 删除TODO项 8. 启动服务器 …...

2025年2月6日(anaconda cuda 学习 基本命令)

查看电脑的显卡型号是否支持CUDA的安装 https://developer.nvidia.com/zh-cn/cuda-gpus 查看可以安装的CUDA版本 https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html CUDA安装地址 https://developer.nvidia.com/cuda-toolkit-archive Anaconda下载地址 htt…...

大数据方向知识图谱及发展前景分析

目录 一、知识体系 二、大数据领域前景分析: 1. 市场需求 2. 技术趋势 3. 职业发展路径 4. 学习路线建议 5. 推荐认证体系 一、知识体系 大数据知识体系 ├── 基础理论 │ ├── 数学基础:概率统计、线性代数、离散数学 │ ├── 计算机基…...

Docker深度解析:安装各大环境

安装 Nginx 实现负载均衡: 挂载 nginx html 文件: 创建过载目录: mkdir -p /data/nginx/{conf,conf.d,html,logs} 注意:在挂载前需要对 conf/nginx.conf 文件进行编写 worker_processes 1;events {worker_connections 1024; …...

Verilog语言学习总结

Verilog语言学习! 目录 文章目录 前言 一、Verilog语言是什么? 1.1 Verilog简介 1.2 Verilog 和 C 的区别 1.3 Verilog 学习 二、Verilog基础知识 2.1 Verilog 的逻辑值 2.2 数字进制 2.3 Verilog标识符 2.4 Verilog 的数据类型 2.4.1 寄存器类型 2.4.2 …...

K8S Deployment 实现 蓝绿 发布

一、何为蓝绿发布 蓝绿发布(Blue - Green Deployment)是一种软件部署策略,旨在最大程度减少应用程序停机时间,确保新老版本系统平稳过渡。以下为详细介绍: 1.1、基本概念 存在两个完全相同的生产环境,通…...

2025新鲜出炉--前端面试题(一)

文章目录 1. vue3有用过吗, 和vue2之间有哪些区别2. vue-router有几种路由, 分别怎么实现3. webpack和rollup这两个什么区别, 你会怎么选择4. 你能简单介绍一下webpack项目的构建流程吗5. webpack平时有手写过loader和plugin吗6. webpack这块你平时做过哪些优化吗?7…...

【ArcGIS Pro 简介1】

ArcGIS Pro 是由 Esri (Environmental Systems Research Institute)公司开发的下一代桌面地理信息系统(GIS)软件,是传统 ArcMap 的现代化替代产品。它结合了强大的空间分析能力、直观的用户界面和先进的三维可视化技术…...

CentOS 6.5编译Rsyslog 8.1903.0

个人博客地址:CentOS 6.5编译Rsyslog 8.1903.0 | 一张假钞的真实世界 个人很早之前的博文,迁移至此作为历史记录。 源码下载参考我的另外一片博文:CentOS 7.3 编译 Rsyslog 8.1903.0。 本篇博文从创建构建环境开始填坑/(ㄒoㄒ)/~~。通过上…...

SQLAlchemy-2.0中模型定义和alembic的数据库迁移工具

SQLAlchemy-2.0中模型定义和alembic的数据库迁移工具 一、SQLAIchemy的介绍二、数据库引擎1、支持的数据库1.1、sqlite数据库1.2、MySQL数据库1.3、数据库引擎的参数 三、定义模型类1、定义模型2、engine负责数据库迁移 四、alembic数据库迁移⼯具1、安装alembic2、初始化alemb…...

两种文件类型(pdf/图片)打印A4半张纸方法

环境:windows10、Adobe Reader XI v11.0.23 Pdf: 1.把内容由横排变为纵排: 2.点击打印按钮: 3.选择打印页范围和多页: 4.内容打印在纸张上部 图片: 1.右键图片点击打印: 2.选择打印类型: 3.打印配置&am…...

【React】合成事件语法

React 合成事件是 React 为了处理浏览器之间的事件差异而提供的一种跨浏览器的事件系统。它封装了原生的 DOM 事件,提供了一致的事件处理机制。 合成事件与原生事件的区别: 合成事件是 React 自己实现的,封装了原生事件。合成事件依然可以通…...

深入解析:如何利用 Python 爬虫获取商品 SKU 详细信息

在电商领域,SKU(Stock Keeping Unit,库存单位)详细信息是电商运营的核心数据之一。它不仅包含了商品的规格、价格、库存等关键信息,还直接影响到库存管理、价格策略和市场分析等多个方面。本文将详细介绍如何利用 Pyth…...

Unity 加载OSGB(webgl直接加载,无需转换格式!)

Unity webgl加载倾斜摄影数据 前言效果图后续不足 前言 Unity加载倾斜摄影数据,有很多的插件方便好用,但是发布到网页端均失败,因为webgl 的限制,IO读取失效。 前不久发现一个开源项目: UnityOSGB-main 通过两种方式在 Unity 中…...

Maven架构项目管理工具

1.1什么是Maven 翻译为“专家”,“内行”Maven是跨平台的项目管理工具。主要服务于基于Java平台的项目构建,依赖管理和项目信息管理。什么是理想的项目构建? 高度自动化,跨平台,可重用的组件,标准化的 什么…...

【漫画机器学习】083.安斯库姆四重奏(Anscombe‘s Quartet)

安斯库姆四重奏(Anscombes Quartet) 1. 什么是安斯库姆四重奏? 安斯库姆四重奏(Anscombes Quartet)是一组由统计学家弗朗西斯安斯库姆(Francis Anscombe) 在 1973 年 提出的 四组数据集。它们…...

【梦想终会实现】Linux驱动学习5

加油加油坚持住! 1、 Linux驱动模型:驱动模型即将各模型中共有的部分抽象成C结构体。Linux2.4版本前无驱动模型的概念,每个驱动写的代码因人而异,随后为规范书写方式,发明了驱动模型,即提取公共信息组成一…...

QT修仙之路1-1--遇见QT

文章目录 遇见QT二、QT概述2.1 定义与功能2.2 跨平台特性2.3 优点汇总 三、软件安装四、QT工具介绍(重要)4.1 Assistant4.2 Designer4.3 uic.exe4.4 moc.exe4.5 rcc.exe4.6 qmake4.7 QTcreater 五、QT工程项目解析(作业)5.1 配置文件(.pro)5.2 头文件&am…...

【实战篇】Android安卓本地离线实现视频检测人脸

实战篇Android安卓本地离线实现视频检测人脸 引言项目概述核心代码类介绍人脸检测流程项目地址总结 引言 在当今数字化时代,人脸识别技术已经广泛应用于各个领域,如安防监控、门禁系统、移动支付等。本文将以第三视角详细讲解如何基于bifan-wei-Face/De…...

【图像处理】- 基本图像操作

基本图像操作详解 基本图像操作是图像处理的基础,涵盖了对图像进行简单但重要的变换。以下是几种常见的基本图像操作及其详细说明: 1. 裁剪 (Cropping) 描述:从原始图像中提取一个矩形区域。 实现方法: 使用图像的坐标系指定…...

代码随想录算法训练营| 二叉树总结

代码随想录 二叉树的理论基础:二叉树种类、存储方式、遍历方式、定义方式 二叉树遍历:深度优先和广度优先 二叉树属性:对称、深度、节点、平衡、路径、回溯 修改与构造:反转、构造、合并 涉及到二叉树的构造,无论普…...

Sentinel的安装和做限流的使用

一、安装 Release v1.8.3 alibaba/Sentinel GitHubA powerful flow control component enabling reliability, resilience and monitoring for microservices. (面向云原生微服务的高可用流控防护组件) - Release v1.8.3 alibaba/Sentinelhttps://github.com/alibaba/Senti…...

八、Spring Boot 日志详解

目录 一、日志的用途 二、日志使用 2.1 打印日志 2.1.1 在程序中获取日志对象 2.1.2 使用日志对象打印日志 2.2、日志框架介绍 2.2.1 门面模式(外观模式) 2.2.2 门面模式的实现 2.2.3 SLF4J 框架介绍 2.3 日志格式的说明 2.4 日志级别 2.4.1 日志级别的分类 2.4.2…...

vue2:如何动态控制el-form-item之间的行间距

需求 某页面有查看和编辑两种状态: 编辑: 查看: 可以看到,查看时,行间距太大导致页面不紧凑,所以希望缩小查看是的行间距。 行间距设置 行间距通常是通过 CSS 的 margin 或 padding 属性来控制的。在 Element UI 的样式表中,.el-form-item 的下边距(margin-bottom)…...

智能门铃市场:开启智能家居新时代

在科技日新月异的今天,智能家居产品正以前所未有的速度融入我们的生活,而智能门铃作为其中的重要一员,不仅为我们的家居生活带来了极大的便利,更在安全方面提供了坚实的保障。它就像一位忠诚的守门人,无论白天黑夜&…...

C基础寒假练习(6)

一、终端输入行数&#xff0c;打印倒金字塔 #include <stdio.h> int main() {int rows;printf("请输入倒金字塔的行数: ");scanf("%d", &rows);for (int i rows; i > 0; i--) {// 打印空格for (int j 0; j < rows - i; j) {printf(&qu…...

【深度学习】基于MXNet的多层感知机的实现

多层感知机 结构组成 大致由三层组成&#xff1a;输入层-隐藏层-输出层&#xff0c;其中隐藏层大于等于一层 其中&#xff0c;隐藏层和输出层都是全连接 隐藏层的层数和神经元个数也是超参数 多层隐藏层&#xff0c;在本质上仍等价于单层神经网络&#xff08;可从输出方程…...

Mac 终端命令大全

—目录操作— ꔷ mkdir 创建一个目录 mkdir dirname ꔷ rmdir 删除一个目录 rmdir dirname ꔷ mvdir 移动或重命名一个目录 mvdir dir1 dir2 ꔷ cd 改变当前目录 cd dirname ꔷ pwd 显示当前目录的路径名 pwd ꔷ ls 显示当前目录的内容 ls -la ꔷ dircmp 比较两个目录的内容 di…...

【蓝桥杯嵌入式】2_LED

1、电路图 74HC573是八位锁存器&#xff0c;当控制端LE脚为高电平时&#xff0c;芯片“导通”&#xff0c;LE为低电平时芯片“截止”即将输出状态“锁存”&#xff0c;led此时不会改变状态&#xff0c;所以可通过led对应的八个引脚的电平来控制led的状态&#xff0c;原理图分析…...

微信小程序~电器维修系统小程序

博主介绍&#xff1a;✌程序猿徐师兄、8年大厂程序员经历。全网粉丝15w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…...

链式结构二叉树(递归暴力美学)

文章目录 1. 链式结构二叉树1.1 二叉树创建 2. 前中后序遍历2.1 遍历规则2.2 代码实现图文理解 3. 结点个数以及高度等二叉树结点个数正确做法&#xff1a; 4. 层序遍历5. 判断是否完全二叉树 1. 链式结构二叉树 完成了顺序结构二叉树的代码实现&#xff0c;可以知道其底层结构…...

gc buffer busy acquire导致的重大数据库性能故障

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 作者&#xff1a;IT邦德 中国DBA联盟(ACDU)成员&#xff0c;10余年DBA工作经验 Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主&#xff0c;全网粉丝10万 擅长主流Oracle、MySQL、PG、高斯…...

Unity中Spine骨骼动画完全指南:从API详解到避坑实战

Unity中Spine骨骼动画完全指南&#xff1a;从API详解到避坑实战 一、为什么要选择Spine&#xff1f; Spine作为专业的2D骨骼动画工具&#xff0c;相比传统帧动画可节省90%资源量。在Unity中的典型应用场景包括&#xff1a; 角色换装系统&#xff08;通过插槽替换部件&#xf…...

面经-C语言——堆和栈的区别,引用和指针区别,Linux的常用指令,RS232和RS485,TCP连接建立与断开

面经-C语言——堆和栈的区别&#xff0c;引用和指针区别&#xff0c;Linux的常用指令,RS232和RS485,TCP连接建立与断开 堆(Heap)和栈(Stack)的详细比较引用和指针区别对比表&#xff1a;Linux的常用指令RS232和RS485的详细比较&#xff1a;TCP连接建立与断开三次握手&#xff0…...

(2024|Nature Medicine,生物医学 AI,BiomedGPT)面向多种生物医学任务的通用视觉-语言基础模型

BiomedGPT: A generalist vision–language foundation model for diverse biomedical tasks 目录 1. 摘要 2. 引言 3. 相关研究 3.1 基础模型与通用生物医学 AI 3.2 生物医学 AI 的局限性 3.3 BiomedGPT 的创新点 4. 方法 4.1 架构及表示 4.1.1 模型架构选择 4.1.2 …...