tf.keras.losses.CategoricalCrossentropy函数
函数原型
tf.keras.losses.CategoricalCrossentropy(
from_logits=False,
label_smoothing=0.0,
axis=-1,
reduction=losses_utils.ReductionV2.AUTO,
name='categorical_crossentropy'
)
函数说明
CategoricalCrossentropy函数用于计算多分类问题的交叉熵。使用的公式如下:
参数from_logtis默认为False, 表示输出的logits需要经过激活函数的处理。如果为True,则不需要经过激活函数的处理。
函数使用
CategoricalCrossentropy函数用于y_true的标签为one_hot编码的形式,如果y_true的标签为整数类型的数,则需要用到另外一个SparseCategoricalCrossentropy函数。
# y_true为one_hot编码形式,[0, 0, 1]对应类型2,[0, 1, 0]对应类型1,[1, 0, 0]对应类型0
# y_pred为各个类型对应的概率,比如[0.5, 0.3, 0.2]表示对应类型1的概率为0.5,对应类型2的概率为0.3
>>> y_true = [[0, 0, 1], [0, 1, 0], [0, 1, 0]]
>>> y_pred = [[0.5, 0.3, 0.2], [0.3, 0.6, 0.1], [0.4, 0.4, 0.2]]
>>> loss = tf.keras.losses.CategoricalCrossentropy()
>>> loss_calc = loss(y_true, y_pred)
>>> loss_calc
<tf.Tensor: shape=(), dtype=float32, numpy=1.0121847>
# 对比
# y_true为整数标签形式
>>> y_true = [2, 1, 1]
>>> y_pred = [[0.5, 0.3, 0.2], [0.3, 0.6, 0.1], [0.4, 0.4, 0.2]]
>>> loss = tf.keras.losses.SparseCategoricalCrossentropy()
>>> loss_calc = loss(y_true, y_pred)
>>> loss_calc
<tf.Tensor: shape=(), dtype=float32, numpy=1.0121847>
# y_pred为没有经过激活函数处理的logits
>>> y_true = [[0, 0, 1], [0, 1, 0], [0, 1, 0]]
>>> y_pred = [[-13.0, 23.0, 6.0], [3.0, 5.0, -22.0], [3.0, 4.0, 9.0]]
>>> loss = tf.keras.losses.CategoricalCrossentropy()
>>> loss_calc = loss(y_true, y_pred)
>>> loss_calc
<tf.Tensor: shape=(), dtype=float32, numpy=6.1617393>
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgaajhh
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13