文档反馈

问题文档片段

问题文档片段包含公式时,显示为空格。

提交类型
issue

有点复杂...

找人问问吧。

请选择提交类型

问题类型
规范和低错类

- 规范和低错类:

- 错别字或拼写错误,标点符号使用错误、公式错误或显示异常。

- 链接错误、空单元格、格式错误。

- 英文中包含中文字符。

- 界面和描述不一致,但不影响操作。

- 表述不通顺,但不影响理解。

- 版本号不匹配:如软件包名称、界面版本号。

易用性

- 易用性:

- 关键步骤错误或缺失,无法指导用户完成任务。

- 缺少主要功能描述、关键词解释、必要前提条件、注意事项等。

- 描述内容存在歧义指代不明、上下文矛盾。

- 逻辑不清晰,该分类、分项、分步骤的没有给出。

正确性

- 正确性:

- 技术原理、功能、支持平台、参数类型、异常报错等描述和软件实现不一致。

- 原理图、架构图等存在错误。

- 命令、命令参数等错误。

- 代码片段错误。

- 命令无法完成对应功能。

- 界面错误,无法指导操作。

- 代码样例运行报错、运行结果不符。

风险提示

- 风险提示:

- 对重要数据或系统存在风险的操作,缺少安全提示。

内容合规

- 内容合规:

- 违反法律法规,涉及政治、领土主权等敏感词。

- 内容侵权。

请选择问题类型

问题描述

点击输入详细问题描述,以帮助我们快速定位问题。

mindspore.ops.lu_unpack

mindspore.ops.lu_unpack(LU_data, LU_pivots, unpack_data=True, unpack_pivots=True)[源代码]

LU_dataLU_pivots 还原为P、L、U矩阵,其中P为置换矩阵,L为下三角矩阵,U为上三角矩阵。通常情况下, LU_dataLU_pivots 是矩阵通过LU分解生成的。

参数:
  • LU_data (Tensor) - 打包的LU分解数据,shape为 (,M,N) ,其中 为batch维度, LU_data 的维度必须等于或大于2。

  • LU_pivots (Tensor) - 打包的LU分枢轴,shape为 (,min(M,N)) ,其中 为batch维度,其中 * 是batch 维度,数据类型为int8、uint8、int16、int32或int64。

  • unpack_data (bool,可选) - 是否解压缩 LU_data 。如果为False,则返回的L和U为 None 。默认值: True

  • unpack_pivots (bool,可选) - 是否将 LU_pivots 解压缩为置换矩阵P。如果为 False ,则返回的P为 None 。默认值: True

返回:
  • pivots (Tensor) - LU分解的置换矩阵,shape为 (,M,M) ,数据类型与 LU_data 相同。

  • L (Tensor) - LU分解的L矩阵,数据类型与 LU_data 相同。

  • U (Tensor) - LU分解的U矩阵,数据类型与 LU_data 相同。

异常:
  • TypeError - 若 LU_data 的数据类型不是int、uint或float。

  • TypeError - 若 LU_pivots 的数据类型不是以下之一:int8、uint8、int16、int32、int64。

  • ValueError - 若 LU_data 的维度小于2。

  • ValueError - 若 LU_pivots 的维度小于1。

  • ValueError - 若 LU_pivots 最后一维的大小不等于 LU_data 的最后两维的较小者。

  • ValueError - 若 LU_dataLU_pivots 的batch维度不匹配。

  • ValueError - 在CPU平台上,若 LU_pivots 的值不在 [1,LU_data.shape[2]) 范围内。

  • RuntimeError - 在Ascend平台上,若 LU_pivots 的值不在 [1,LU_data.shape[2]) 范围内。

支持平台:

GPU CPU

样例:

>>> import numpy as np
>>> from mindspore import Tensor, ops
>>> from mindspore import dtype as mstype
>>> LU_data = Tensor(np.array([[[-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]]]), mstype.float64)
>>> LU_pivots = Tensor(np.array([[1, 3, 3],
...                              [2, 3, 3]]), mstype.int32)
>>> pivots, L, U = 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]]]