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

Python稀疏矩阵幂迭代法运行卡顿与内核崩溃问题求助

问题根源排查

代码的核心错误是使用numpy.dot()执行稀疏矩阵和稠密向量的乘法:numpy原生函数不支持scipy稀疏矩阵结构,运算时会自动将10001×10001的稀疏矩阵隐式转换为稠密矩阵,仅该矩阵就需要占用约800MB内存(float64格式下),再加上迭代过程的额外开销,很容易触发内存不足导致内核崩溃或运算卡顿。

修复后代码

首先确认HS为scipy.sparse.csr_matrix类型(你提供的参数显示已经是CSR格式,无需额外转换),修改矩阵乘法逻辑即可:

%%time
import numpy as np

webpage_count = 10001
pg_vector = np.array([1/webpage_count]*webpage_count)

for i in range(10):
    # 替换np.dot为稀疏矩阵自带的dot方法,不会触发稠密转换
    pg_vector1 = HS.dot(pg_vector)
    # 新版本scipy也支持更简洁的写法:pg_vector1 = HS @ pg_vector

    # 计算范数
    pg_vector1_norm = np.linalg.norm(pg_vector1)

    # 向量重归一化
    pg_vector = pg_vector1 / pg_vector1_norm

print(pg_vector)
可选优化建议
  • 初始向量可以直接写为np.full(webpage_count, 1/webpage_count),比列表转数组的写法效率更高
  • 如果后续需要提升迭代次数,可以添加残差判断逻辑,当两次迭代的向量差值小于设定阈值时提前终止,无需跑完固定迭代次数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 20:15:08