首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法将Tucker分解中的等级定义为与原始维度相等

无法将Tucker分解中的等级定义为与原始维度相等
EN

Stack Overflow用户
提问于 2019-06-16 20:11:13
回答 2查看 64关注 0票数 0

我正在尝试使用Tensorly的tucker对shape (500, 500, 3, 28)的张量T应用塔克分解,但是我不能定义等级等于原始维度的等级,例如:

我可以这样做:

代码语言:javascript
复制
from tensorly.decomposition import tucker
tucker(T, [2, 2, 2, 27])

但是当我把27改成28:

代码语言:javascript
复制
tucker(T, [2, 2, 2, 28])

程序挂起。你知道为什么会发生这种情况吗?

EN

回答 2

Stack Overflow用户

发布于 2019-07-29 20:42:32

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

票数 1
EN

Stack Overflow用户

发布于 2019-06-18 03:08:50

起作用的是在tucker调用中设置init='random'

虽然不知道具体原因,但它确实起作用了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56618712

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档