0
我試圖用nprtool訓練一個神經網絡,並手動調用newpr和train方法。 我用定向行的樣品,而不是默認爲列:Matlab:神經網絡訓練的問題
使用nprtool是沒有問題的,但是當我打電話到自動生成的M文件,輸出是:
??? Error using ==> network.train at 145
Targets are incorrectly sized for network.
Matrix must have 24 columns.
Error in ==> create_pr_net at 29
[net,tr] = train(net,inputs,targets);
我的投入是140x24,我的目標是140x3。
利用Matlab生成的代碼是:
function net = create_pr_net(inputs,targets)
%CREATE_PR_NET Creates and trains a pattern recognition neural network.
%
% NET = CREATE_PR_NET(INPUTS,TARGETS) takes these arguments:
% INPUTS - RxQ matrix of Q R-element input samples
% TARGETS - SxQ matrix of Q S-element associated target samples, where
% each column contains a single 1, with all other elements set to 0.
% and returns these results:
% NET - The trained neural network
%
% For example, to solve the Iris dataset problem with this function:
%
% load iris_dataset
% net = create_pr_net(irisInputs,irisTargets);
% irisOutputs = sim(net,irisInputs);
%
% To reproduce the results you obtained in NPRTOOL:
%
% net = create_pr_net(inputs,targets);
% Create Network
numHiddenNeurons = 2000; % Adjust as desired
net = newpr(inputs,targets,numHiddenNeurons);
net.divideParam.trainRatio = 90/100; % Adjust as desired
net.divideParam.valRatio = 5/100; % Adjust as desired
net.divideParam.testRatio = 5/100; % Adjust as desired
% Train and Apply Network
[net,tr] = train(net,inputs,targets);
outputs = sim(net,inputs);
% Plot
plotperf(tr)
plotconfusion(targets,outputs)
我使用Matlab的R2010a版本。
謝謝。
我做到了,但結果是不一樣的。我不知道爲什麼。 –
結果不一樣,意味着它可以編譯?結果可能取決於輸入和目標的預處理; nprtool可以做一個祕密規範化。只是猜測。 –