sciai.architecture.MLP
======================

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


.. py:class:: sciai.architecture.MLP(layers, weight_init='xavier_trunc_normal', bias_init='zeros', activation='tanh', last_activation=None)

    多层感知器。最后一层没有激活函数。

    `layers` 中的第一个值应等于输入Tensor中的最后一个轴的size `in_channels` 。

    参数:
        - **layers** (Union(tuple[int], list[int])) - 每层神经元数量的列表,例如:[2, 10, 10, 1]。
        - **weight_init** (Union[str, Initializer]) - `Dense` 权重参数的初始化方法。数据类型与 `x` 相同。
          str的值引用自函数 `initializer` 。默认值:'xavier_trunc_normal'。
        - **bias_init** (Union[str, Initializer]) - `Dense` 偏置参数的初始化方法。数据类型与 `x` 相同。
          str的值引用自函数 `initializer` 。默认值:'zeros'。
        - **activation** (Union[str, Cell, Primitive, FunctionType, None]) - 应用于全连接层输出的激活函数,不包括最后一层。可指定激活函数名,
          如 'relu',或具体激活函数,如 `nn.ReLU()` 。默认值:'tanh'。
        - **last_activation** (Union[str, Cell, Primitive, FunctionType, None]) - 应用于全连接层最后一层输出的激活函数。类型规则与 `activation`
          一致。默认值:None。

    输入:
        - **x** (Tensor) - shape为 :math:`(*, in\_channels)` 的Tensor。

    输出:
        Union(Tensor, tuple[Tensor]),网络的输出。

    异常:
        - **TypeError** - `layers` 不是 list、tuple, 或其中任何元素不是整数。
        - **TypeError** - `activation` 不是 str, Cell, Primitive, FunctionType或者None。
        - **TypeError** - `last_activation` 不是 str, Cell, Primitive, FunctionType或者None。
        - **ValueError** - `weight_init` 不是 str、Initializer。
        - **ValueError** - `bias_init` 不是 str、Initializer。


    .. py:method:: sciai.architecture.MLP.biases()

        所有 Dense 层的偏置参数列表。

        返回:
            list[Parameter],所有偏置参数。


    .. py:method:: sciai.architecture.MLP.weights()

        所有 Dense 层的权重参数列表。
    
        返回:
            list[Parameter],所有权重参数。