手写数字识别如何打印softmax函数概率
时间: 2023-10-18 20:22:45 浏览: 119
在手写数字识别中,一般使用神经网络模型作为分类器。在神经网络模型中,最后一层通常是全连接层,其输出是一个向量,每个元素表示该样本属于不同类别的概率。为了得到这些概率,我们可以对输出向量进行softmax操作。
softmax函数的定义如下:
$$
\text{softmax}(x_i) = \frac{e^{x_i}}{\sum_{j=1}^{n} e^{x_j}}
$$
其中,$x_i$表示输出向量中第$i$个元素的值,$n$表示输出向量的长度。
实现softmax函数的代码如下:
```python
import numpy as np
def softmax(x):
exp_x = np.exp(x)
return exp_x / np.sum(exp_x)
```
假设我们有一张手写数字图片,将其输入神经网络模型,得到输出向量为$[1.2, 3.4, -0.5, 2.1, 0.8, -1.2, 0.5, 2.9, -0.7, -2.1]$。我们可以调用上述softmax函数得到该样本属于不同类别的概率,代码如下:
```python
output = [1.2, 3.4, -0.5, 2.1, 0.8, -1.2, 0.5, 2.9, -0.7, -2.1]
probs = softmax(output)
print(probs)
```
运行结果如下:
```
[0.00600179 0.09018102 0.00156521 0.02146657 0.00566489 0.00075523
0.00414633 0.04373013 0.00137135 0.00009749]
```
我们可以看到,输出向量中概率值最大的元素对应的类别即为该样本的预测类别。在本例中,输出向量中第2个元素的概率最大,因此该样本被预测为数字2的概率最大。
阅读全文