Main Content


Initialize neural network



init_net = init(net) returns a neural network net with weight and bias values updated according to the network initialization function, specified by net.initFcn, and the parameter values, specified by net.initParam.

For more information on this function, at the MATLAB command prompt, type help network/init.


collapse all

This example shows how to reinitialize a perceptron network by using the init function.

Create a perceptron and configure it so that its input, output, weight, and bias dimensions match the input and target data.

x = [0 1 0 1; 0 0 1 1];
t = [0 0 0 1];
net = perceptron;
net = configure(net,x,t);

Train the perceptron to alter its weight and bias values.

net = train(net,x,t);

init reinitializes those weight and bias values.

net = init(net);

The weights and biases are zeros again, which are the initial values used by perceptron networks.

Input Arguments

collapse all

Input network, specified as a network object. To create a network object, use for example, feedforwardnet or narxnet.

Output Arguments

collapse all

Network after the init reinitialization, returned as a network object.


init calls net.initFcn to initialize the weight and bias values according to the parameter values net.initParam.

Typically, net.initFcn is set to 'initlay', which initializes each layer’s weights and biases according to its net.layers{i}.initFcn.

Backpropagation networks have net.layers{i}.initFcn set to 'initnw', which calculates the weight and bias values for layer i using the Nguyen-Widrow initialization method.

Other networks have net.layers{i}.initFcn set to 'initwb', which initializes each weight and bias with its own initialization function. The most common weight and bias initialization function is rands, which generates random values between –1 and 1.

Version History

Introduced before R2006a

See Also

| | | | | | |