使用 PyTorch 实现 tf 中的 tf.keras.losses.categorical_crossentropy,或者 K.categorical_crossentropy
import tensorflow as tf
y_true = [[[0.,0.9]]]
y_pred = [[[0.4,0.6]]]
loss = tf.keras.losses.categorical_crossentropy(y_true, y_pred)
loss.numpy()
print('tf.keras.losses.categorical_crossentropy', loss)
loss = -(0*tf.math.log(0.4) + 0.9*tf.math.log(0.6))
print('tf.math.log', loss)
import torch
loss = -(0*torch.log(torch.tensor(0.4)) + 0.9*torch.log(torch.tensor(0.6)))
print('torch.loss', loss)
def pt_categorical_crossentropy(pred, label):
"""
使用pytorch 来实现 categorical_crossentropy
"""
# print(-label * torch.log(pred))
return torch.sum(-label * torch.log(pred))
loss = pt_categorical_crossentropy(torch.tensor(y_pred), torch.tensor(y_true))
print(loss)
这篇博客展示了如何在 PyTorch 中复现 TensorFlow 中的 `tf.keras.losses.categorical_crossentropy` 损失函数。通过具体的代码示例,作者比较了 TensorFlow 和 PyTorch 两种实现方式的等价性,并定义了一个自定义的 PyTorch 函数 `pt_categorical_crossentropy` 来计算分类交叉熵损失。

7031

被折叠的 条评论
为什么被折叠?



