欢迎来到天天文库
浏览记录
ID:36992187
大小:87.50 KB
页数:8页
时间:2019-05-05
《bp神经网络实现(java代码)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、. BP神经网络实现(Java代码)神经网络的原理虽然理解起来不难,但是要是想实现它,还是需要做一些工作的,并且有很多细节性的东西需要注意。通过参阅各种相关资料,以及参考网络上已有的资源,自己写了一个含有一个隐含层,且只能有一个输出单元的简单的BP网络,经过测试,达到了预期的效果。需要说明的是,神经网络的每个输入都在[0,1]中,输出也在[0,1]中,在使用神经网络解决实际问题的时候,还需要对实际问题的输入输出进行归一化处理。另外,尽量不要使得神经网络的输入或输出接近于0或1,这样会影响拟合效果。我用正弦函数进行了一次测
2、试,效果如图所示:以下是相关的代码:1.神经网络代码[java] viewplaincopy1.package pkg1; 2. 3.import java.util.Scanner; 4. 5./* 6. * 7. */ 8.public class TestNeuro { ..1. 2. private int INPUT_DIM=1; 3. private int HIDDEN_DIM=20; 4. private double LEARNING_RATE=0.05; 5.
3、 double [][] input_hidden_weights=new double[INPUT_DIM][HIDDEN_DIM]; 6. double [] hidden_output_weights=new double[HIDDEN_DIM]; 7. double[] hidden_thresholds=new double[HIDDEN_DIM]; 8. double output_threshold; 9. 10. public static void main
4、(String[]args){ 11. Scanner in=new Scanner(System.in); 12. TestNeuro neuro=new TestNeuro(1,5); 13. neuro.initialize(); 14. for(int i=0;i<10000;i++){ 15. double[] input=new double[1]; 16. input[0]=Math.random
5、(); 17. double expectedOutput=input[0]*input[0]; 18. //System.out.println("input : "+input[0]+"ttexpectedOutput : "+expectedOutput); 19. //System.out.println("predict before training : "+neuro.predict(input)); 20.
6、 neuro.trainOnce(input, expectedOutput); 21. //System.out.println("predict after training : "+neuro.predict(input)); 22. //in.next(); 23. } 24. while(true){ 25. //neuro.printLinks(); 26. double[] inp
7、ut=new double[1]; 27. input[0]=in.nextDouble(); 28. double expectedOutput=in.nextDouble(); 29. System.out.println("predict before training : "+neuro.predict(input)); 30. neuro.trainOnce(input, expectedOutput); 31.
8、 System.out.println("predict after training : "+neuro.predict(input)); 32. 33. } 34. } 35. 36. public TestNeuro(int
此文档下载收益归作者所有