- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
BP神经网络算法java实现
BP神经网络算法java实现
package backp;
import java.*;
import java.awt.*;
import java.io.*;
import java.util.Scanner;
//by realmagician
import org.omg.CORBA.portable.InputStream;
public class backpro {
public static void main(String args[])
{
String filename=new String(delta.in);
try {
FileInputStream fileInputStream=new FileInputStream(filename);
Scanner sinScanner=new Scanner(fileInputStream);
int attN,hidN,outN,samN;
attN=sinScanner.nextInt();
outN=sinScanner.nextInt();
hidN=sinScanner.nextInt();
samN=sinScanner.nextInt();
//System.out.println(attN+ +outN+ +hidN+ +samN);
double samin[][]=new double[samN][attN];
double samout[][]=new double[samN][outN];
for(int i=0;isamN;++i)
{
for(int j=0;jattN;++j)
{
samin[i][j]=sinScanner.nextDouble();
}
for(int j=0;joutN;++j)
{
samout[i][j]=sinScanner.nextDouble();
}
}
int times=10000;
double rate=0.5;
BP2 bp2=new BP2(attN,outN,hidN,samN,times,rate);
bp2.train(samin, samout);
for(int i=0;ihidN;++i)
{
for(int j=0;jattN;++j)
System.out.print(bp2.dw1[i][j]+ );
System.out.println();
}
for(int i=0;ioutN;++i)
{
for(int j=0;jhidN;++j)
System.out.print(bp2.dw2[i][j]+ );
System.out.println();
}
while(true)
{
double testout[]=new double[outN];
double testin[]=new double[attN];
Scanner testinScanner=new Scanner(System.in);
for(int i=0;iattN;++i)
{
testin[i]=testinScanner.nextDouble();
}
testout=bp2.getResault(testin);
for(int i=0;ioutN;++i)
System.out.print(testout[i]+ );
System.out.println(outN);
}
} catch (IOException e) {
// TODO: handle exception
}
System.out.println(End);
}
}
class BP2//包含一个隐含层的神经网络
{
double dw1[][],dw2[][];
int hidN;//隐含层单元个数
int samN;//学习样例个数
int attN;//输入单元个数
int outN;//输出单元个数
int times;//迭代次数
double rate;//学习速率
boolean trained=false;//保证在得结果前,先训练
BP2(int attN,int outN,int hidN,int samN,int times,double rate)
{
文档评论(0)