You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何对RGB三通道权重矩阵实现秩K的SVD分解?

实现特定秩K的SVD截断分解

你已经完成了完整SVD分解,要得到特定秩K的近似结果,核心就是保留前K个最大的奇异值及其对应的奇异向量,再重构出低秩矩阵,具体操作如下:

核心步骤

  • 从已得到的u、s、v里挑出前K个关键分量:
    • u_k:取u的前K列
    • s_k:把s的前K个值转成K×K的对角矩阵
    • v_k:取v的前K行
  • 用这三个分量相乘,就能得到秩为K的近似权重矩阵

代码示例

import numpy as np

# 假设已经通过np.linalg.svd得到了u, s, v
# 设置你需要的目标秩K(K不能超过原矩阵的最小维度)
K = 5  # 替换成实际需要的K值

# 提取前K个分量
u_k = u[:, :K]
s_k = np.diag(s[:K])
v_k = v[:K, :]

# 重构秩为K的近似权重矩阵
weight_k = u_k @ s_k @ v_k

注意点

  • K的取值必须满足 1 ≤ K ≤ min(weight.shape[0], weight.shape[1]),不然会触发索引错误
  • 如果原矩阵本身的秩就小于K,那截断后的结果和原矩阵完全一样,因为没有更多奇异值可以保留
  • 你之前用了full_matrices=False,所以u和v都是紧凑格式,直接截取就行,不用额外调整维度

内容的提问来源于stack exchange,提问作者Pranjal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 21:55:39