MATLAB: How to compile a pre-trained neural network into a standalone application using the MATLAB Compiler 4.10 (R2009a)

Deep Learning ToolboxMATLAB Compilerpretrained

The MATLAB Compiler 4.10 (R2009a) support for MATLAB and Toolboxes at the following web-link suggests that I can compile a pre-trained neural network:
<http://www.mathworks.com/products/compiler/compiler_support.html>

Best Answer

The following script sets up the creation of a pre-trained network and stores it in a MAT-file ('pre_trained_net.mat').
clc
clear all
close all
P = [1 2 3 4 5];
T = [1 2 3 4 3];
net = newff(P,T,5);
net.trainParam.epochs = 50;
net = train(net,P,T);
save pre_trained_net net
The following function utilizing the pre-trained network can be compiled into a stand-alone application:
function compiled_network(input)
% Include Neural Network Toolbox dependencies.
% web([docroot '/toolbox/compiler/function.html'])
%#function network
% Load data.
load pre_trained_net
if ischar(input)
input=str2num(input);
end
output = sim(net,input)
plot(input,output,'o')
The following command may be used to compile the above function into a stand-alone application:
mcc -m compiled_network
The compiled application may be called from the system command line as follows to generate output for new input:
compiled_network([1,2,3,4,5])
For your convenience, find attached 'pre_trained_net.mat' and 'compiled_network.exe'. The executable was compiled using MATLAB Compiler 4.10 (R2009a) on Windows XP. These files can always be created as described earlier.