From 295e87e428d2abe8412be384f089150efbe25068 Mon Sep 17 00:00:00 2001 From: lijianshe02 <48898730+lijianshe02@users.noreply.github.com> Date: Wed, 30 Sep 2020 10:53:13 +0800 Subject: [PATCH] fix dice_loss, log_loss doc and example code test=document_fix (#27702) * update 2.0 API for dice_loss and log_loss test=document_fix --- python/paddle/fluid/layers/nn.py | 38 ++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/python/paddle/fluid/layers/nn.py b/python/paddle/fluid/layers/nn.py index 3f236f3e71f..bec47d9227e 100755 --- a/python/paddle/fluid/layers/nn.py +++ b/python/paddle/fluid/layers/nn.py @@ -7061,10 +7061,10 @@ def dice_loss(input, label, epsilon=0.00001, name=None): Parameters: - input (Variable): Tensor, rank>=2, shape is :math:`[N_1, N_2, ..., N_D]`, where :math:`N_1` is + input (Tensor): Tensor, rank>=2, shape is :math:`[N_1, N_2, ..., N_D]`, where :math:`N_1` is the batch_size, :math:`N_D` is 1. It is usually the output predictions of sigmoid activation. The data type can be float32 or float64. - label (Variable): Tensor, the groud truth with the same rank as input, shape is :math:`[N_1, N_2, ..., N_D]`. + label (Tensor): Tensor, the groud truth with the same rank as input, shape is :math:`[N_1, N_2, ..., N_D]`. where :math:`N_1` is the batch_size, :math:`N_D` is 1. The data type can be float32 or float64. epsilon (float): The epsilon will be added to the numerator and denominator. If both input and label are empty, it makes sure dice is 1. @@ -7074,18 +7074,19 @@ def dice_loss(input, label, epsilon=0.00001, name=None): For more information, please refer to :ref:`api_guide_Name` Returns: - The dice loss with shape [1], data type is the same as `input` . - Return Type: - Varaible + Tensor, which shape is [1], data type is the same as `input` . Example: .. code-block:: python - import paddle.fluid as fluid - x = fluid.data(name='data', shape = [3, 224, 224, 1], dtype='float32') - label = fluid.data(name='label', shape=[3, 224, 224, 1], dtype='float32') - predictions = fluid.layers.sigmoid(x) - loss = fluid.layers.dice_loss(input=predictions, label=label) + import paddle + import paddle.nn.functional as F + + paddle.disable_static() + x = paddle.randn((3,224,224,2)) + label = paddle.randint(high=2, shape=(3,224,224,1)) + predictions = F.softmax(x) + loss = F.dice_loss(input=predictions, label=label) """ label = one_hot(label, depth=input.shape[-1]) reduce_dim = list(range(1, len(input.shape))) @@ -13098,10 +13099,10 @@ def log_loss(input, label, epsilon=1e-4, name=None): - (1 - label) * \\log{(1 - input + \\epsilon)} Args: - input (Variable|list): A 2-D tensor with shape [N x 1], where N is the + input (Tensor|list): A 2-D tensor with shape [N x 1], where N is the batch size. This input is a probability computed by the previous operator. Data type float32. - label (Variable|list): The ground truth which is a 2-D tensor with + label (Tensor|list): The ground truth which is a 2-D tensor with shape [N x 1], where N is the batch size. Data type float32. epsilon (float, optional): A small number for numerical stability. Default 1e-4. @@ -13109,15 +13110,18 @@ def log_loss(input, label, epsilon=1e-4, name=None): :ref:`api_guide_Name` . Usually name is no need to set and None by default. Returns: - Variable: A 2-D tensor with shape [N x 1], the negative log loss. + Tensor, which shape is [N x 1], data type is float32. Examples: .. code-block:: python - import paddle.fluid as fluid - label = fluid.data(name='label', shape=[None, 1], dtype='float32') - prob = fluid.data(name='prob', shape=[None, 1], dtype='float32') - cost = fluid.layers.log_loss(input=prob, label=label) + import paddle + import paddle.nn.functional as F + + paddle.disable_static() + label = paddle.randn((10,1)) + prob = paddle.randn((10,1)) + cost = F.log_loss(input=prob, label=label) """ helper = LayerHelper('log_loss', **locals()) check_variable_and_dtype(input, 'input', ['float32'], 'log_loss') -- GitLab