Использование nntool [MATLAB] из командной строки
У меня есть этот код:
in = [5 columns of data-points];
out = [1 column of data-points];
net = newfit(in,out,5);
net = train(net,in,out);
теперь я хочу
- получить доступ к сгенерированной переменной ошибки (чтобы я мог рассчитать среднюю ошибку и т. д.)
- запустите это в цикле, поэтому я хочу повторно инициализировать веса между циклами.
- получить доступ к переменной, которая хранит время, необходимое для запуска
Как эти три вещи можно сделать из командной строки?
[Я знаю, как это можно сделать с nntool
GUI]
1 ответ
Решение
Пример:
% some random data
in = rand(100,5)';
out = rand(100,1)';
% create a feed-forward back-propagation neural network
% (1 hidden layer with 5 neurons)
net = newfit(in,out,5);
net.trainParam.showWindow = 0; % dont show GUI
% repeat 10 times
rmse = [];
t = [];
for i=1:10
net = init(net); % initialize network weights
tic
net = train(net,in,out); % train
predicted = sim(net, in); % test
t(i) = toc;
r = (out - predicted); % residuals
rmse(i) = sqrt(mean(r.^2)); % root mean square error
end
% plot errors and elapsed times
bar([t; rmse]', 'grouped'), xlabel('Runs')
legend({'Elapsed Time' 'RMSE'}, 'orientation','horizontal')
ПРИМЕЧАНИЕ: в R2010b, newfit
функция устарела в пользу fitnet
вместо этого используйте следующий код для создания сети:
% old
%net = newfit(in,out,5);
% new
net = fitnet(5); % create ANN
net = configure(net, in, out); % set input/output sizes according to data