当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python mxnet.symbol.MakeLoss用法及代码示例


用法:

mxnet.symbol.MakeLoss(data=None, grad_scale=_Null, valid_thresh=_Null, normalization=_Null, name=None, attr=None, out=None, **kwargs)

参数

  • data(Symbol) - 输入数组。
  • grad_scale(float, optional, default=1) - 梯度尺度作为一元和二元运算符的补充
  • valid_thresh(float, optional, default=0) - 当数组中的每个元素小于时,将其裁剪为 0valid_thresh.这用于normalization被设定为'valid'.
  • normalization({'batch', 'null', 'valid'},optional, default='null') - 如果设置为 null,则输出梯度将不会被归一化。如果将其设置为批处理,则输出梯度将除以批处理大小。如果设置为有效,则输出梯度将除以有效输入元素的数量。
  • name(string, optional.) - 结果符号的名称。

返回

结果符号。

返回类型

Symbol

在网络构建中制作自己的损失函数。

该运算符接受自定义损失函数符号作为终端损失,并且该符号应该是没有后向依赖的运算符。该函数的输出是相对于输入数据的损失梯度。

例如,如果您正在制作交叉熵损失函数。假设out是预测输出,label是真实标签,那么交叉熵可以定义为:

cross_entropy = label * log(out) + (1 - label) * log(1 - out)
loss = MakeLoss(cross_entropy)

当我们创建自己的损失函数或想要组合多个损失函数时,我们将需要使用MakeLoss。此外,我们可能希望阻止某些变量的梯度进行反向传播。在 BlockGradstop_gradient 中查看更多详细信息。

此外,我们可以通过设置 grad_scale 来给损失一个比例,这样损失的梯度会在反向传播中重新调整。

注意

此运算符应用作符号而不是 NDArray。

相关用法


注:本文由纯净天空筛选整理自apache.org大神的英文原创作品 mxnet.symbol.MakeLoss。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。