简单手写数字识别程序


使用JAVA语言利用BP神经网络完成0-9的手写数字识别 对于智能科学入门挺不错的。 同时也实现了图形界面,纯当是java界面编写的入门
资源截图
代码片段和文件信息
package Netural_NetWork;

import java.io.File;
import java.util.Vector;
public class BP {
public boolean set_w(double[][][] mw){
w = mw;
return true;
}
public double[][][] get_w(){
return w;
}
public int get_rate(){
return rate+1;
}
public boolean set_rate(int num){
rate = num;
return true;
}
public double[][][] createw(){ //当没有初始值的时候,就自己随机生成
int ij;
w = new double[2][][];
w[0] = new double[innum+spenum][midnum];
for(i = 0; i< innum +spenum; i++){
for(j = 0; j< midnum;j++){
w[0][i][j] = (Math.random()*4.8 -2.4)/innum;
}
}
w[1] = new double[midnum][outnum];
for(i = 0; i< midnum;i++){
for(j = 0; j < 10;j++){
w[1][i][j] = (Math.random()*4.8 -2.4)/midnum;
}
}
return w;
}
public int[][] learn(int maxnum){
int ijk;
File file = new File(File_in_out.path); //文件处理
File[] filelist = file.listFiles();
File_in_out fio = new File_in_out(); //用来读文件
String name = null;
int mod ; //计算所有的值
Vector re = new Vector();
Readr res = null;
double temp = 0;
double[] O = new double[midnum];
double[] y = new double[outnum];
double[] midpart = new double[outnum]; 
double[] yr = new double[outnum];
double step = 1;
Boolean flag = false;
double E = 0;
double Eo = 200000;
double[] xnum = new double[spenum];
mod = 0;
for(i = 0; i< maxnum && i < filelist.length; i++){ //将数据读取
name = filelist[i].getPath();
if(!name.equals(File_in_out.basic)){
re.add(fio.read(name)); //添加内容
++mod;
}
}
for(rate = 1; rate <= maxnum && flag == false; ++rate){
res = re.get(rate % mod);
yr[res.y] = 1.0;
for(k = 0; k< spenum;k++)
xnum[k] = 0;
for(i = 0; i< (Picture_action.inf_num)/5; ++i){
for(k = 0; k < Picture_action.inf_num; k++){
xnum[i] = xnum[i] + res.x[Picture_action.inf_num*i*5 + k];
}
}
for(k = 0; k < Picture_action.inf_num; k++){
xnum[i] = xnum[i] + res.x[Picture_action.inf_num*(Picture_action.inf_num-1) + k];
}
for(k = 0; k< (Picture_action.inf_num)/5;++k){
for(i = 0; i < Picture_action.inf_num; ++i){
xnum[k+5] = xnum[k+5] + res.x[Picture_action.inf_num*i + k*5];
}
}
for(i = 0;  i< Picture_action.inf_num; i++){
xnum[k+5] = xnum[k+5] + res.x[Picture_action.inf_num*i + Picture_action.inf_num-1];
}
for(j = 0; j < midnum; j++){
temp = 0;
for(i = 0; i< innum ; i++){
temp = temp + w[0][i][j] * res.x[i];
}
for(i = 0;i< spenum;i++)
temp = temp +w[0][i+innum][j]* xnum[i];
O[j] = S(temp);
}
for(j = 0; j < outnum;j++){
temp = 0;
for(i = 0; i < midnum; i++){
temp = temp + w[1][i][j] * O[i];
}
y[j] = S(temp); 
}
double[][][] ch_w = new double[2][][];
ch_w[0] = new double[innum + spenum][midnum];
ch_w[1] = new double [midnum][outnum];
for(i = 0; i < outnum; i++){
midpart[i] = (1- y[i])*y[i]*(y[i] - yr[i]);
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2016-05-29 21:15  UI_try
     文件         426  2015-11-29 10:40  UI_try.classpath
     文件         382  2015-11-09 08:51  UI_try.project
     目录           0  2016-05-29 21:15  UI_try.settings
     文件         598  2015-11-09 08:51  UI_try.settingsorg.eclipse.jdt.core.prefs
     目录           0  2016-05-29 21:15  UI_tryin
     目录           0  2016-05-29 21:15  UI_tryinNetural_NetWork
     文件        9252  2016-05-02 19:57  UI_tryinNetural_NetWorkBP.class
     文件        1039  2016-05-02 19:57  UI_tryinNetural_NetWorkBackStage.class
     文件        8317  2016-05-02 19:57  UI_tryinNetural_NetWorkCheck.class
     文件         319  2016-05-02 19:57  UI_tryinNetural_NetWorkEdge.class
     文件        7267  2016-05-02 19:57  UI_tryinNetural_NetWorkElement.class
     文件        5558  2016-05-02 19:57  UI_tryinNetural_NetWorkFile_in_out.class
     文件        1284  2016-05-02 19:57  UI_tryinNetural_NetWorkJText$UpperCaseDocument.class
     文件         500  2016-05-02 19:57  UI_tryinNetural_NetWorkJText.class
     文件        1285  2016-05-02 19:57  UI_tryinNetural_NetWorkMyCanvas.class
     文件        2557  2016-05-02 19:57  UI_tryinNetural_NetWorkPalette.class
     文件        7930  2016-05-02 19:57  UI_tryinNetural_NetWorkPicture_action.class
     文件         398  2016-05-02 19:57  UI_tryinNetural_NetWorkReadr.class
     文件        6588  2016-05-02 19:57  UI_tryinNetural_NetWorkSheet.class
     文件         761  2016-05-02 19:57  UI_tryinNetural_NetWorkStartProgram.class
     文件        3391  2016-05-02 19:57  UI_tryinNetural_NetWorkStudy.class
     文件        1011  2016-05-02 19:57  UI_tryinNetural_NetWorkUI_show$1.class
     文件        4756  2016-05-02 19:57  UI_tryinNetural_NetWorkUI_show.class
     目录           0  2016-05-29 21:15  UI_tryinPicture
     文件       41063  2015-11-12 21:33  UI_tryinPictureNN1.png
     文件       77982  2015-11-14 16:56  UI_tryinPicturesky.jpg
     文件       28204  2015-11-14 20:42  UI_tryinPictureson.jpg
     目录           0  2016-05-29 21:15  UI_trylib
     文件      309293  2015-11-18 14:47  UI_trylibjcommon-1.0.16.jar
     文件     1425744  2015-11-18 15:11  UI_trylibjfreechart-1.0.13.jar
............此处省略14个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)