2024-06-25 06:03:17 发布
网友
我对tensor和tensorly库非常陌生。我在jeankossaifi上遇到了一个最好的张量分解示例,但我需要一个用于张量分解的tensorly函数non_negative_tucker()的示例,方法是扩展上面链接上的示例(对于Olivetti数据集)。你知道吗
接口与robust_pca接口几乎相同。你知道吗
让我们创建一个随机示例张量X:
X
import tensorly as tl import numpy as np X = tl.tensor(np.random.random((10, 11, 12)))
您将应用鲁棒张量PCA,如下所示:
from tensorly.decomposition import robust_pca D, E = robust_pca(X)
这给你一个低秩张量D,和一个稀疏张量E,这样D + E = X(近似)。你知道吗
D
E
D + E = X
相反,非负塔克会给你一个非负核心和一些非负因素。请注意,现在还必须为分解指定秩。你知道吗
from tensorly.decomposition import non_negative_tucker core, factors = non_negative_tucker(X, rank=(12, 12, 12), n_iter_max=1000)
您可以使用这些重建张量并检查重建误差:
reconstruction = tl.tucker_to_tensor(core, factors) error = tl.norm(reconstruction - X)/tl.norm(X)
您可以查看该函数的API page。你知道吗
接口与robust_pca接口几乎相同。你知道吗
让我们创建一个随机示例张量
X
:您将应用鲁棒张量PCA,如下所示:
这给你一个低秩张量
D
,和一个稀疏张量E
,这样D + E = X
(近似)。你知道吗相反,非负塔克会给你一个非负核心和一些非负因素。请注意,现在还必须为分解指定秩。你知道吗
您可以使用这些重建张量并检查重建误差:
您可以查看该函数的API page。你知道吗
相关问题 更多 >
编程相关推荐