matlabcommand-lineneural-networknntool

Using nntool [MATLAB] from command line


I have this code:

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

now I want to

How can these three things be done from command line?

[I know how these things can be done with nntool GUI]


Solution

  • Example:

    % 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')
    

    screenshot


    NOTE: In R2010b, newfit function was deprecated in favor of fitnet, use the following code instead to create the network:

    % old
    %net = newfit(in,out,5);
    
    % new
    net = fitnet(5);                   % create ANN
    net = configure(net, in, out);     % set input/output sizes according to data