logits笔记

好记性不如烂笔头!

一、什么是logits?

logits:未归一化的概率,即各个特征的加权之和。logits经过sigmoid或softmax函数变为归一化的概率值。

logits笔记_第1张图片

logits = log(p/(1-p)) 

p = 1 / (1 + e^(-logits))

二、在keras中的运用?(假定标签y为categorical类型)

先在compile中设置loss为keras.losses.categorical_crossentropy(y_true, y_pred),然后调用tf的categorical_crossentropy。

logits笔记_第2张图片

1、判断preds本身的shape长度,用以校验axis

2、一般model最后一层是softmax,则输出的预测值preds已经是归一化(非logits值!),满足not from_logits条件,进入步骤3,否则直接调用else内的语句,结束。

3、再次缩放softmax函数的归一化值(线性变换,保证单个sample的probas之和为1),同时保持shape不变

4、使用tf.clip_by_value函数限定preds的输出范围,并调用tf.reduce_sum(target*tf.log(preds), -1)求解交叉熵。

 

-- over --

你可能感兴趣的:(tensorflow)