Overview
Adding Layers
Adding a layer to a model is accomplished with the "add" function. THe following inputs are commonly used
- inputShape - the shape of the inputs. Generally, this is given as [numberOfInputs]. Note, if the layers added to the model are dense, only the first layer needs to specify the inputShape. That is because dense layers take all the outputs from the previous layers as inputs.
- activation - (optional) the activation function to apply to the outputs
- units - the number of outputs
const model = tf.sequential();
model.add(tf.layers.dense({inputShape:[10],units:5,activation:'relu'}));
model.add(tf.layers.dense({units:2,activation:'softmax'}));
Alternatively, the layers can be specified initially in an array.
const model = tf.sequential({
layers:[
tf.layers.dense({inputShape:[10],units:5,activation:'relu'}),
tf.layers.dense({units:2,activation:'softmax'}),
]
});
Try it!
The weights in each layer are initially randomized.
Removing the Bias
By default, tensor flow sequential models include a bias term. This can be turned off by including the following in the arguments to sequential.
{useBias: false}
Dropout Layers
Dropout layers are a technique for reducing overfitting. The dropout layer randomly deactivates a set of neurons of the prior layer during traning.
The following code adds a droput layer which will deactivate 40% of the prior layers neurons.
const model = tf.sequential({
layers:[
tf.layers.dense({inputShape:[10],units:5,activation:'relu'}),
tf.layers.dropout({ rate: 0.4 }),
tf.layers.dense({units:2,activation:'softmax'}),
]
});
Dropout reduces the computation load of a network by turning off some of the neurons. It is also thought the reduce
the problems that arise when two neurons are learning the same pattern.