Neural Network Toolbox | Search  Help Desk |
network | Examples See Also |
Create a custom neural network
net = network
net = network(numInputs,numLayers,biasConnect,inputConnect, layerConnect,outputConnect,targetConnect)
Type help network/network
network
creates new custom networks. It is used to create networks that are then customized by functions such as newp, newlin, newff
, etc.
network
takes these optional arguments (shown with default values):
numInputs -
Number of inputs, 0.
numLayers -
Number of layers, 0.
biasConnect - numLayers
-by-1 Boolean vector, zeros.
inputConnect - numLayers
-by-numInputs
Boolean matrix, zeros.
layerConnect - numLayers
-by-numLayers
Boolean matrix, zeros.
outputConnect -
1-by-numLayers
Boolean vector, zeros.
targetConnect -
1-by-numLayers
Boolean vector, zeros.
net -
New network with the given property values.
net.numInputs
: 0 or a positive integer.
Number of inputs.
net.numLayers
: 0 or a positive integer.
Number of layers.
net.biasConnect
: numLayer
-by-1 Boolean vector.
If net.biasConnect(i)
is 1 then the layer i
has a bias and net.biases{i
} is a structure describing that bias.
net.inputConnect
: numLayer
-by-numInputs
Boolean vector.
If net.inputConnect(i,j)
is 1 then layer i
has a weight coming from input j
and net.inputWeights{i,j}
is a structure describing that weight.
net.layerConnect
: numLayer-by-numLayers Boolean vector.
If net.layerConnect(i,j)
is 1 then layer i
has a weight coming from layer j and net.layerWeights{i,j}
is a structure describing that weight.
net.outputConnect
: 1-by-numLayers
Boolean vector.
If net.outputConnect(i)
is 1 then the network has an output from layer i
and net.outputs{i}
is a structure describing that output.
net.targetConnect
: 1-by-numLayers
Boolean vector.
If net.outputConnect(i)
is 1 then the network has a target from layer i
and net.targets{i}
is a structure describing that target.
net.numOutputs
: 0 or a positive integer. Read only.
Number of network outputs according to net.outputConnect
.
net.numTargets
: 0 or a positive integer. Read only.
Number of targets according to net.targetConnect
.
net.numInputDelays
: 0 or a positive integer. Read only.
Maximum input delay according to all net.inputWeight{i,j}.
delays.
net.numLayerDelays
: 0 or a positive number. Read only.
Maximum layer delay according to all net.layerWeight{i,j}.
delays.
net.inputs
: numInputs
-by-1 cell array.
net.inputs{i}
is a structure defining input i
:
net.layers
: numLayers
-by-1 cell array.
net.layers{i}
is a structure defining layer i
:
net.biases
: numLayers
-by-1 cell array.
If net.biasConnect(i)
is 1, then net.biases{i}
is a structure defining the bias for layer i
.
net.inputWeights
: numLayers
-by-numInputs
cell array.
If net.inputConnect(i,j)
is 1, then net.inputWeights{i,j}
is a structure defining the weight to layer i
from input j
.
net.layerWeights
: numLayers
-by-numLayers
cell array.
If net.layerConnect(i,j)
is 1, then net.layerWeights{i,j}
is a structure defining the weight to layer i
from layer j
.
net.outputs
: 1-by-numLayers
cell array.
If net.outputConnect(i)
is 1, then net.outputs{i}
is a structure defining the network output from layer i
.
net.targets
: 1-by-numLayers
cell array.
net.adaptFcn
: name of a network adaption function or ''
.
net.initFcn
: name of a network initialization function or ''
.
net.performFcn
: name of a network performance function or ''
.
net.trainFcn
: name of a network training function or ''
.
net.adaptParam
: network adaption parameters.
net.initParam
: network initialization parameters.
net.performParam
: network performance parameters.
net.trainParam
: network training parameters.
net.IW
: numLayers
-by-numInputs
cell array of input weight values.
net.LW
: numLayers
-by-numLayers
cell array of layer weight values.
net.b
: numLayers
-by-1 cell array of bias values.
net.userdata
: structure you can use to store useful values.
net = network net.numInputs = 1 net.numLayers = 2Here is the code to create the same network with one line of code.
net = network(1,2)Here is the code to create a 1 input, 2 layer, feed-forward network. Only the first layer will have a bias. An input weight will connect to layer 1 from input 1. A layer weight will connect to layer 2 from layer 1. Layer 2 will be a network output, and have a target.
net = network(1,2,[1;0],[1; 0],[0 0; 1 0],[0 1],[0 1])We can then see the properties of subobjects as follows:
net.inputs{1} net.layers{1}, net.layers{2} net.biases{1} net.inputWeights{1,1}, net.layerWeights{2,1} net.outputs{2} net.targets{2}We can get the weight matrices and bias vector as follows:
net.iw.{1,1}, net.iw{2,1}, net.b{1}We can alter the properties of any of these subobjects. Here we change the transfer functions of both layers:
net.layers{1}.transferFcn = 'tansig'; net.layers{2}.transferFcn = 'logsig';Here we change the number of elements in input 1 to 2, by setting each element's range:
net.inputs{1}.range = [0 1; -1 1];Next we can simulate the network for a 2-element input vector:
p = [0.5; -0.1]; y = sim(net,p)
sim