フィルターのクリア

Example from patternnet docs fails in Neural Network Toolbox Version 10.0 (R2017a)

2 ビュー (過去 30 日間)
I'd remove this post now if I could. Tracking down the function name conflict has been difficult. The code attached to this answer https://www.mathworks.com/matlabcentral/answers/100197-is-there-any-way-to-list-all-shadowed-files-in-the-matlab-path-in-matlab-7-8-2009a#answer_109545 got me started.
Original problem: Trying to run the example from
help paternnet
but get:
Index exceeds matrix dimensions.
Error in initnw>initialize_layer (line 168)
range(inputStart(j):inputStop(j),:) = temp2((inputStart(j):inputStop(j))-inputStart(j)+1,:);
Complete code (revised):
% NNTest from help patternnet
clear all
clc
dbstop if error
[x,t] = iris_dataset;
net = patternnet(10);
net = train(net,x,t);
Complete output:
Index exceeds matrix dimensions.
Error in initnw>initialize_layer (line 168)
range(inputStart(j):inputStop(j),:) = temp2((inputStart(j):inputStop(j))-inputStart(j)+1,:);
Error in initnw (line 93)
out1 = initialize_layer(in1,in2);
Error in initlay>initialize_network (line 147)
net = feval(initFcn,net,i);
Error in initlay (line 89)
out1 = initialize_network(in1);
Error in network/init (line 32)
net = feval(initFcn,net);
Error in network/configure (line 243)
net = init(net);
Error in nntraining.config (line 116)
net = configure(network(net),X,T);
Error in nntraining.setup>setupPerWorker (line 68)
[net,X,Xi,Ai,T,EW,Q,TS,err] = nntraining.config(net,X,Xi,Ai,T,EW,configNetEnable);
Error in nntraining.setup (line 43)
[net,data,tr,err] = setupPerWorker(net,trainFcn,X,Xi,Ai,T,EW,enableConfigure);
Error in network/train (line 335)
[net,data,tr,err] = nntraining.setup(net,net.trainFcn,X,Xi,Ai,T,EW,enableConfigure,isComposite);
Error in NNTest (line 7)
net = train(net,x,t);
Version information:
MATLAB Version: 9.2.0.556344 (R2017a)
Neural Network Toolbox Version 10.0 (R2017a)
OS info:
Mac OS X 10.11.6 (15G1611)
  2 件のコメント
Walter Roberson
Walter Roberson 2017 年 9 月 17 日
The code
[x,t] = iris_dataset;
net = patternnet(10);
net = train(net,x,t);
view(net)
y = net(x);
perf = perform(net,t,y);
classes = vec2ind(y);
works for me in R2017a.
Terrance Nearey
Terrance Nearey 2017 年 9 月 17 日
Thanks Walter. Setting path to default via restoredefaultpath fixed everything for me. I'll always try this first before posting issues. I must be forcing some Mathworks function to be shadowed by something my personal utilities, which I usually load at startup.

サインインしてコメントする。

採用された回答

Greg Heath
Greg Heath 2017 年 9 月 17 日
clear all
clc
%stoperr
%Undefined function or variable 'stoperr'.
% [x,t] = iris_dataset;
% net = patternnet(10);
% net = train(net,x,t);
% view(net)
% y = net(x);
% perf = perform(net,t,y) %0.0302
% classes = vec2ind(y);
% end
% Error: Illegal use of reserved keyword "end".
close all, clear all, clc
[ x,t ] = iris_dataset;
[ I N ] = size(x)% [ 4 150 ]
[ O N ] = size(t)% [ 3 150]
truclass = vec2ind(t); % 1 to 3
MSEref = mse(t-mean(t,2)) % 0.2222
rng(0), Ntrials = 10
for h = 1:10 % No. of hidden nodes
net = patternnet(h);
for n = 1:Ntrials
net = configure(net,x,t);
[net tr y e ] = train(net,x,t);
% y = net(x); e = t-y;
NMSE(h,n) = mse(e)/MSEref;
predclass = vec2ind(y);
PCTERR(h,n) = 100*mean(predclass~=truclass);
end
end
PCTERR = PCTERR
% Columns 1 through 5
%
% 2.6667 2.0000 2.0000 3.3333 2.6667
% 2.0000 1.3333 2.6667 2.0000 2.0000
% 2.0000 2.0000 4.0000 0.6667 2.6667
% 1.3333 4.0000 4.0000 1.3333 1.3333
% 2.0000 3.3333 3.3333 2.6667 1.3333
% 3.3333 2.0000 2.6667 1.3333 2.0000
% 2.6667 4.6667 3.3333 4.0000 3.3333
% 1.3333 1.3333 2.6667 2.0000 4.6667
% 2.6667 0.6667 2.6667 1.3333 1.3333
% 2.0000 1.3333 1.3333 1.3333 4.0000
%
% Columns 6 through 10
%
% 3.3333 2.6667 2.0000 2.6667 2.0000
% 1.3333 68.6667 1.3333 2.6667 6.0000
% 1.3333 2.6667 2.6667 1.3333 1.3333
% 1.3333 3.3333 3.3333 4.0000 2.6667
% 3.3333 2.0000 1.3333 2.0000 1.3333
% 1.3333 1.3333 1.3333 2.6667 1.3333
% 2.0000 2.6667 2.6667 2.6667 1.3333
% 2.0000 1.3333 1.3333 2.0000 1.3333
% 3.3333 4.0000 3.3333 2.0000 2.0000
% 1.3333 1.3333 2.0000 2.6667 1.3333
Hope this helps,
Thank you for formally accepting my answer
Greg
  2 件のコメント
Greg Heath
Greg Heath 2017 年 9 月 17 日
P.S.
Any one interested in calculating the correlation coefficient between the 100 samples of NMSE and PCTERR?
Terrance Nearey
Terrance Nearey 2017 年 9 月 17 日
Thanks Greg ( and commenter Walter). The source of my problem is almost certainly a function on in my personal utilities library path. Setting executing restoredefaultpath fixes everything. I'll remember to try that first. Now to track down what function is causing the problem. Can't live without my utilities.

サインインしてコメントする。

その他の回答 (1 件)

Greg Heath
Greg Heath 2017 年 9 月 17 日
編集済み: Greg Heath 2017 年 9 月 17 日
I get two error messages:
clear all clc
%stoperr
%Undefined function or variable 'stoperr'.
[x,t] = iris_dataset;
net = patternnet(10);
net = train(net,x,t);
view(net)
y = net(x);
perf = perform(net,t,y);
classes = vec2ind(y);
% end
% Error: Illegal use of reserved keyword "end".
Hope this helps,
Greg

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by