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

机器学习中的线性代数:奇异值分解 SVD

线性代数 奇异值分解(SVD)

参考资料:
超详细!彻底搞懂矩阵奇异值分解(SVD)本质+计算+应用!_哔哩哔哩_bilibili
非常好的视频,本文内容主要来自于该视频,在此表示感谢!

简单的实对称矩阵

我们从一个简单的对称矩阵开始说起:
A = [ 1 2 2 1 ] A = \left[ \begin{matrix} 1 & 2 \\ 2 & 1 \\ \end{matrix} \right] A=[1221]
我们有 A A A 这样的一个矩阵,一个二维向量 x x x 右乘 A A A 相当于进行了一次线性变换,但是这样并不简洁,从直观的角度上来说,既发生了旋转,也发生了拉伸,比如说 x 1 = ( 1 0 ) x_1 = \left( \begin{matrix}1\\0\end{matrix} \right ) x1=(10),就会得到 A x 1 = ( 1 2 ) Ax_1 = \left( \begin{matrix}1 \\ 2\end{matrix}\right) Ax1=(12),这里显然发生了“拉伸”,也发生了“旋转”,毕竟单一维度的向量已经到达了更高维度的情况。

在这样的思路下,我们尝试抽取一般性的“伸缩矩阵”和“旋转变换矩阵”

  • 伸缩变换(也就是只会沿着某个坐标轴的方向进行倍数变化):
    S = [ λ 1 λ 2 ] = d i a g { λ 1 , λ 2 } S = S T , λ 1 , λ 2 ≥ 0 S = \left[ \begin{matrix} \lambda_1 & &\\& & \lambda_2 \end{matrix} \right ] = {diag} \{ \lambda_1, \lambda_2\} \newline S = S^T, \;\;\;\lambda_1, \lambda_2 \ge 0 S=[λ1λ2]=diag{λ1,λ2}S=ST,λ1,λ20
    其中,经过简单验证,可以发现矩阵 S S S 可以保证只会坐标轴方向进行伸缩,其他情况同理

  • 旋转变换:对应到正交矩阵 Q Q Q
    Q T Q = Q Q T = E , Q − 1 = Q T Q^T Q=Q Q^T = E, \;\; Q^{-1} = Q^T QTQ=QQT=E,Q1=QT
    正交矩阵对应的就是不改变长度的情况下,向量的旋转变换

从 实对称矩阵 到 分解后的变换

对于 A A A 来说,旋转 -> 伸缩 -> 再旋转是一种比较自然的想法,
A = Q S Q T → S = Q T A Q = Q − 1 A Q A = QSQ^T \rightarrow \; S = Q^T A Q = Q^{-1} A Q A=QSQTS=QTAQ=Q1AQ
我们先进行某种角度的旋转,待到伸缩变换之后,我们再进行反角度的旋转;
这里 S S S 是对角矩阵,且 Q T = Q − 1 Q^T = Q^{-1} QT=Q1所以 S S S A A A 一定是相似矩阵,这里我们求 S S S ,只需要求出特征值就可以;

但是这里需要注意的是:
我们要求: λ i ≥ 0 \lambda_i \ge 0 λi0 成立,代表的含义是某个维度上的放缩不可以进行反向放缩
但是 Q Q Q 还有其他要求,需要进行“矫正”操作,带后面会继续进行说明

为了使得 S S S 尽量具有唯一性和好的性质,我们常常将 S = d i a g { λ 1 , . . . , λ n } S=diag\{ \lambda_1, \;... ,\; \lambda_n\} S=diag{λ1,...,λn} 从大到小排列 这样尽量保证唯一性,并且在低秩近似矩阵中也有一定的应用

普通方阵的奇异值分解

对一个普通的方阵 A A A ,我们可以知道 A A T AA^T AAT 以及 A T A A^TA ATA 一定是对称矩阵,证明也很显然:
( A A T ) T = ( A T ) T ( A ) T = A A T (AA^T)^T = (A^T)^T (A)^T = AA^T (AAT)T=(AT)T(A)T=AAT
我们假设 A A A 是可以进行某种类型的分解的(这一点在这里没有证明):
A = P S Q T , P P T = P T P = E , Q Q T = Q T Q = E (1.1) A = P S Q^T, \qquad PP^T=P^TP=E, QQ^T=Q^TQ=E \tag{1.1} A=PSQT,PPT=PTP=E,QQT=QTQ=E(1.1)

