首页 > 解决方案 > 无法将 Tucker 分解中的等级定义为等于原始维度

问题描述

我正在尝试将 Tucker 分解应用于具有 Tensorly 的T形状张量,但我无法定义等级等于原始维度的等级,例如:(500, 500, 3, 28)tucker

我可以:

from tensorly.decomposition import tucker
tucker(T, [2, 2, 2, 27])

但是当我将 27 更改为 28 时:

tucker(T, [2, 2, 2, 28])

程序挂起。任何想法为什么会发生这种情况?

标签: pythontensorly

解决方案


如果秩等于原始大小,则无法应用稀疏 SVD,并且在展开时需要完整(计算量大)的 SVD。通过设置init='random'您绕过 SVD,这就是它更快的原因。


推荐阅读