赞
踩
TensorLy 是一个 Python 库,旨在使张量学习变得简单易用。它允许轻松执行张量分解、张量学习和张量代数。其后端系统允许使用 NumPy、PyTorch、JAX、MXNet、TensorFlow 或 CuPy 无缝执行计算,并在 CPU 或 GPU 上大规模运行方法。
conda install -c tensorly tensorly # 安装tensorly库
import tensorly as tl import tensorly.decomposition as td import tensorly.random tl.set_backend('pytorch') # Or 'mxnet', 'numpy', 'tensorflow', 'cupy' or 'jax' # 设置后端可以更改后端以使用不同的框架执行计算。默认情况下,后端是 NumPy,但您也可以 # 使用 PyTorch、TensorFlow、MXNet、JAX 或 CuPy(需要先安装它们)执行计算。例如,将 # 后端设置为 PyTorch 后,所有计算都由 PyTorch 完成,并且可以在 GPU 上创建张量: tensor = tl.tensor(np.random.randint(1, 10, size=(4, 4, 4))), device='cuda:0') type(tensor) # torch.Tensor mode1_m = tl.unfold(tensor, mode=1) # 模1, 2, 3矩阵化 tensor = tl.fold(mode1_m, mode=1, shape=tensor.shape) # 将模1矩阵mode1_m折叠回张量 [weight, factor_matrix] = tl.decomposition.parafac(tensor, 2) # 将张量分解 # 其中weight为秩一张量相加的权重因子,factor_matrix for i in range(len(factor)): print("factor matrix-{} : \n{}".format(i+1, factor_matrix[0])) # 输出因子矩阵 # 由CP分解得到的权重和因子矩阵恢复张量 recovery_tensor = tl.cp_to_tensor([weight, factor_matrix])[0] [weight, factor_matrix], errors = tl.decomposition.parafac(tensor, 10, n_iter_max=100, return_errors=True) # n_iter_max表示最大迭代次数;return_errors表示是否要返回归一化误差; tensor = tl.cp_to_tensor([weight, factor_matrix]) print(tensor[0]) for i in range(len(errors)): print("iteration {} : 错误率 : {}%".format(i+1, errors[i]*100))
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。