首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用scikit-tensor进行张量分析

使用scikit-tensor进行张量分析
EN

Stack Overflow用户
提问于 2016-04-13 14:42:54
回答 1查看 1.4K关注 0票数 1

我使用下面的代码在scikit-tensor中进行parafac分解。这段代码是scikit-tensor的一个示例。

代码语言:javascript
复制
from sktensor import dtensor, cp_als, parafac2, tucker_hooi
import numpy
import sktensor

T=dtensor(numpy.arange(100).reshape(2, 5,10))
print (type(T))

P, F, D, A, fit, itr, exectimes = parafac2.parafac2(T, 3, init=3, ma_iter=5, conv= 4)

当我运行这段代码时,输出是...

代码语言:javascript
复制
Traceback (most recent call last):
  File "C:/Users/meghdad/PycharmProjects/tensorInPython/dtensor1.py", line 17, in <module>
    P, F, D, A, fit, itr, exectimes = parafac2.parafac2(T, 3, init=3, ma_iter=5, conv= 4)
  File "C:\Anaconda3\lib\site-packages\scikit_tensor-0.1-py3.5.egg\sktensor\parafac2.py", line 50, in parafac2
  File "C:\Anaconda3\lib\site-packages\scikit_tensor-0.1-py3.5.egg\sktensor\parafac2.py", line 113, in __init
UnboundLocalError: local variable 'F' referenced before assignment

如何解决此错误?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-14 00:25:05

我查看了0.1版的source code。"init“关键字的唯一有效值是"nvecs”或"random“。默认值为"nvecs“。如果您尝试其中任何一个,您将摆脱您的错误:

代码语言:javascript
复制
P, F, D, A, fit, itr, exectimes = parafac2.parafac2(T, 3, init='nvecs', ma_iter=5, conv= 4)

代码语言:javascript
复制
P, F, D, A, fit, itr, exectimes = parafac2.parafac2(T, 3, init='random', ma_iter=5, conv= 4)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36590532

复制
相关文章

相似问题

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