MATLAB Answers


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


Log in to comment.

1 Answer

Answer by Walter Roberson
on 29 Apr 2013
 Accepted Answer

trained_net_vars = load('trained_net.mat');
handles.neural_net =;


Why doesn't this work?

handles.neural_net = load('trained_net.mat')

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 containing the saved information rather than handles.neural_net itself containing the saved information.

Ok, thank you.

Log in to comment.

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today