A A T = P S Q T Q S T P = P S 2 P T A T A = Q S T P T P S Q T = Q S 2 Q T (1.2) AA^T = PSQ^T Q S^T P = P S^2 P^T \newline A^T A = Q S^T P^T P S Q^T = QS^2Q^T \tag {1.2} AAT=PSQTQSTP=PS2PTATA=QSTPTPSQT=QS2QT(1.2)

注意:尽管我们可以从 ( 1.1 ) (1.1) (1.1) 推导到 ( 1.2 ) (1.2) (1.2),但是二者并不是充要条件,也就是说 这里的 A T A = ( − Q ) S 2 ( − Q ) T A^TA = (-Q) S^2 (-Q)^T ATA=(Q)S2(Q)T 也是有可能出现的,因此,我们通过 ( 1.2 ) (1.2) (1.2) 求出来的特征值可以保证是正确的(直接开根号、取正数),但是特征向量还是需要进行 校正

具体来说,我们需要 ( 1.1 ) (1.1) (1.1) 的完全等价表示:
A = P S Q T ⇔ A Q = P S (1.3) A = PSQ^T \quad \Leftrightarrow \quad AQ = PS \tag{1.3} A=PSQTAQ=PS(1.3)
我们接下来,我们就可以用 ( 1.3 ) (1.3) (1.3) 进行校正,我们可以固定其中的 Q Q Q,默认它是正确的,然后重新解出来 P P P,此时也就可以保证正确性

从 方阵 到 m ∗ n m*n mn 矩阵

A m ∗ n = P m ∗ m S m ∗ n Q n ∗ n T (1.4) A_{m*n} = P_{m*m} \; S_{m*n} \; Q_{n*n}^T \tag{1.4} Amn=PmmSmnQnnT(1.4)

这里, P , Q P,Q P,Q 均为正交矩阵,这里假设 m < n m\lt n m<n S S S 需要满足这样的性质: S m ∗ n = ( J m ∗ m , O ) S_{m*n} = (J_{m*m}\,,\;O) Smn=(Jmm,O) J J J 是对角矩阵;

这里可以思考这样一个问题:
如果说, J m ∗ m J_{m*m} Jmm 表示的是各个维度上的伸缩,那么 J m ∗ n J_{m*n} Jmn 表示了怎样的几何含义?

这里只对 A m ∗ n , m < n A_{m*n}, m \lt n Amn,m<n 的情况进行讨论,另一边可以用相似的方法:
A m ∗ n = P S Q T = P ( J , O ) Q T A A T = P S S T P T = P J 2 P T A T A = Q S T S Q T = Q ( J O ) ( J O ) Q T = Q ( J 2 O O O ) Q T A_{m*n} = PSQ^T = P\,(J, O) \,Q^T \newline AA^T = PSS^TP^T = PJ^2P^T \newline A^TA = QS^TSQ^T = Q \left( \begin{matrix} J \\ O \end{matrix} \right) \left( \begin{matrix} J & O \end{matrix} \right)Q^T = Q \left( \begin{matrix}J^2 & O \\ O & O \end{matrix} \right)Q^T Amn=PSQT=P(J,O)QTAAT=PSSTPT=PJ2PTATA=QSTSQT=Q(JO)(JO)QT=Q(J2OOO)QT
这样求出公共的特征值,仍然需要进行校正操作,就可以得到最终答案

奇异值分解的实际应用

奇异值分解被广泛用于图像处理、低秩近似矩阵等领域,可以用来进行数据压缩等等;
比如说,一张 512 * 512 的图片,我们正常来说需要记录它的全部像素点,但是 A = P S Q T A = PSQ^T A=PSQT,而且我们可以逐个 S S S 的元素进行展开,
A = [ α 1 . . . α n ] d i a g { λ 1 , . . . , λ n } [ β 1 . . . β n ] T A = \left[ \begin{matrix} \alpha_1& ... &\alpha_n \end{matrix} \right] diag\{\lambda_1, ... ,\lambda_n \} \left[ \begin{matrix} \beta_1& ... &\beta_n \end{matrix} \right]^T A=[α1...αn]diag{λ1,...,λn}[β1...βn]T
这样我们可以发现,每一项一定是秩为1的,而且如果按照我们所说的 λ i \lambda_i λi 大的部分放的更靠前,那么我们就在一定程度上认为,前面的部分所占的权重更大,可能只取前面 200 项的时候,就基本能够近似表示原本的图片,这也就是所谓“低秩近似”,也就起到了压缩图片的作用

