资源简介
java实现的bp算法,可视化操作,详细的设置、导入导出数据与学习功能

代码片段和文件信息
/*
* 作者:张珩 信研0802 2008000757
* 内容:BP神经网络算法
*/
package neuro;
import ui.*;
import javax.swing.*;
import java.awt.BorderLayout;
//BP算法类
public class NetAlgo extends JPanel implements Runnable
{
// 第一个数记录有几层网络,后面记录每一层有多少个神经元
private int[] netlayers;
// 二维数组存放神经元,动态分配,每一维不一定等长
private Neuron[][] neuroArray;
// 用三维数组存放网络的权重,每一维不一定等长Delta
private double[][][] netWeight;
// 用于存储前一次的变化权重用作动量影子
private double[][][] deltaWeight;
// 原始数据学习集
private double[][] origLearnData;
// 归一化后的学习数据集
private double[][] learnData;
// 原始泛化数据集
private double[][] origGenerData;
// 归一化后的泛化数据集
private double[][] generData;
// 存放最大最小值,用于归一化0行存最小值,1行存最大值
private double[][] minMax;
// 均方差数组,
private double[] meanErrSum;
// 相对误差和数组
private double[] relaErrSum;
// 学习速率
private double eta = 0.8;
// 动量项因子
private double alpha = 0.7;
// 学习要达到的误差精度
private double precise = 0.0005;
// 最多允许学习次数
private int maxCount = 2000;
// 存放输出曲线的平均误差率的曲线的类
private DrawLearn[] learnCurv;
// 存放回想实际输出与期望输出的关系的曲线
private DrawTest[] reCallCurv;
// 存放泛化实际输出与期望输出的关系的曲线
private DrawTest[] generCurv;
// 是否利用原有网络
private boolean isHaveNet;
// 算法执行类型1表示学习,2表示回想,3表示泛化
private int execType = 1;
// 回想期望值,实际值,相对误差\表第一维表示输出个数
private double mixReCall[][][];
// 泛化期望值,实际值,相对误差表
private double mixGeneral[][][];
// 显示网络参数
private JLabel jlPara;
// 显示数据
private JTextArea showData;
private JScrollPane showPanel;
public NetAlgo()
{
setLayout(new BorderLayout());
jlPara = new JLabel();
jlPara.setText(“ 你好! 你已进入BP神经网络!“);
add(jlPara BorderLayout.SOUTH);
showData = new JTextArea();
showPanel = new JScrollPane(showData);
showData.setAutoscrolls(true);
showData.setLineWrap(true);
add(showPanel BorderLayout.CENTER);
}
// 设置网络结构---层数和每层节点个数
public void setlayers(int[] layers)
{
netlayers = layers;
}
// 将网络参数写入算法类
public void setParameter(double[] parameter)
{
// 学习速率
eta = parameter[0];
// 动量项因子
alpha = parameter[1];
// 学习要达到的误差精度
precise = parameter[2];
// 最多允许学习次数
maxCount = (int) parameter[3];
}
// 设置网络结构---初始化网络
public void setNeuros(Neuron[][] neurons)
{
neuroArray = neurons;
}
// 设置网络的连接权值
public void setWeight(double[][][] weights)
{
netWeight = weights;
}
// 初始化deltaWeight
public void initDeltaWeight()
{
deltaWeight = new double[neuroArray.length -1][][];
for (int i = 0; i {
deltaWeight[i] = new double[neuroArray[i].length][];
for (int j = 0; j {
deltaWeight[i][j] = new double[neuroArray[i +1].length];
for (int k = 0; k {
deltaWeight[i][j][k] = Math.random();
}
}
}
}
// 设置网络权值
public void setweights()
{
// 初始化神经网络连接权值 neuroArray
netWeight = new double[neuroArray.length -1][][];
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 232 2008-10-09 14:55 neuroNet\.classpath
文件 384 2008-10-09 14:55 neuroNet\.project
文件 6126 2008-11-13 14:37 neuroNet\src\ui\DrawLearn.java
文件 4149 2008-11-05 00:40 neuroNet\src\ui\DrawTest.java
文件 11783 2008-10-18 17:44 neuroNet\src\ui\Mainfr
文件 6007 2008-11-11 11:56 neuroNet\src\ui\SetNet.java
文件 16971 2008-11-14 10:40 neuroNet\src\neuro\NetAlgo.java
文件 886 2008-11-14 10:20 neuroNet\src\neuro\Neuron.java
文件 399 2008-11-05 23:57 neuroNet\src\neuro\Point.java
文件 1071 2008-11-14 10:30 neuroNet\bin\ui\DrawLearn$UnChangeHeight.class
文件 1274 2008-11-14 10:30 neuroNet\bin\ui\DrawLearn.class
文件 728 2008-11-14 10:30 neuroNet\bin\ui\DrawPanel$1.class
文件 4929 2008-11-14 10:30 neuroNet\bin\ui\DrawPanel.class
文件 821 2008-11-05 00:40 neuroNet\bin\ui\DrawTest.class
文件 630 2008-10-18 17:44 neuroNet\bin\ui\Mainfr
文件 983 2008-10-18 17:44 neuroNet\bin\ui\Mainfr
文件 736 2008-10-18 17:44 neuroNet\bin\ui\Mainfr
文件 679 2008-10-18 17:44 neuroNet\bin\ui\Mainfr
文件 1250 2008-10-18 17:44 neuroNet\bin\ui\Mainfr
文件 1252 2008-10-18 17:44 neuroNet\bin\ui\Mainfr
文件 883 2008-10-18 17:44 neuroNet\bin\ui\Mainfr
文件 882 2008-10-18 17:44 neuroNet\bin\ui\Mainfr
文件 977 2008-10-18 17:44 neuroNet\bin\ui\Mainfr
文件 977 2008-10-18 17:44 neuroNet\bin\ui\Mainfr
文件 2529 2008-10-18 17:44 neuroNet\bin\ui\Mainfr
文件 2529 2008-10-18 17:44 neuroNet\bin\ui\Mainfr
文件 3290 2008-10-18 17:44 neuroNet\bin\ui\Mainfr
文件 2996 2008-10-18 17:44 neuroNet\bin\ui\Mainfr
文件 3971 2008-10-18 17:44 neuroNet\bin\ui\Mainfr
文件 1056 2008-11-14 10:30 neuroNet\bin\ui\SetNet$1.class
............此处省略17个文件信息
相关资源
- java串口通信全套完整代码-导入eclip
- jsonarray所必需的6个jar包.rar
- 三角网构TIN生成算法,Java语言实现
- java代码编写将excel数据导入到mysql数据
- Java写的cmm词法分析器源代码及javacc学
- JAVA JSP公司财务管理系统 源代码 论文
- JSP+MYSQL旅行社管理信息系统
- 推荐算法的JAVA实现
- 基于Java的酒店管理系统源码(毕业设
- java-图片识别 图片比较
- android毕业设计
- java23种设计模式+23个实例demo
- java Socket发送/接受报文
- JAVA828436
- java界面美化 提供多套皮肤直接使用
- 在线聊天系统(java代码)
- 基于Java的图书管理系统807185
- java中实现将页面数据导入Excel中
- java 企业销售管理系统
- java做的聊天系统(包括正规课程设计
- Java编写的qq聊天室
- 商店商品管理系统 JAVA写的 有界面
- JAVA开发聊天室程序
- 在linux系统下用java执行系统命令实例
- java期末考试试题两套(答案) 选择(
- JAVA3D编程示例(建模、交互)
- Java 文件加密传输
- java做的房产管理系统
- 基于jsp的bbs论坛 非常详细
- [免费]java实现有障碍物的贪吃蛇游戏
评论
共有 条评论