Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

大三的大作业,基于BP神经网络的手写数字识别系统

Notifications You must be signed in to change notification settings

DevilC/Number_Reconize_BP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

12 Commits

Repository files navigation

Number_Reconize_BP

===================== 大三的大作业,基于BP神经网络的手写数字识别系统
激励函数为Sigmoid函数,使用SGD进行训练,步长为固定值

运行前把Constant.Java 文件中的ProjectPath改为工程的保存路径

文件说明:

.\data:

allInput.txt:保存样本图片矩阵,一共800个样本,10*10的矩阵,与sample.rar中的图片一一对应<br>
Hi_weight.txt:存储输出层神经元与隐含层神经元连接的权值,共100\*30个数值,以二进制形式存储<br>
Op_weight.txt:存储隐含层与输出层神经元连接的权值,共30\*10个数值,以二进制形式存储<br>
target.txt:存储sample目标输出,与sample.rar中图片一一对应<br>

.\src:

.\src\constant\Constant.java:存储一些程序中的常量
.\src\data_prepare\Data_prepare.java:准备数据的代码,功能:把图片转化为矩阵存储到txt中
.\src\gui_main:
.\GUI.java:主界面代码
.\Mypanel.java:写数字画板代码
.\src\image_process:存储图像处理部分代码
binary_image.java:图像二值化、去噪代码
image_cut.java:图像切割分离代码
image_process.java:图象处理成10*10矩阵
.\src\neural_net:
Formula.java:公式
Hidden_Neural.java:隐含层
Network.java:神经网络对象
Op_Neural.java:输出层对象

可改进的地方:

1、梯度下降法的选取,可尝试选用Mini-batch或批量梯度下降法;
2、每次权值调整的步长可变,加快训练;
3、调整时加入Momentum加快训练,跳出局部最优;
4、损失函数加入Weight decay,防止过拟合;
(以前的大作业当时做的时候也没想那么多)

About

大三的大作业,基于BP神经网络的手写数字识别系统

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

AltStyle によって変換されたページ (->オリジナル) /