.. _cn_api_fluid_layers_unstack:

unstack
-------------------------------

.. py:function:: paddle.fluid.layers.unstack(x, axis=0, num=None)

:alias_main: paddle.unstack
:alias: paddle.unstack,paddle.tensor.unstack,paddle.tensor.manipulation.unstack
:old_api: paddle.fluid.layers.unstack



该OP将单个dim为 ``D`` 的Tensor沿 ``axis`` 轴unpack为 ``num`` 个dim为 ``(D-1)`` 的Tensor

参数:
      - **x** (Variable) – 输入x为 ``dim > 0`` 的Tensor，
      支持的数据类型: float32，float64，int32，int64。

      - **axis** (int | 可选) – 输入Tensor进行unpack运算所在的轴，axis的范围为：``[-D, D)`` ，
      如果 ``axis < 0`` ，则 :math:`axis = axis + dim(x)`，axis的默认值为0。

      - **num** (int | 可选) - axis轴的长度，一般无需设置，默认值为 ``None`` 。

返回: 长度为num的Tensor列表, 数据类型与输入Tensor相同，dim为 ``(D-1)``。

返回类型: list(Variable)

抛出异常：
      - :code:`ValueError`：``x.shape[axis]`` <= 0 或 ``axis`` 不在[-D, D)范围内

**代码示例**：

.. code-block:: python

    import paddle.fluid as fluid
    x = fluid.layers.data(name='x', shape=[2, 3, 5], dtype='float32')  #创建一个shape=[2, 3, 5]的Tensor
    y = fluid.layers.unstack(x, axis=1)  #沿着第1轴进行unpack, unpack后为3个shape=[2，5]的Tensor







