tf.nn.softmax_cross_entropy_with_logits(
_sentinel=None,
labels=None,
logits=None,
dim=-1,
name=None
)
paddle.fluid.layers.softmax_with_cross_entropy(
logits,
label,
soft_label=False,
ignore_index=-100,
numeric_stable_mode=False,
return_softmax=False,
axis=-1
)
TensorFlow:labels
只能使用软标签,其shape
为[batch, num_classes]
,表示样本在各个类别上的概率分布;
PaddlePaddle:通过设置soft_label
,可以选择软标签或者硬标签。当使用硬标签时,label
的shape
为[batch, 1]
,dtype
为int64
;当使用软标签时,其shape
为[batch, num_classes]
,dtype
为int64
。
TensorFlow:返回batch
中各个样本的log loss;
PaddlePaddle:当return_softmax
为False
时,返回batch
中各个样本的log loss;当return_softmax
为True
时,再额外返回logtis
的归一化值。
# logits的shape为[32, 10], dtype为float32; label的shape为[32, 1], dtype为int64
# loss的shape为[32, 1], dtype为float32
loss = fluid.layers.softmax_with_cross_entropy(logits, label, soft_label=False)