BP神经网络控件1.0 测试版 欢迎使用和下载

源代码在线查看: 如何使用神经网络控件.txt

软件大小: 3673 K
上传用户: teasler111
关键词: 1.0 BP神经网络 控件
下载地址: 免注册下载 普通下载 VIP

相关代码

				BP神经网络控件1.0  测试版
				作者 何晓昀
				更多信息请访问 www.hexiaoyun.net.cn
				如果您有什么意见和建议,请发邮件到 hexymail@tom.com
				
				BP神经网络控件1.0 是为了满足神经网络计算而设计的神经网络控件。
				
				VC 调用该控件的方法如下 (该方法在Visual studio 2005 测试过)
				
				1 打开 visual studio 2005,选用给予对话框方式创建一个MFC 项目(例如 bptest)
				在这个过程中,visual studio 会自动建立一个 bptest的目录 
				
				2 将 bp.h bp.dll 和 bp.def 文件拷贝到 bptest 目录下
				
				3 打开项目菜单下的 bptest属性对话框,在配制属性下找到链接器下的输入,在其下的附加依赖项中加入 bp.def
				
				4 在解决方案下添加 bp.h
				
				5 在#include bp.h 添加bptestdlg.h, 同时定义神经网络指针 CBP *bpnn;
				
				6 在bptestdll.cpp 的  CbptestDlg::OnInitDialog() 下 添加
				    	bpnn = new CBP;
					bpnn->create(3,3,1);   // 创建一个有 3 个输入变量,隐含层有3个神经元,输出层为 1 个变量的网络
				
				7 在对话框中 分别设置 训练网络、运行网络、保存网络、读取网络和输出网络详细参数 5 个按钮
				
				8 在训练网络按钮相对性的程序段中输入以下代码
					// 训练样本
					float in1[3] = {1.0,0.0,1.0};    // 输入样本 1
					float target1[1] = {1.0};        // 目标样本 1
				
					float in2[3] = {0.0,1.0,1.0};    // 输入样本 2
					float target2[1] = {0.0};        // 目标样本 2
				
					
					double a1,a2;	 // 定义隐含层误差和输出层误差
				
					for( int i=0; i					{
						// 训练样本 1 
						bpnn->read_input(in1);    
						bpnn->read_target(target1);
						bpnn->train(&a1,&a2);      
				
						// 训练样本 2
						bpnn->read_input(in2);
						bpnn->read_target(target2);
						bpnn->train(&a1,&a2);		
					}	
				
				 9 在运行网络按钮程序段中输入
					// 定义输出结果变量
					CString str;
				
					// 以样本 1 作为测试对象
					float in1[3] = {1.0,0.0,1.0};
					float target1[1] = {1.0};
				
					// 定义输出结果
					float output[1];
					bpnn->read_input(in1);
					bpnn->feedforward();
					bpnn->get_output(output);
				
					// 显示输出结果	
					str.Format(_T("output1 = %f\n"),output[0]);		
					AfxMessageBox(str);
				
				10 在保存网络程序段中输入
					// 保存到 C 盘根目录下
					bpnn->save_net("c:\\net.txt");
				
				11 读取网络程序段中输入
					// 从 C 盘根目录下读取文件
					bpnn->load_net("c:\\net.sav");
				
				12 输出详细网络详细参数程序段中输入
					// 将网络权值参数写入到 C 盘根目录
					bpnn->detail("c:\\detail.txt");
				输出样本如下:
				
				detail.txt 神经网络控件由何晓昀编写 更多信息请访问 www.hexiaoyun.net.cn
				
				 本版本为测试板,矩阵最后一位数据以*号表示,正式版中提供全部数据 
				
				 输入层的神经元个数:     3
				 隐含层的神经元个数:     3
				 输出层的神经元个数:     1
				 
				
				 输入层权值矩阵大小为 4 * 4
				   -1.000000    -0.008483    -0.008502 ************
				   -0.999982    -2.848365    -2.848154 ************
				   -0.999975     1.839903     1.839662 ************
				   -0.999978    -0.008484    -0.008499 ************
				
				
				 隐含层权值矩阵大小为 4 * 2
				   -0.999997 ************
				   -0.999996 ************
				   -0.999970 ************
				   -0.999996 ************			

相关资源