首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >tf.losses

tf.losses

作者头像
狼啸风云
修改2022-09-03 22:02:33
修改2022-09-03 22:02:33
1.4K0
举报

一、概述

1、类

2、函数

二、重要的函数

1、tf.losses.huber_loss

在训练程序中添加一个Huber损失项。

代码语言:javascript
复制
tf.losses.huber_loss(
    labels,
    predictions,
    weights=1.0,
    delta=1.0,
    scope=None,
    loss_collection=tf.GraphKeys.LOSSES,
    reduction=Reduction.SUM_BY_NONZERO_WEIGHTS
)

对于error=labels-prediction中的每个值x,计算如下:

代码语言:javascript
复制
  0.5 * x^2                  if |x| <= d
  0.5 * d^2 + d * (|x| - d)  if |x| > d

其中d是delta。

参见:https://en.wikipedia.org/wiki/Huber_loss

权重作为损失的系数。如果提供一个标量,则损失只需按给定值进行缩放。如果权值是一个大小张量[batch_size],则通过权值向量中对应的元素重新计算批次中每个样本的总损失。如果权重的形状与预测的形状相匹配,那么预测的每个可度量元素的损失将按相应的权重值进行缩放。

参数:

  • labels:地面真相输出张量,与“预测”维度相同。
  • predictions:预测输出。
  • weights:可选张量,其秩要么为0,要么与标签的秩相同,并且必须对标签(即,所有尺寸必须为1,或与对应的损耗尺寸相同)。
  • delta:浮点数,huber损失函数从二次函数变为线性函数的点。
  • scope:计算损失时执行的操作的范围。
  • loss_collection:将损失添加到其中的集合。
  • reduction:适用于损失的减额类型。

返回值:

  • 加权损失浮点张量。如果还原为零,则其形状与标签相同;否则,它就是标量。

可能产生的异常:

  • ValueError: If the shape of predictions doesn't match that of labels or if the shape of weights is invalid. Also if labels or predictions is None.

Eager Compatibility

  • 当急切地执行时,会忽略loss_collection参数。考虑持有收益值或通过tf.keras.模型收集损失。

2、tf.losses.add_loss

将外部定义的损失添加到损失集合中。

代码语言:javascript
复制
tf.losses.add_loss(
    loss,
    loss_collection=tf.GraphKeys.LOSSES
)

参数:

  • loss:损耗张量。
  • loss_collection:将损失添加到其中的可选集合。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019年09月03日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、概述
    • 1、类
    • 2、函数
  • 二、重要的函数
    • 1、tf.losses.huber_loss
    • 2、tf.losses.add_loss
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档