资源简介
使用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\.settings\org.eclipse.jdt.core.prefs
目录 0 2016-05-29 21:15 UI_try\bin\
目录 0 2016-05-29 21:15 UI_try\bin\Netural_NetWork\
文件 9252 2016-05-02 19:57 UI_try\bin\Netural_NetWork\BP.class
文件 1039 2016-05-02 19:57 UI_try\bin\Netural_NetWork\BackStage.class
文件 8317 2016-05-02 19:57 UI_try\bin\Netural_NetWork\Check.class
文件 319 2016-05-02 19:57 UI_try\bin\Netural_NetWork\Edge.class
文件 7267 2016-05-02 19:57 UI_try\bin\Netural_NetWork\Element.class
文件 5558 2016-05-02 19:57 UI_try\bin\Netural_NetWork\File_in_out.class
文件 1284 2016-05-02 19:57 UI_try\bin\Netural_NetWork\JText$UpperCaseDocument.class
文件 500 2016-05-02 19:57 UI_try\bin\Netural_NetWork\JText.class
文件 1285 2016-05-02 19:57 UI_try\bin\Netural_NetWork\MyCanvas.class
文件 2557 2016-05-02 19:57 UI_try\bin\Netural_NetWork\Palette.class
文件 7930 2016-05-02 19:57 UI_try\bin\Netural_NetWork\Picture_action.class
文件 398 2016-05-02 19:57 UI_try\bin\Netural_NetWork\Readr.class
文件 6588 2016-05-02 19:57 UI_try\bin\Netural_NetWork\Sheet.class
文件 761 2016-05-02 19:57 UI_try\bin\Netural_NetWork\StartProgram.class
文件 3391 2016-05-02 19:57 UI_try\bin\Netural_NetWork\Study.class
文件 1011 2016-05-02 19:57 UI_try\bin\Netural_NetWork\UI_show$1.class
文件 4756 2016-05-02 19:57 UI_try\bin\Netural_NetWork\UI_show.class
目录 0 2016-05-29 21:15 UI_try\bin\Picture\
文件 41063 2015-11-12 21:33 UI_try\bin\Picture\NN1.png
文件 77982 2015-11-14 16:56 UI_try\bin\Picture\sky.jpg
文件 28204 2015-11-14 20:42 UI_try\bin\Picture\son.jpg
目录 0 2016-05-29 21:15 UI_try\lib\
文件 309293 2015-11-18 14:47 UI_try\lib\jcommon-1.0.16.jar
文件 1425744 2015-11-18 15:11 UI_try\lib\jfreechart-1.0.13.jar
............此处省略14个文件信息
评论
共有 条评论