首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >返回ValueError

返回ValueError
EN

Stack Overflow用户
提问于 2021-05-06 10:05:35
回答 1查看 125关注 0票数 1

我有一组人造数据(由一个显式的数学函数生成)存储在一个叫做A的三维张量中。当我尝试运行parafac时,我会收到以下信息:

代码语言:javascript
运行
复制
Traceback (most recent call last):
  File "./ParafacPrintValues.py", line 145, in <module>
    A1, A2, A3 = parafac(A,2)
ValueError: not enough values to unpack (expected 3, got 2)

我是这样进口parafac的:

代码语言:javascript
运行
复制
from tensorly.decomposition import parafac

我安装了(并且刚刚更新了) tensorly库,其中包括:

代码语言:javascript
运行
复制
pip3 install -U tensorly

然而,当我在木星笔记本上运行相同的代码时,它就像预期的那样工作。看来我通过Pip安装的东西和木星笔记本的IPython有区别。有人能帮忙吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-07 09:33:26

在最新版本的TensorLy中,parafac返回一个作为元组的CPTensor (权重、因子):除了分解的因素之外,还会得到一个权重向量。这是因为CP分解将原来的张量表示为秩-1张量的加权和。

换句话说,如果您使用的是最新版本的TensorLy,您的代码应该是:

代码语言:javascript
运行
复制
weights, factors = parafac(tensor, rank)

或者,如果您想像在示例中一样显式地将每个因素存储在变量中:

代码语言:javascript
运行
复制
weights, (A1, A2, A3) = parafac(tensor, rank)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67415972

复制
相关文章

相似问题

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