Create custom shallow neural network – MATLAB network

To learn how to create a deep learning network, see Specify Layers of Convolutional Neural Network .

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

network creates new custom networks. It is used to create networks that are then customized by functions such as feedforwardnet and narxnet .

Structure you can use to store useful values

If net.outputConnect(i) is 1, then net.outputs{i} is a structure defining the network output from layer i .

If net.layerConnect(i,j) is 1, then net.layerWeights{i,j} is a structure defining the weight to layer i from layer j .

If net.inputConnect(i,j) is 1, then net.inputWeights{i,j} is a structure defining the weight to layer i from input j .

If net.biasConnect(i) is 1, then net.biases{i} is a structure defining the bias for layer i .

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.

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.

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.

If net.biasConnect(i) is 1, then layer i has a bias, and net.biases{i} is a structure describing that bias.

Alternatively, you can create the same network with one line of code.

This example shows how to create a network without any inputs and layers, and then set its numbers of inputs and layers to 1 and 2 respectively.

Create Feedforward Network and View Properties

This example shows how to create a one-input, two-layer, feedforward 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 view the network subobjects with the following code.

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 alter the properties of any of the network subobjects. This code changes the
transfer functions of both layers:

net.layers{1}.transferFcn = 

'tansig'

; net.layers{2}.transferFcn =

'logsig'

;

You can view the weights for the connection from the first input to the first layer as
follows. The weights for a connection from an input to a layer are stored in
net.IW. If the values are not yet set, these result is empty.

net.IW{1,1}

You can view the weights for the connection from the first layer to the second layer as
follows. Weights for a connection from a layer to a layer are stored in
net.LW. Again, if the values are not yet set, the result is empty.

net.LW{2,1}

You can view the bias values for the first layer as follows.

net.b{1}

To change the number of elements in input 1 to 2, set each element’s range:

net.inputs{1}.range = [0 1; -1 1];

To simulate the network for a two-element input vector, the code might look like
this:

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