function bpGradientTrain global bpnet; clc; load templet pattern; c=0; p=[]; for i=1:10 for j=1:5 c=c+1; p(:,c)=pattern(i).feature(:,j); end end t=zeros(4,45); t(4,1:5)=1; t(3,6:10)=1; t(3:4,11:15)=1; t(2,16:20)=1; t(2,21:25)=1; t(4,21:25)=1; t(2:3,26:30)=1; t(2:4,31:35)=1; t(1,36:40)=1; t(1,41:45)=1; t(4,41:45)=1; t(1,46:50)=1; t(3,46:50)=1; x=ones(25,2); x(:,1)=0; bpnet = newff(x,[50,4],{'logsig','logsig','traingd'}); %梯度下降 bpnet.trainParam.show=50; %每隔50次训练,显示一次训练进程 bpnet.trainParam.lr=0.2; %学习速率定义为0.2 bpnet.trainParam.epochs=2000; %最大训练次数2000次 bpnet.trainParam.goal=0.2e-1; %训练要求的精度小于0.02 bpnet.trainParam.min_grad=1e-10; %最小梯度要求为1e-10 [bpnet] = train(bpnet,p,t);
时间: 2024-03-11 22:46:25 浏览: 62
BPnet.rar_BPNet C
这段代码实现了一个使用梯度下降算法进行训练的BP神经网络。具体来说,它的训练数据包括一些模板样本,每个样本包含一些特征。在训练过程中,将这些特征作为输入,将预定义好的目标输出作为输出,在神经网络中逐层传播,计算误差并进行反向传播,最终通过梯度下降算法来更新神经网络的权重和偏置。训练参数包括学习速率、最大训练次数、训练精度等等。训练完成后,生成的神经网络可以用于预测新的样本的输出。
阅读全文