# 一、概述
基于Python.Numpy实现卷积神经网络,识别手写数字
# 二、文件夹结构功能
### 1.文件夹
- data:mnist手写数字数据集,包含训练、测试数据
- parameters:神经网络训练结果保存路径
- figure:该文档中的图片
### 2.文件
- activate.py:激活函数层,包含Sigmoid,SoftMax
- bp.py:BP神经网络层,全连接层
- BPmain.py:BP神经网络测试文件
- CNNmain.py:卷积神经网络测试文件
- conv.py:卷积层
- load_mnist.py:mnist数据加载
- module.py:网络层、结构接口定义
- pool.py:池化层
- saveandread.py:神经网络参数保存加载
# 三、项目运行
## 1.BP神经网络测试
### 1.1测试目标
- 使用BP神经网络对数据进行分类
### 1.2测试方式
- 运行BPmain.py文件
### 1.3测试结果
- 1.训练完成后输出如下
```bash
开始训练: 2023-02-18 20:16:09.905283
训练已完成练100%
结束训练: 2023-02-18 20:16:56.179266
```
- 2.测试结果如下图所示,可以看到,神经网络可以将红点与蓝点进行分类
![](./figure/Figure_1.png)
- 3.训练误差如下图所示,可以看到,训练过程中误差在不断缩小
![](./figure/Figure_2.png)
## 2.卷积神经网络测试
### 2.1测试目标
- 使用卷积神经网络识别手写数字
### 2.2测试方式
- 运行CNNmain.py文件
### 2.3测试结果
- 1.训练完成后输出如下
```bash
第1次训练开始: 2023-02-18 18:45:01.447278
训练已完成100%
第1次训练结束: 2023-02-18 19:39:28.603512
测试已完成100%
第1次测试结束: 2023-02-18 19:43:05.641130
第1次训练正确率:66.28%
第2次训练开始: 2023-02-18 19:43:05.651106
训练已完成100%
第2次训练结束: 2023-02-18 20:46:34.102317
测试已完成100%
第2次测试结束: 2023-02-18 20:51:22.949554
第2次训练正确率:82.46%
第3次训练开始: 2023-02-18 20:51:22.957532
...
```
- 2.训练后测试正确率如下图所示,可以看到,随着训练次数增加,正确率在不断提高
![](./figure/Figure_3.png)
## 3.CNN参数读取测试
### 3.1测试目标
- 读取训练时保存的参数数据进行数字识别
### 3.2测试方式
- 运行saveandread.py文件
### 3.3测试结果
- 1.测试结果如下图所示,可以看到,神经网络可以正确的识别手写数字
![](./figure/Figure_4.png)
机智的程序员zero
- 粉丝: 2444
- 资源: 4700
最新资源
- 11-【其他】09-新进员工教育内容检查表.doc
- 11-【其他】11-新进职员研修事项检查表.doc
- 11-【其他】14-新员工入职培训反馈表 (2).doc
- 11-【其他】12-新员工岗位培训反馈表.doc
- 11-【其他】13-新员工培训成绩评核表.DOC
- 11-【其他】16-新员工入职培训跟踪记录表.doc
- 11-【其他】15-新员工入职培训反馈表.doc
- 11-【其他】18-新员工入职培训相关表格(最新版).doc
- 00-【管理制度】03-新员工入职培训管理制度.docx
- 00-【管理制度】04-新员工入职培训管理制度1.docx
- 00-【管理制度】06-新员工入职培训管理制度.docx
- 01-【培训计划】05-新员工入职培训计划.docx
- 01-【培训计划】01-入职培训流程计划.docx
- 01-【培训计划】12-新员工培训实施建议.docx
- 01-【培训计划】06-新员工入职培训计划.docx
- 01-【培训计划】17-新员工轮岗培训计划.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