Neural Network Toolbox |
Create a custom neural network
Syntax
net = network(numInputs,numLayers,biasConnect,inputConnect, layerConnect,outputConnect,targetConnect)
To Get Help
Description
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
Properties
net.numInputs
: 0 or a positive integer.
net.numLayers
: 0 or a positive integer.
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.
net.numTargets
: 0 or a positive integer. Read only.
Subobject structure properties:
net.inputs
: numInputs
-by-1 cell array.
net.layers
: numLayers
-by-1 cell array.
net.biases
: numLayers
-by-1 cell array.
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.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.adaptParam
: network adaption parameters.
net.initParam
: network initialization parameters.
Weight and bias value properties:
net.IW
: numLayers
-by-numInputs
cell array of input weight values.
net.LW
: numLayers
-by-numLayers
cell array of layer weight values.
Examples
Here is the code to create a network without any inputs and layers, and then set its number of inputs and layer to 1 and 2 respectively.
Here is the code to create the same network with one line of code.
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.
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:
We can alter the properties of any of these subobjects. Here we change the transfer functions of both layers:
Here we change the number of elements in input 1 to 2, by setting each element's range:
Next we can simulate the network for a two-element input vector:
See Also
netsum | newc |
© 1994-2005 The MathWorks, Inc.