4

私はこのコードを持っています:

in = [5 columns of data-points];
out = [1 column of data-points];
net = newfit(in,out,5);
net = train(net,in,out);

今私はしたい

  • 生成されたエラー変数にアクセスします(平均エラーなどを計算できるようにするため)
  • これをループで実行するので、ループ間の重みを再初期化します。
  • 実行にかかった時間を格納する変数にアクセスします

これらの3つのことをコマンドラインからどのように実行できますか?

[私はこれらのことがnntoolGUIでどのように行われるかを知っています]

4

1 に答える 1

4

例:

% 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
于 2009-11-04T13:59:17.937 に答える