神经网络实现手写数字识别
时间: 2024-02-05 12:03:53 浏览: 74
入门神经网络 PyTorch 手写数字识别
神经网络可以用于实现手写数字识别。下面是一个简单的示例:
```python
import numpy as np
# 定义神经网络的参数
input_size = 784
hidden_size1 = 50
hidden_size2 = 100
output_size = 10
# 初始化权重和偏置
W1 = np.random.randn(input_size, hidden_size1)
b1 = np.zeros(hidden_size1)
W2 = np.random.randn(hidden_size1, hidden_size2)
b2 = np.zeros(hidden_size2)
W3 = np.random.randn(hidden_size2, output_size)
b3 = np.zeros(output_size)
# 定义前向传播函数
def forward(X):
# 第一层隐藏层
z1 = np.dot(X, W1) + b1
a1 = np.tanh(z1)
# 第二层隐藏层
z2 = np.dot(a1, W2) + b2
a2 = np.tanh(z2)
# 输出层
z3 = np.dot(a2, W3) + b3
exp_scores = np.exp(z3)
probs = exp_scores / np.sum(exp_scores, axis=1, keepdims=True)
return np.argmax(probs, axis=1)
# 使用示例数据进行推理处理
X = np.random.randn(10, input_size) # 10个手写数字图像
predicted_labels = forward(X)
print(predicted_labels)
```
这个示例中,我们定义了一个具有两个隐藏层的神经网络,输入层有784个神经元,输出层有10个神经元,分别对应数字0到9的分类。我们使用随机初始化的权重和偏置,并使用tanh作为激活函数。然后,我们使用示例数据进行前向传播,得到预测的标签。
阅读全文