相关文章:

机器学习中的线性代数:奇异值分解 SVD

线性代数 奇异值分解&#xff08;SVD&#xff09; 参考资料&#xff1a; 超详细&#xff01;彻底搞懂矩阵奇异值分解&#xff08;SVD&#xff09;本质计算应用&#xff01;_哔哩哔哩_bilibili 非常好的视频&#xff0c;本文内容主要来自于该视频&#xff0c;在此表示感谢&#…...

机器学习深度学习基本概念:logistic regression和softmax

逻辑回归用来处理二分类问题 softmax用来处理多分类问题&#xff1a;比如llm在generate的时候&#xff0c;每个batch里面的一个样本的一个一次generate就是softmax生成一个大小为vocab_size的向量的概率分布&#xff0c;然后再采样 逻辑回归&#xff08;logistic regression&…...

机器学习(六)

一&#xff0c;决策树&#xff1a; 简介&#xff1a; 决策树是一种通过构建类似树状的结构&#xff08;颠倒的树&#xff09;&#xff0c;从根节点开始逐步对数据进行划分&#xff0c;最终在叶子节点做出预测结果的模型。 结构组成&#xff1a; 根节点&#xff1a;初始的数据集…...

在 Maven 中使用 <scope> 元素:全面指南

目录 前言 在 Maven 中&#xff0c; 元素用于定义依赖项的作用范围&#xff0c;即依赖项在项目生命周期中的使用方式。正确使用 可以帮助我们优化项目的构建过程&#xff0c;减少不必要的依赖冲突&#xff0c;并提高构建效率。本文将详细介绍 的使用步骤、常见作用范围、代码…...

Manus邀请码如何申请,有哪些办法

Manus是由Monica团队推出的一款通用型AI智能体产品&#xff0c;旨在通过自主任务规划与执行能力&#xff0c;将用户的想法转化为实际成果。它不仅能够理解复杂指令&#xff0c;还能通过调用虚拟环境中的工具&#xff08;如浏览器、代码编辑器、文件处理器等&#xff09;&#x…...

大型WLAN组网部署(Large scale WLAN network deployment)

大型WLAN组网部署 大型WLAN网络关键技术 技术 作用 VLAN Pool 通过VLAN Pool把接入的用户分配到不同的VLAN&#xff0c;可以减少广播域&#xff0c;减少网络中的广播报文&#xff0c;提升网络性能。 DHCP Option 43 & 52 当AC和AP间是三层组网时&#xff0c;AP通过…...

MQ保证消息的顺序性

在消息队列&#xff08;MQ&#xff09;中保证消息的顺序性是一个常见的需求&#xff0c;尤其是在需要严格按顺序处理业务逻辑的场景&#xff08;例如&#xff1a;订单创建 → 支付 → 发货&#xff09;。 一、消息顺序性被破坏的原因 生产者异步/并行发送&#xff1a;消息可能…...

SQL Server查询计划操作符(7.3)——查询计划相关操作符(9)

7.3. 查询计划相关操作符 78)Repartition Streams:该操作符消费多个输入流并产生多个输出流。期间,记录内容与格式保持不变。如果查询优化器使用一个位图过滤(bitmap filter),则输出流中的数据行数将会减少。一个输入流的每行记录被放入一个输出流。如果该操作符保留顺序…...

杨校老师课堂之零基础入门C++备战信息学奥赛-基础篇

零基础快速入门C C学习路线一、基础语法1. C基础框架2. C语言输出3. C 语言输入4. C 数据类型5. C 赋值6. 运算符与表达式7. 控制结构语句7.1 if分支结构语句7.1.1 单分支结构语句7.1.2 双分支结构语句7.1.3 多分支结构语句 7.2 switch开关语句 8. 循环结构语句8.1 for循环8.2 …...

