center_loss_cn.rst 1.4 KB
Newer Older
Z
zq19 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
.. _cn_api_fluid_layers_center_loss:

center_loss
-------------------------------

.. py:function:: paddle.fluid.layers.center_loss(input, label, num_classes, alpha, param_attr, update_center=True)

center_loss层
该层接收一个来自于最后一个隐藏层的输出和目标标签作为输入,返回损失值。
对于输入,\(X\)和标签\(Y\),计算公式为:

    .. math::

        out = \frac{1}{2}(X - Y)^2



参数:

    - **input** (Variable) - 形为[N x M]的2维张量
    - **label** (Variable) - groud truth,一个形为[N x 1]的2维张量,N表示batch size
    - **num_class** (int) - 表示类别的数
    - **alpha** (float|Variable) - 学习率
    - **param_attr** (ParamAttr) - 参数初始化
    - **update_center** (bool) - 是否更新损失值

返回:形为[N x 1]的2维张量。

返回类型:Variable

**代码示例**:

.. code-block:: python

        import paddle.fluid as fluid
        
        input = fluid.layers.data(name='x',shape=[20,30],dtype='float32')
        label = fluid.layers.data(name='y',shape=[20,1],dtype='int64')
        num_classes = 1000
        alpha = 0.01
        param_attr = fluid.initializer.Xavier(uniform=False)
        center_loss=fluid.layers.center_loss(input=input,
            label=label,
            num_classes=1000,
            alpha=alpha,
            param_attr=fluid.initializer.Xavier(uniform=False),
            update_center=True)