我正在尝试使用Tensorly的tucker对shape (500, 500, 3, 28)的张量T应用塔克分解,但是我不能定义等级等于原始维度的等级,例如:
我可以这样做:
from tensorly.decomposition import tucker
tucker(T, [2, 2, 2, 27])但是当我把27改成28:
tucker(T, [2, 2, 2, 28])程序挂起。你知道为什么会发生这种情况吗?
发布于 2019-07-29 20:42:32
如果秩等于原始大小,则不能应用稀疏SVD,并且在展开时需要完整的(计算量大的) SVD。通过设置init='random',您可以绕过奇异值分解,这就是它更快的原因。
发布于 2019-06-18 03:08:50
起作用的是在tucker调用中设置init='random'。
虽然不知道具体原因,但它确实起作用了。
https://stackoverflow.com/questions/56618712
复制相似问题