wxWidgets GUI 跨平台 入门学习笔记

准备 参考 https://wiki.wxwidgets.org/Microsoft_Visual_C_NuGethttps://wiki.wxwidgets.org/Tools#Rapid_Application_Development_.2F_GUI_Buildershttps://docs.wxwidgets.org/3.2/https://docs.wxwidgets.org/latest/overview_helloworld.htmlhttps://wizardforcel.gitb…...

Aws batch task 无法拉取ECR 镜像unable to pull secrets or registry auth 问题排查

AWS batch task使用了自定义镜像&#xff0c;在提作业后出现错误 具体错误是ResourceInitializationError: unable to pull secrets or registry auth: The task cannot pull registry auth from Amazon ECR: There is a connection issue between the task and Amazon ECR. C…...

亚信安全发布2024威胁年报和2025威胁预测

在当今数字化时代&#xff0c;网络空间已成为全球经济、社会和国家安全的核心基础设施。随着信息技术的飞速发展&#xff0c;网络连接了全球数十亿用户&#xff0c;推动了数字经济的蓬勃发展&#xff0c;同时也带来了前所未有的安全挑战。2024年&#xff0c;网络安全形势愈发复…...

verb words

纠正correct remedy 修正modify 协商 confer 磋商/谈判 negotiate 通知notice notify *宣布announce 声明declare 宣告 declare *颁布 promulgate /introduce 协调coordinate 评估evaluate assess 撤离evacuate *规定stipulate 参与participate&#xff0c; 涉及refer…...

程序诗篇里的灵动笔触:指针绘就数据的梦幻蓝图<12>

大家好啊&#xff0c;我是小象٩(๑ω๑)۶ 我的博客&#xff1a;Xiao Xiangζั͡ޓއއ 很高兴见到大家&#xff0c;希望能够和大家一起交流学习&#xff0c;共同进步。 目录 一、回调函数二、qsort2.1 使用qsort函数排序整型数据2.2 使用qsort排序结构数据2.3 qsort函数的模…...

视频录像机视频通道是指什么

视频录像机的视频通道是指摄像机在监控矩阵或硬盘录像机设备上的视频输入的物理位置。 与摄像头数量关系&#xff1a;在视频监控系统中&#xff0c;有多少个摄像头就需要多少路视频通道&#xff0c;通道数量决定了视频录像机可接入摄像头的数量&#xff0c;一般硬盘录像机有4路…...

MySQL 实战 4 种将数据同步到ES方案

文章目录 1. 前言2. 数据同步方案 2.1 同步双写2.2 异步双写2.3 定时更新2.4 基于 Binlog 实时同步 3. 数据迁移工具选型 3.1 Canal3.2 阿里云 DTS3.3 Databus3.4 Databus和Canal对比3.4 其它 4. 后记 上周听到公司新同事分享 MySQL 同步数据到 ES 的方案&#xff0c;发现很有…...

sqlserver中的锁模式 | SQL SERVER如何开启MVCC(使用row-versioning)【启用行版本控制减少锁争用】

文章目录 引言锁和隔离级别的关系锁模式之间兼容性I 隔离级别SQLServer默认的隔离级别为:“read commited” (已提交读)在SQLServer2005引入了基于行版本控制的隔离级别。SQL SERVER如何开启MVCC(使用row-versioning)sqlserver开启MVCC后的锁II sqlserver中的锁模式**1、共享…...

拥抱健康养生,开启活力生活

在快节奏的现代生活中&#xff0c;健康养生已成为人们关注的焦点&#xff0c;它不仅是对身体的呵护&#xff0c;更是一种积极的生活态度。 合理饮食是健康养生的基石。我们应秉持均衡膳食的理念&#xff0c;谷物、蔬菜、水果、蛋白质类食物一个都不能少。每天保证足够的蔬菜摄入…...

江科大51单片机笔记【9】DS1302时钟可调时钟(下)

