2024-06-25 06:11:16 发布
网友
我试图用Tensorly的tucker将Tucker分解应用于T形状(500, 500, 3, 28)的张量T,我无法定义秩等于原始维度的秩,例如:
tucker
T
(500, 500, 3, 28)
我能做到:
from tensorly.decomposition import tucker tucker(T, [2, 2, 2, 27])
但当我从27岁变为28岁时:
tucker(T, [2, 2, 2, 28])
程序挂起。你知道为什么会这样吗
如果秩等于原始大小,则不能应用稀疏奇异值分解,展开时需要一个完整的(计算量大的)奇异值分解。通过设置init='random'可以绕过SVD,这就是为什么SVD更快的原因
init='random'
有效的方法是在tucker调用中设置init='random'
我不知道到底为什么,但它奏效了
如果秩等于原始大小,则不能应用稀疏奇异值分解,展开时需要一个完整的(计算量大的)奇异值分解。通过设置
init='random'
可以绕过SVD,这就是为什么SVD更快的原因有效的方法是在
tucker
调用中设置init='random'
我不知道到底为什么,但它奏效了
相关问题 更多 >
编程相关推荐