maxframe.tensor.diag#
- maxframe.tensor.diag(v, k=0, sparse=None, gpu=None, chunk_size=None)[源代码]#
提取对角线或构造对角线张量。
如果你使用此函数提取对角线并希望写入结果张量,请参阅
mt.diagonal的更详细文档- 参数:
v (array_like) -- 如果 v 是一个二维张量,则返回其第 k 条对角线。如果 v 是一维张量,则返回一个以 v 作为第 k 条对角线的二维张量。
k (int, optional) -- 所考虑的对角线。默认值为 0。使用 k>0 表示主对角线上方的对角线,使用 k<0 表示主对角线下方的对角线。
sparse (bool, optional) -- 如果为 True 则创建稀疏张量,默认为 False
gpu (bool, optional) -- 如果为 True 则在 GPU 上分配张量,默认为 False
chunk_size (int or tuple of int or tuple of ints, optional) -- 每个维度上期望的块大小
- 返回:
out -- 提取的对角线或构造的对角线张量。
- 返回类型:
Tensor
示例
>>> import maxframe.tensor as mt
>>> x = mt.arange(9).reshape((3,3)) >>> x.execute() array([[0, 1, 2], [3, 4, 5], [6, 7, 8]])
>>> mt.diag(x).execute() array([0, 4, 8]) >>> mt.diag(x, k=1).execute() array([1, 5]) >>> mt.diag(x, k=-1).execute() array([3, 7])
>>> mt.diag(mt.diag(x)).execute() array([[0, 0, 0], [0, 4, 0], [0, 0, 8]])