network
Purpose
Create custom neural network
Syntax
net = network
net = network(numInputs,numLayers,biasConnect,inputConnect,
layerConnect,outputConnect)
To Get Help
Type help network/network.
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
|
outputConnect
|
1-by-numLayers Boolean vector, zeros
|
and returns
net
|
New network with the given property values
|
Properties
Architecture Properties
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 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.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 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.numOutputs
|
0 or a positive integer (read only)
|
Number of network outputs according to net.outputConnect.
|
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.
|
Subobject Structure Properties
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.
|
Function Properties
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 ''
|
Parameter Properties
net.adaptParam
|
Network adaption parameters
|
net.initParam
|
Network initialization parameters
|
net.performParam
|
Network performance parameters
|
net.trainParam
|
Network training 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
|
net.b
|
numLayers-by-1 cell array of bias values
|
Other Properties
net.userdata
|
Structure you can use to store useful values
|
Examples
Here is the code to create a network without any inputs and layers, and then set its numbers of inputs and layers 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 one-input, two-layer, feed-forward network. Only the first layer has a bias. An input weight connects to layer 1 from input 1. A layer weight connects to layer 2 from layer 1. Layer 2 is a network output and has a target.
net = network(1,2,[1;0],[1; 0],[0 0; 1 0],[0 1])
You can 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}
You can get the weight matrices and bias vector as follows:
net.iw.{1,1}, net.iw{2,1}, net.b{1}
You can alter the properties of any of these subobjects. Here you change the transfer functions of both layers:
Here you change the number of elements in input 1 to 2 by setting each element's range:
Next you can simulate the network for a two-element input vector:
See Also
sim
| | Provide feedback about this page |
 | netsum | | newc |  |
Includes the most popular MATLAB recorded presentations with Q&A sessions led by MATLAB experts.
Get the Interactive Kit