Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

To resolve issues starting MATLAB on Mac OS X 10.10 (Yosemite) visit: http://www.mathworks.com/matlabcentral/answers/159016

Problems with a saved neural network

Asked by Harold on 29 Apr 2013

I've posted this question in another forum but decided to ask it here for a better chance at a response.

I'm having problems passing a neural network as a handle through a pushbutton callback. I use a menu to select the neural network file (mat file that was saved from a previous successful training session) and save this network as handles.neural_net = load('trained_net.mat'). Upon clicking the run neural network button, the network is run by netfunc(handles.neural_net, inputs,targets) where I've already specified the inputs and targets in the program. I get an error pointing within netfunc.m.

To make sure data was getting passed in, right under the function header within netfunc I put,

net inputs targets

The error points to the variable net. The size of net is 1x1. This is confusing because after the successful training run, I saved the network. I used save('trained_network.mat','net').

0 Comments

Harold

Products

No products are associated with this question.

1 Answer

Answer by Walter Roberson on 29 Apr 2013
Accepted answer
trained_net_vars = load('trained_net.mat');
handles.neural_net = trained_net_vars.net;

3 Comments

Harold on 29 Apr 2013

Why doesn't this work?

handles.neural_net = load('trained_net.mat')
Walter Roberson on 30 Apr 2013

http://www.mathworks.com/help/matlab/ref/load.html

S = load(filename) loads the variables from a MAT-file into a structure array, or data from an ASCII file into a double-precision array.

You are working with a .mat file, so the output is a structure array. There will be one field in the structure array for each variable that was originally saved in the file. You saved (only) the variable 'net' in the file, so the structure array will have a field ".net" that contains the saved information. When you assign that structure array to handles.neural_net you are getting out the structure handles.neural_net.net containing the saved information rather than handles.neural_net itself containing the saved information.

Harold on 30 Apr 2013

Ok, thank you.

Walter Roberson

Contact us