softmax损失函数代码实现
时间: 2024-06-01 19:07:15 浏览: 145
python softmax函数
softmax损失函数是一种用于多分类问题的损失函数,它可以将多个类别的输出概率归一化并计算交叉熵损失。在代码实现中,我们需要对每个样本的输出概率进行归一化,并计算它们与对应标签的交叉熵损失。
以下是softmax损失函数的代码实现示例:
```python
import numpy as np
def softmax_loss(scores, y):
# scores为模型对每个类别的输出概率
# y为对应的标签
num_samples = scores.shape
exp_scores = np.exp(scores)
probs = exp_scores / np.sum(exp_scores, axis=1, keepdims=True)
loss = -np.log(probs[range(num_samples), y])
data_loss = np.sum(loss) / num_samples
return data_loss
# 示例
scores = np.array([[1.2, 0.9, 0.3], [0.8, 1.5, 0.6], [0.2, 0.4, 1.1]])
y = np.array([0, 1, 2])
loss = softmax_loss(scores, y)
print(loss)
```
阅读全文