1.如何用MATLAB神经网络工具箱创建BP神经网络模型?具体有哪些步骤?请高手举实例详细解释下? 2.如何把输

1.如何用MATLAB神经网络工具箱创建BP神经网络模型?具体有哪些步骤?请高手举实例详细解释下? 2.如何把输

%人脸识别模型,脸部模型自己找吧。

function mytest()

clc;

images=[ ];

M_train=3;%表示人脸

N_train=5;%表示方向

sample=[];

pixel_value=[];

sample_number=0;

for j=1:N_train

for i=1:M_train

str=strcat('Images\',num2str(i),'_',num2str(j),'.bmp'); %读取图像,连接字符串形成图像的文件名。

img= imread(str);

[rows cols]= size(img);%获得图像的行和列值。

img_edge=edge(img,'Sobel');

%由于在分割图片中我们可以看到这个人脸的眼睛部分也就是位于分割后的第二行中,位置变化比较大,而且眼睛边缘检测效果很好

sub_rows=floor(rows/6);%最接近的最小整数,分成6行

sub_cols=floor(cols/8);%最接近的最小整数,分成8列

sample_num=M_train*N_train;%前5个是第一幅人脸的5个角度

sample_number=sample_number+1;

for subblock_i=1:8 %因为这还在i,j的循环中,所以不可以用i

block_num=subblock_i;

pixel_value(sample_number,block_num)=0;

for ii=sub_rows:(2*sub_rows)

for jj=(subblock_i-1)*sub_cols+1:subblock_i*sub_cols

pixel_value(sample_number,block_num)=pixel_value(sample_number,block_num)+img_edge(ii,jj);

end

end

end

end

end

%将特征值转换为小于1的值

max_pixel_value=max(pixel_value);

max_pixel_value_1=max(max_pixel_value);

for i=1:3

mid_value=10^i;

if(((max_pixel_value_1/mid_value)>1)&&((max_pixel_value_1/mid_value)<10))

multiple_num=1/mid_value;

pixel_value=pixel_value*multiple_num;

break;

end

end

% T 为目标矢量

t=zeros(3,sample_number);

%因为有五类,所以至少用3个数表示,5介于2的2次方和2的3次方之间

for i=1:sample_number

% if((mod(i,5)==1)||(mod(i,5)==4)||(mod(i,5)==0))

if(i<=3)||((i>9)&&(i<=12))||((i>12)&&(i<=15))

t(1,i)=1;

end

%if((mod(i,5)==2)||(mod(i,5)==4))

if((i>3)&&(i<=6))||((i>9)&&(i<=12))

t(2,i)=1;

end

%if((mod(i,5)==3)||(mod(i,5)==0))

if((i>6)&&(i<=9))||((i>12)&&(i<=15))

t(3,i)=1;

end

end

% NEWFF——生成一个新的前向神经网络

% TRAIN——对 BP 神经网络进行训练

% SIM——对 BP 神经网络进行仿真

% 定义训练样本

% P 为输入矢量

P=pixel_value'

% T 为目标矢量

T=t

size(P)

size(T)

% size(P)

% size(T)

% 创建一个新的前向神经网络

net_1=newff(minmax(P),[10,3],{'tansig','purelin'},'traingdm')

% 当前输入层权值和阈值

inputWeights=net_1.IW{1,1}

inputbias=net_1.b{1}

% 当前网络层权值和阈值

layerWeights=net_1.LW{2,1}

layerbias=net_1.b{2}

% 设置训练参数

net_1.trainParam.show = 50;

net_1.trainParam.lr = 0.05;

net_1.trainParam.mc = 0.9;

net_1.trainParam.epochs = 10000;

net_1.trainParam.goal = 1e-3;

% 调用 TRAINGDM 算法训练 BP 网络

[net_1,tr]=train(net_1,P,T);

% 对 BP 网络进行仿真

A = sim(net_1,P);

% 计算仿真误差

E = T - A;

MSE=mse(E)

x=[0.14 0 1 1 0 1 1 1.2]';

sim(net_1,x)

以前搞毕业设计的时候就是搞BP,不过是直接编写的程序然后再simulink中调用的,神经网络工具箱创建BP,还没弄过。期待高手解答,再次学习下····