【问题标题】:tensorly.kruskal_to_tensor() method explanationtensorly.kruskal_to_tensor() 方法解释
【发布时间】:2020-03-26 21:26:27
【问题描述】:

我正在尝试理解 tensorly 包中的 tl.kruskal_to_tensor() 方法。 在webpage 中,我知道它将矩阵列表作为输入并生成其cp-decomposiiton 是矩阵的张量?它将矩阵列表作为输入。

但是我看到了下面的代码:

import tensorly as tl
rank =5
dim1= 9
dim2=8
dim3=7
A= tl.tensor(np.random.normal(0,1,[dim1,rank]))
B= tl.tensor(np.random.normal(0,1,[dim2,rank]))
C= tl.tensor(np.random.normal(0,1,[dim3,rank]))

T_approx_old = tl.kruskal_to_tensor((np.ones(rank),[A,B,C]))

我不理解方法中的 np.ones(rank) 参数。

它有什么作用?

【问题讨论】:

    标签: python tensorly


    【解决方案1】:

    此版本的kruskal_to_tensor 记录在dev version of the API 中。

    np.ones 对应于 Kruskal 张量的权重:Kruskal 张量将张量表示为一级张量(向量的外积,作为因子矩阵的列收集)的加权和。在您的情况下,总和的权重都是 1,并在此向量中累积。

    请注意,您可以 normalize 您的 Kruskal 张量的因子并在这些权重中吸收它们的大小。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多