Contents

network

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 feedforwardnet and narxnet.

net = network without arguments returns a new neural network with no inputs, layers or outputs.

net = network(numInputs,numLayers,biasConnect,inputConnect,layerConnect,outputConnect) 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.

net = network
net.numInputs = 1
net.numLayers = 2

Here is the code to create the same network with one line of code.

net = network(1,2)

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:

net.layers{1}.transferFcn = 'tansig';
net.layers{2}.transferFcn = 'logsig';

Here you 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 you can simulate the network for a two-element input vector:

p = [0.5; -0.1];
y = sim(net,p)

See Also

Was this topic helpful?