在写代码前&#xff0c;记得把上一节的跳线帽给插回去&#xff0c;不然LCD无法显示 一.DS1302时钟 1.编写DS1302.c文件 &#xff08;1&#xff09;重新对端口定义名字 sbit DS1302_SCLKP3^6; sbit DS1302_IOP3^4; sbit DS1302_CEP3^5;&#xff08;2&#xff09;初始化 因为…...

Python可视化——地理空间型图表(自用)

地图信息可视化的实现就是将不可展开的曲面上的地理坐标信息转化为二维平面进行显示&#xff0c;这个过程也叫地图投影&#xff08;空间三维投影到平面二维&#xff09; 地图投影的要求&#xff1a;等面积、等角度、等距离。总的来说就是映射到二维平面中的任何点通过比例尺放大…...

Python 网络爬虫教程与案例详解

Python 网络爬虫教程与案例详解 在当今数字化时代&#xff0c;数据的价值愈发凸显。Python 作为一门强大的编程语言&#xff0c;在数据获取领域有着广泛的应用&#xff0c;其中网络爬虫便是一项重要的技术。网络爬虫能够自动从网页中提取所需数据&#xff0c;极大地提高了数据…...

最新的前端场景面试题

1、如何实现一个Vue3的弹框组件,你会如何设计? 如果要实现一个 Vue3 的弹框组件,我会从以下几个关键点进行设计: 组件结构:定义组件的基础结构,包括模块(template)、脚本(script)和样式(style);显示和隐藏逻辑:设计和实现弹框的显示和隐藏机制,通常通过传递 pro…...

冲刺高分!挑战7天一篇孟德尔联合meta分析 DAY1-7

Day1 此前我们完成了若干篇关于meta的挑战&#xff0c;这一次挑战想在meta分析基础上进一步创新一些&#xff0c;这一次想要挑战孟德尔联合meta分析的文章&#xff0c;有想学习的师弟师妹跟我们一起完成这波挑战吧&#xff5e; Day1任务收集信息明确选题明确目标期刊精读范文…...

win32汇编环境,对话框中使用树形视图示例二

;运行效果 ;win32汇编环境,对话框中使用树形视图示例二 ;得到树形视图控件Treeview的全路径字符串,这里的方法是由子项向父项挨个找的算法找齐路径 ;直接抄进RadAsm可编译运行。重要部分加备注。 ;下面为asm文件 ;>>>>>>>>>>>>>>&g…...

前端开发10大框架深度解析

摘要 在现代前端开发中&#xff0c;框架的选择对项目的成功至关重要。本文旨在为开发者提供一份全面的前端框架指南&#xff0c;涵盖 React、Vue.js、Angular、Svelte、Ember.js、Preact、Backbone.js、Next.js、Nuxt.js 和 Gatsby。我们将从 简介、优缺点、适用场景 以及 实际…...

tomcat的web管理

进入到conf cd /usr/local/tomcat/conf/备份tomcat-users.xml cp tomcat-users.xml{.,bak}编辑tomcat-users.xml vim tomcat-users.xml增加以下内容 配置tomcat-users.xml <role rolename"manager-gui"/><role rolename"admin-gui"/><use…...

类和对象(上)

1.面向过程与面向对象的初步认识 面向过程&#xff1a;以步骤为中心&#xff0c;适合简单逻辑&#xff0c;但复杂系统易混乱。 面向对象&#xff1a;以对象职责为中心&#xff0c;通过抽象和模块化应对复杂需求。 C语言&#xff1a;面向过程&#xff0c;关注的是过程&#xff0…...

springcloud智慧工地物联网云管理系统源码

智慧工地以物联网云平台为核心&#xff0c;基于智慧工地物联网云平台与现场多个子系统的互联&#xff0c;实现现场各类工况数据采集&#xff0c;存储、分析与应用。通过接入智慧工地物联网云平台的多个子系统板块&#xff0c;根据现场管理实际需求灵活组合&#xff0c;实现一体…...

SLAM评估工具安装及使用EVO(Ubuntu20.04安装evo)--缺少 onnx 库还有Pandas 版本不兼容解决

介绍一下我的是ubuntu20.04.机载电脑是orinnx&#xff0c;通过源码烧写的系统。 首先打开终端&#xff0c;输入 pip install evo --upgrade --no-binary evo 安装过程中出现如下问题 缺少 onnx 库还有Pandas 版本不兼容&#xff0c; ONNX&#xff08;Open Neural Network E…...

