MSELoss

paddle.fluid.dygraph.MSELoss(input, label)[源代码]

该OP用于计算预测值和目标值的均方差误差。

对于预测值input和目标值label:

当reduction为’none’时:

MSELoss - 图1

当`reduction`为`‘mean’`时:

MSELoss - 图2

当`reduction`为`‘sum’`时:

MSELoss - 图3

参数

  • input (Variable) - 预测值,维度为

    MSELoss - 图4

    的多维Tensor,其中最后一维D是类别数目。数据类型为float32或float64。

  • label (Variable) - 目标值,维度为

    MSELoss - 图5

    的多维Tensor,其中最后一维D是类别数目。数据类型为float32或float64。

  • reduction (str, 可选) - 约简方式,可以是 ‘none’ | ‘mean’ | ‘sum’。设为’none’时不使用约简,设为’mean’时返回loss的均值,设为’sum’时返回loss的和。

返回

预测值和目标值的均方差

返回类型

变量(Variable)

代码示例

  1. import numpy as np
  2. import paddle
  3. from paddle import fluid
  4. import paddle.fluid.dygraph as dg
  5. mse_loss = fluid.dygraph.MSELoss()
  6. input = fluid.data(name="input", shape=[1])
  7. label = fluid.data(name="label", shape=[1])
  8. place = fluid.CPUPlace()
  9. input_data = np.array([1.5]).astype("float32")
  10. label_data = np.array([1.7]).astype("float32")
  11. # declarative mode
  12. output = mse_loss(input,label)
  13. exe = fluid.Executor(place)
  14. exe.run(fluid.default_startup_program())
  15. output_data = exe.run(
  16. fluid.default_main_program(),
  17. feed={"input":input_data, "label":label_data},
  18. fetch_list=[output],
  19. return_numpy=True)
  20. print(output_data)
  21. # [array([0.04000002], dtype=float32)]
  22. # imperative mode
  23. with dg.guard(place) as g:
  24. input = dg.to_variable(input_data)
  25. label = dg.to_variable(label_data)
  26. output = mse_loss(input, label)
  27. print(output.numpy())
  28. # [0.04000002]