mindspore.ops.lu_unpack
- mindspore.ops.lu_unpack(LU_data, LU_pivots, unpack_data=True, unpack_pivots=True)[源代码]
将
mindspore.scipy.linalg.lu_factor()
返回的LU分解结果解包为P、L、U矩阵。说明
LU_data shape为
, LU_pivots shape为 , 表示batch数量。
- 参数:
LU_data (Tensor) - 打包的LU分解数据,秩大于等于2。
LU_pivots (Tensor) - 打包的LU分解枢轴。
unpack_data (bool,可选) - 是否解压缩 LU_data 。如果为False,则返回的L和U为
None
。默认True
。unpack_pivots (bool,可选) - 是否将 LU_pivots 解压缩为置换矩阵P。如果为
False
,则返回的P为None
。默认True
。
- 返回:
由tensor组成的tuple。分别为:LU分解的置换矩阵、LU分解的L矩阵、LU分解的U矩阵。
- 支持平台:
GPU
CPU
样例:
>>> import mindspore >>> LU_data = mindspore.tensor([[[-0.3806, -0.4872, 0.5536], ... [-0.1287, 0.6508, -0.2396], ... [ 0.2583, 0.5239, 0.6902]], ... [[ 0.6706, -1.1782, 0.4574], ... [-0.6401, -0.4779, 0.6701], ... [ 0.1015, -0.5363, 0.6165]]]) >>> LU_pivots = mindspore.tensor(([[1, 3, 3], [2, 3, 3]]), mindspore.int32) >>> pivots, L, U = mindspore.ops.lu_unpack(LU_data, LU_pivots) >>> print(pivots) [[[1. 0. 0.] [0. 0. 1.] [0. 1. 0.]] [[0. 0. 1.] [1. 0. 0.] [0. 1. 0.]]] >>> print(L) [[[ 1. 0. 0.] [-0.1287 1. 0.] [ 0.2583 0.5239 1.]] [[ 1.0000 0. 0.] [-0.6401 1. 0.] [ 0.1015 -0.5363 1.]]] >>> print(U) [[[-0.3806 -0.4872 0.5536] [ 0. 0.6508 -0.2396] [ 0. 0. 0.6902]] [[ 0.6706 -1.1782 0.4574] [ 0. -0.4779 0.6701] [ 0. 0. 0.6165]]]