mindspore.nn.WithEvalCell

class mindspore.nn.WithEvalCell(network, loss_fn, add_cast_fp32=False)[源代码]

封装前向网络和损失函数。 返回用于计算评估指标的损失函数值、前向输出和标签。

参数:
  • network (Cell) - 前向网络。

  • loss_fn (Cell) - 损失函数。

  • add_cast_fp32 (bool) - 是否将数据类型调整为float32。默认值: False

输入:
  • data (Tensor) - shape为 \((N, \ldots)\) 的Tensor。

  • label (Tensor) - shape为 \((N, \ldots)\) 的Tensor。

输出:

Tuple(Tensor),包括标量损失函数、shape为 \((N, \ldots)\) 的网络输出和shape为 \((N, \ldots)\) 的标签。

异常:
  • TypeError - add_cast_fp32 不是bool。

支持平台:

Ascend GPU CPU

样例:

>>> import mindspore.nn as nn
>>> # Define a forward network without loss function, taking LeNet5 as an example.
>>> # Refer to https://gitee.com/mindspore/docs/blob/r2.4.1/docs/mindspore/code/lenet.py
>>> net = LeNet5()
>>> loss_fn = nn.SoftmaxCrossEntropyWithLogits()
>>> eval_net = nn.WithEvalCell(net, loss_fn)