K8S学习之基础十五:k8s中Deployment扩容缩容

deployment扩容缩容比较简单&#xff0c;下面介绍两种常用方法 vi deploy-demo.yaml kind: Deployment metadata:name: myapp-v1 spec:replicas: 2selector:matchLabels:app: myappversion: v1template:metadata:labels:app: myappversion: v1spec:containers:- name: myappim…...

ClickHouse 中出现 DB::Exception: Too many parts 错误

在 ClickHouse 中出现 DB::Exception: Too many parts 错误&#xff0c;通常是由于表中数据分片&#xff08;parts&#xff09;数量超过系统限制&#xff0c;导致合并&#xff08;merge&#xff09;操作无法及时处理。以下是逐步解决方案&#xff1a; 1. 理解问题原因 MergeTr…...

PPT 小黑第20套

对应大猫21 Word转PPT 图片也得复制 题目要求两套PPT母板&#xff0c;应用不同版式&#xff08;版式那就可以选&#xff09; 竖排文字...

大模型管理工具:LLaMA-Factory

目录 一、安装与环境配置 二、​启动 Web 界面 三、数据准备 四、模型训练 五、模型评估 七、模型导出 八、API服务部署 LLaMA-Factory 是一个开源的大语言模型&#xff08;LLM&#xff09;微调框架&#xff0c;旨在简化大规模模型的训练、微调和部署流程。它支持多种主…...

【机器人栅格地图】基于鹭鹰算法SBOA实现机器人栅格地图路径规划(目标函数:最短距离)附Matlab代码

基于鹭鹰算法&#xff08;SBOA&#xff09;的机器人栅格地图路径规划实现 一、鹭鹰算法&#xff08;SBOA&#xff09;的基本原理 鹭鹰优化算法&#xff08;Secretary Bird Optimization Algorithm, SBOA&#xff09;是一种新型元启发式算法&#xff0c;灵感源自鹭鹰的捕猎和逃…...

【Linux篇】版本控制器-Git

&#x1f4cc; 个人主页&#xff1a; 孙同学_ &#x1f527; 文章专栏&#xff1a;Liunx &#x1f4a1; 关注我&#xff0c;分享经验&#xff0c;助你少走弯路&#xff01; 文章目录 1.如何理解版本控制&#xff1f;2.Git的操作补充细节问题 1.如何理解版本控制&#xff1f; 版…...

论文阅读:KAM-CoT: Knowledge Augmented Multimodal Chain-of-Thoughts Reasoning

论文来源&#xff1a;AAAI 2024 论文地址&#xff1a;https://ojs.aaai.org/index.php/AAAI/article/view/29844 Abstract LLM通过利用能够逐步思考的思维链在NLP任务中取得了很好的性能&#xff0c;但是为LLM扩展多模态能力时计算成本高&#xff0c;且需要大量的硬件资源。…...

linux内存页块划分及位图存储机制

page_alloc.c - mm/page_alloc.c - Linux source code v5.4.285 - Bootlin Elixir Cross Referencer 一. 什么是页块&#xff08;Pageblock&#xff09;&#xff1f; 定义&#xff1a;页块是物理内存中的一个连续区域&#xff0c;由 2^pageblock_order 个物理页&#xff08;Pag…...

一台云工作站是否能通过共享云桌面让10人流畅进行三维设计

云工作站&#xff0c;作为一种基于云计算技术的远程工作站解决方案&#xff0c;它将高性能的计算资源集中在云端服务器上&#xff0c;用户通过网络访问这些资源&#xff0c;实现高效、灵活的办公和创作环境。而三维设计&#xff0c;尤其是涉及复杂模型、高精度渲染等领域&#…...

安卓应用之服务

服务 服务也是四大组件之一&#xff0c;用于执行长时间运行操作的组件&#xff0c;它与用户界面&#xff08;UI&#xff09;是分开的&#xff0c;因此即使用户切换到其他应用&#xff0c;服务依然可以继续运行。主要用于处理一些不需要用户交互的任务。例如&#xff0c;播放音…...

