maxframe.tensor.vsplit#

maxframe.tensor.vsplit(a, indices_or_sections)[源代码]#

将一个张量按行(垂直方向)分割成多个子张量。

请参考 split 文档。vsplit 等价于 axis=0`(默认值)的 ``split`,无论张量维度如何,总是沿第一个轴进行分割。

参见

split

将一个张量分割成多个大小相等的子张量。

示例

>>> import maxframe.tensor as mt
>>> x = mt.arange(16.0).reshape(4, 4)
>>> x.execute()
array([[  0.,   1.,   2.,   3.],
       [  4.,   5.,   6.,   7.],
       [  8.,   9.,  10.,  11.],
       [ 12.,  13.,  14.,  15.]])
>>> mt.vsplit(x, 2).execute()
[array([[ 0.,  1.,  2.,  3.],
       [ 4.,  5.,  6.,  7.]]),
 array([[  8.,   9.,  10.,  11.],
       [ 12.,  13.,  14.,  15.]])]
>>> mt.vsplit(x, mt.array([3, 6])).execute()
[array([[  0.,   1.,   2.,   3.],
       [  4.,   5.,   6.,   7.],
       [  8.,   9.,  10.,  11.]]),
 array([[ 12.,  13.,  14.,  15.]]),
 array([], dtype=float64)]

对于更高维度的张量,分割仍然沿第一个轴进行。

>>> x = mt.arange(8.0).reshape(2, 2, 2)
>>> x.execute()
array([[[ 0.,  1.],
        [ 2.,  3.]],
       [[ 4.,  5.],
        [ 6.,  7.]]])
>>> mt.vsplit(x, 2).execute()
[array([[[ 0.,  1.],
        [ 2.,  3.]]]),
 array([[[ 4.,  5.],
        [ 6.,  7.]]])]