split_cn.rst 2.3 KB
Newer Older
H
Hao Wang 已提交
1 2 3 4 5 6 7
.. _cn_api_fluid_layers_split:

split
-------------------------------

.. py:function:: paddle.fluid.layers.split(input,num_or_sections,dim=-1,name=None)

8
该OP将输入Tensor分割成多个子Tensor。
H
Hao Wang 已提交
9 10

参数:
11 12 13
    - **input** (Variable) - 输入变量,数据类型为float32,float64,int32,int64的多维Tensor或者LoDTensor。
    - **num_or_sections** (int|list|tuple) - 如果 ``num_or_sections`` 是一个整数,则表示Tensor平均划分为相同大小子Tensor的数量。如果 ``num_or_sections`` 是一个list或tuple,那么它的长度代表子Tensor的数量,它的元素可以是整数或者形状为[1]的Tensor,依次代表子Tensor需要分割成的维度的大小。list或tuple的长度不能超过输入Tensor待分割的维度的大小。至多有一个元素值为-1,-1表示该值是由 ``input`` 待分割的维度值和 ``num_or_sections`` 的剩余元素推断出来的。
    - **dim** (int|Variable,可选) - 整数或者形状为[1]的Tensor,数据类型为int32或int64。表示需要分割的维度。如果dim < 0,则划分的维度为rank(input) + dim。默认值为-1。
P
Pei Yang 已提交
14
    - **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name` ,一般无需设置,默认值为None。
H
Hao Wang 已提交
15

16
返回:分割后的Tensor列表。
H
Hao Wang 已提交
17

18
返回类型:列表(Variable(Tensor|LoDTensor)),数据类型为int32,int64,float32,float64。
H
Hao Wang 已提交
19

20 21 22 23
抛出异常:
    - :code:`TypeError`:``num_or_sections`` 不是int、list 或 tuple。
    - :code:`TypeError`:``dim`` 不是 int 或 Variable。

H
Hao Wang 已提交
24 25 26 27 28 29
**代码示例**:

.. code-block:: python

    import paddle.fluid as fluid

30 31
    # 输入是维度为[3, 9, 5]的Tensor:
    input = fluid.data(
H
Hao Wang 已提交
32 33
         name="input", shape=[3, 9, 5], dtype="float32")

34
    # 传入num_or_sections为一个整数
35 36 37 38
    x0, x1, x2 = fluid.layers.split(input, num_or_sections=3, dim=1)
    x0.shape  # [3, 3, 5]
    x1.shape  # [3, 3, 5]
    x2.shape  # [3, 3, 5]
39 40

    # 传入num_or_sections为一个整数列表
41 42 43 44 45 46 47 48 49 50
    x0, x1, x2 = fluid.layers.split(input, num_or_sections=[2, 3, 4], dim=1)
    x0.shape  # [3, 2, 5]
    x1.shape  # [3, 3, 5]
    x2.shape  # [3, 4, 5]

    # 传入num_or_sections为一个整数列表,其中有一个元素为-1
    x0, x1, x2 = fluid.layers.split(input, num_or_sections=[2, 3, -1], dim=1)
    x0.shape  # [3, 2, 5]
    x1.shape  # [3, 3, 5]
    x2.shape  # [3, 4, 5]
H
Hao Wang 已提交
51 52 53 54 55 56 57 58