mindspore.parallel.Layout
============================================================================

.. image:: https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source.svg
    :target: https://gitee.com/mindspore/mindspore/blob/master/docs/api/api_python/parallel/mindspore.parallel.Layout.rst
    :alt: 查看源文件


.. py:class:: mindspore.parallel.Layout(device_matrix, alias_name, rank_list=None)

    Layout描述了详细的切分信息。

    详情请参考文档 `高阶算子级并行 <https://www.mindspore.cn/docs/zh-CN/master/model_train/parallel/operator_parallel.html>`_。

    .. note::
        - 仅在半自动并行或自动并行模式下有效。
        - `device_matrix` 的累乘结果必须等于一个 `pipeline stage` 中的设备数。
        - 当 `Layout` 来构建切分策略时,每个别名只允许用于一次张量的切分。

    参数:
        - **device_matrix** (tuple) - 描述设备排列的形状,其元素类型为 int 。
        - **alias_name** (tuple) - `device_matrix` 的每个轴的别名,其元素类型为字符串。使用 `interleaved_parallel` 作为别名时,会在其对应的切分维度将该算子在单卡内拆分为多个副本。
        - **rank_list** (list,可选) - 数据根据 `rank_list` 排布在设备上。默认 ``None``。

    异常:
        - **TypeError** - `device_matrix` 不是tuple类型。
        - **TypeError** - `alias_name` 不是tuple类型。
        - **TypeError** - `rank_list` 不是list类型。
        - **ValueError** - `device_matrix` 长度不等于 `alias_name` 长度。
        - **TypeError** - `device_matrix` 的元素不是 int 类型。
        - **TypeError** - `alias_name` 的元素不是 str 类型。
        - **TypeError** - `rank_list` 的元素不是 int 类型。
        - **ValueError** - `alias_name` 的元素是一个空的 str 。
        - **ValueError** - `alias_name` 的元素为 None 。
        - **ValueError** - `alias_name` 包含重复的元素。


    .. py:method:: to_dict()

        将Layout转换为词典。