资源简介
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发送post和get请求源码及jar包
- Java完整的Web Service,学会做web servic
- mysql-connector-java-5.1.11-bin
- JAVAWEB_项目开发_网上订餐系统-CSDN
- Java开发资源库
- 操作系统概念JAVA实现第七版.rar
- 基于区块链的茶叶溯源平台源代码.
- 疯狂Java讲义(第3版) PDF高清版
- how2j_offline_2020.01.31.zip
- java版简易飞机大战
- java版坦克大战eclipse
- java界面置顶显示文字
- java写的图书管理系统Myeclipse
- 车辆路径问题java程序
- mysql-connector-java-5.1.35 MySQL的jdbc驱动
- java UDP的一个封装
- JAVA画板实验报告
- java和dll交互
- JAVA程序设计慕课版课后习题答案
- Java 版仿QQ
- javax 常用jar
- javaweb使用mvc框架实现注册登录
- 电梯调度算法java实现
- java 项目 电子卡充值系统jsp + javabea
- 关联规则算法实现 java
- Java中使用Ajax、Jquery带进度条文件上传
- Redis英文文献加翻译毕业设计可用
- java单词表
- 基于Java的网上商城系统的设计与实现
评论
共有 条评论