【Vue CLI脚手架开发】——6.scoped样式

文章目录 一、scoped是什么二、应用案例1.使用代码2.原理3父组件App未添加scoped影响 一、scoped是什么 我们知道vue为了防止css样式污染&#xff0c;在每个组件中提供了 scoped属性进行限定css作用域&#xff1b;当<style>标签有 scoped 属性时&#xff0c;它的 CSS 只…...

JVM参数调整

一、内存相关参数 1. 堆内存控制 -Xmx&#xff1a;最大堆内存&#xff08;如 -Xmx4g&#xff0c;默认物理内存1/4&#xff09;。-Xms&#xff1a;初始堆内存&#xff08;建议与-Xmx相等&#xff0c;避免动态扩容带来的性能波动&#xff09;。-Xmn&#xff1a;新生代大小&…...

NodeJS学习笔记

NodeJS软件安装 node环境安装&#xff1a; https://nodejs.org 安装好后的node通常在C:\Program Files\nodejs验证安装是否成功 node -v npm -v 进入REPL模式命令行模式 nodeNodeJS在REPL模式和编辑器使用 windos在dos下常用命令 windos命令&#xff1a; 1、cmd dos系统2、…...

缺陷管理工具-禅道

目录 一、禅道的介绍 二、禅道的特点 三、禅道使用流程 1.管理缺陷 2.管理用例 黑马测试视频学习记录 一、禅道的介绍 二、禅道的特点 三、禅道使用流程 1.管理缺陷 2.管理用例...

C++ 单词识别_牛客题霸_牛客网

点击链接即可查看题目: 单词识别_牛客题霸_牛客网 一、题目 描述 输入一个英文句子&#xff0c;把句子中的单词(不区分大小写)按出现次数按从多到少把单词和次数在屏幕上输出来&#xff0c;次数一样的按照单词小写的字典序排序输出&#xff0c;要求能识别英文单词和句号。 输入…...

qt open3dAlpha重建

qt open3dAlpha重建 效果展示二、流程三、代码效果展示 二、流程 创建动作,链接到槽函数,并把动作放置菜单栏 参照前文 三、代码 1、槽函数实现 void on_actionAlpha_triggered();//alpha重建 void MainWindow::...

PS内发光、外发光

内外发光&#xff08;图层样式–》内发光、外发光&#xff09;&#xff1a;&#xff08;滤色 效果最好&#xff09; 内发光–》结构&#xff1a;内发光的外形 内发光–》图素&#xff1a;渐变发光细节的调整 内发光–》品质&#xff1a;增加质感 内发光–》图素–》阻塞&#x…...

C++之thread_local变量

C之thread_local变量_c threadlocal-CSDN博客 thread_local简介 thread_local 是 C11 为线程安全引进的变量声明符。表示对象的生命周期属于线程存储期。 线程局部存储(Thread Local Storage&#xff0c;TLS)是一种存储期(storage duration)&#xff0c;对象的存储是在…...

鸿蒙开发中,数据持久化之Transaction(事务)的概念及应用

SQLite 数据库具备事务处理能力。 事务本质上是一组操作的集合&#xff0c;它具有原子性&#xff0c;意味着这一系列操作要么全部成功执行&#xff0c;要么全部失败&#xff0c;不存在部分操作成功而部分失败的中间状态。 以常见的转账功能为例&#xff0c;A 账户向 B 账户转账…...

软考高项笔记 1.1.1 信息

1.1.1 信息 &#x1f4da; 信息(Information) 是物质、能量及其属性的标示的集合&#xff0c;是确定性的增加。它以物质介质为载体&#xff0c;传递和反映世界各种事物存在方式、运动状态等的表征。信息不是物质&#xff0c;也不是能力&#xff0c;它以一种普遍形式&#xff0c…...

【TCP/IP协议栈】计算机网络知识补充

参考资料&#xff1a; 前言 【计算机网络知识】 总结 IP 在互联网中MAC 在局域网中 1. IP地址 IP地址有两个版本&#xff0c;IPv4和IPv6。IPv6现在并没有普及使用&#xff0c;所以现在使用的地址大部分依然是IPv4。 IP地址是在IP协议中&#xff0c;用来标识网络中不同主机的…...