PDA

查看完整版本 : [求助]关于创建BP网络newff中遇到logsig函数不存在的问题!请大家指教一下,谢谢


hejizhu
2009-03-10, 10:32
程序如下:
clear all;
p=[1 2;-1 1;-2 1;-4 0];
t=[0.2 0.8 0.8 0.2];
%创建BP网络和定义训练函数及参数
net=newff([-1 1;-1 1],[5 1],{'logsig''logsig'},'traingd');
net.trainParam.goal=0.001;
net.trainParam.epochs=5000;
%训练神经网络
[net,tr]=train(net,p,t);
%输出训练后的权值和阀值
iw1=net.IW{1}
b1=net.b{1}
iw2=net.LW{2}
b2=net.b{2}
save net51 net;

运行之后出现如下提示错误,
??? Error using ==> network.subsasgn
"layers{1}.transferFcn" cannot be set to non-existing function "logsig'logsig".

Error in ==> newff at 145
net.layers{i}.transferFcn = tf{i};

Error in ==> hhh at 4
net=newff([-1 1;-1 1],[5 1],{'logsig''logsig'},'traingd');
是不是与我用的matlab7.0版没有包含这个函数啊!:lovely: :lovely:

hejizhu
2009-03-10, 10:38
而且我试了一下把logsig传递函数换成tansig或者puresig都不行
都是不包含这个函数!
我用的是BP网络最常用的就是这三个传递函数,怎么都不行啊?
哪位高人指教一下,谢谢
我用的matlab 7.0:sweat: :sweat:

bowen_chen
2009-03-15, 17:02
程序如下:
clear all;
p=[1 2;-1 1;-2 1;-4 0];
t=[0.2 0.8 0.8 0.2];
%创建BP网络和定义训练函数及参数
net=newff([-1 1;-1 1],[5 1],{'logsig''logsig'},'traingd');
net.t...

是不是'logsig''logsig'中间没加逗号?

倏忽
2009-03-20, 15:28
我觉得也是没加逗号的原因。

倏忽
2009-03-20, 15:57
不过你的[-1 1;-1 1],[5 1],数据有点离谱吧?

swimmingfish
2011-05-26, 09:23
我觉得肯定是没有逗号的原因@@

风湿百合
2011-05-27, 20:05
你在创建函数的时候改成net=newff(minmax(p),[5 1],{'logsig','logsig'},'traingd'),此外,你的p腰为矩阵的形式哦!