交叉熵损失python
时间: 2023-07-29 09:09:54 浏览: 97
交叉熵损失(Cross-Entropy Loss)是一种常用的损失函数,常用于分类问题中。在Python中,可以使用多种库来计算交叉熵损失,比如NumPy、TensorFlow和PyTorch等。下面是使用NumPy计算交叉熵损失的示例代码:
```python
import numpy as np
def cross_entropy_loss(y_true, y_pred):
epsilon = 1e-12 # 避免计算log(0)的情况
y_pred = np.clip(y_pred, epsilon, 1.0 - epsilon) # 将预测值限制在一个很小的范围内,避免取log时出现错误
loss = -np.sum(y_true * np.log(y_pred)) # 计算交叉熵损失
return loss
# 示例数据
y_true = np.array([0, 1, 0]) # 真实标签
y_pred = np.array([0.2, 0.7, 0.1]) # 预测概率
# 计算交叉熵损失
loss = cross_entropy_loss(y_true, y_pred)
print("交叉熵损失:", loss)
```
上述代码中,`y_true`表示真实标签,`y_pred`表示预测概率。`cross_entropy_loss`函数通过将预测概率限制在一个很小的范围内,避免取log时出现错误。然后,使用`np.sum`计算交叉熵损失。
以上是使用NumPy计算交叉熵损失的示例,如果你使用其他库,可能会有稍微的差别,但基本的原理是相同的。
阅读全文