使用张量的非负张量分解示例



我对张量张量库都很陌生.我在jeankossaifi上遇到了张量分解的最佳示例之一,但我需要一个张量函数non_negative_tucker((的例子,通过扩展上面的链接(对于Olivetti数据集(上的示例进行张量分解。

界面与robust_pca界面几乎

相同。

让我们创建一个随机示例张量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(近似(。

相反,非负的塔克会给你一个非负的核心和一些非负因素。请注意,现在您还必须为分解指定一个等级。

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 页面。

相关内容

  • 没有找到相关文章

最新更新