ยป Keras API reference / Models API / The Sequential class

The Sequential class

Sequential class

tf.keras.Sequential(layers=None, name=None)

Sequential groups a linear stack of layers into a tf.keras.Model.

Sequential provides training and inference features on this model.

Examples

>>> # Optionally, the first layer can receive an `input_shape` argument:  
>>> model = tf.keras.Sequential()
>>> model.add(tf.keras.layers.Dense(8, input_shape=(16,)))
>>> # Afterwards, we do automatic shape inference:  
>>> model.add(tf.keras.layers.Dense(4))

>>> # This is identical to the following:  
>>> model = tf.keras.Sequential()
>>> model.add(tf.keras.Input(shape=(16,)))
>>> model.add(tf.keras.layers.Dense(8))

>>> # Note that you can also omit the `input_shape` argument.  
>>> # In that case the model doesn't have any weights until the first call  
>>> # to a training/evaluation method (since it isn't yet built):  
>>> model = tf.keras.Sequential()
>>> model.add(tf.keras.layers.Dense(8))
>>> model.add(tf.keras.layers.Dense(4))
>>> # model.weights not created yet  

>>> # Whereas if you specify the input shape, the model gets built  
>>> # continuously as you are adding layers:  
>>> model = tf.keras.Sequential()
>>> model.add(tf.keras.layers.Dense(8, input_shape=(16,)))
>>> model.add(tf.keras.layers.Dense(4))
>>> len(model.weights)
4

>>> # When using the delayed-build pattern (no input shape specified), you can  
>>> # choose to manually build your model by calling  
>>> # `build(batch_input_shape)`:  
>>> model = tf.keras.Sequential()
>>> model.add(tf.keras.layers.Dense(8))
>>> model.add(tf.keras.layers.Dense(4))
>>> model.build((None, 16))
>>> len(model.weights)
4

# Note that when using the delayed-build pattern (no input shape specified),
# the model gets built the first time you call `fit`, `eval`, or `predict`,
# or the first time you call the model on some input data.
model = tf.keras.Sequential()
model.add(tf.keras.layers.Dense(8))
model.add(tf.keras.layers.Dense(1))
model.compile(optimizer='sgd', loss='mse')
# This builds the model for the first time:
model.fit(x, y, batch_size=32, epochs=10)

add method

Sequential.add(layer)

Adds a layer instance on top of the layer stack.

Arguments

  • layer: layer instance.

Raises

  • TypeError: If layer is not a layer instance.
  • ValueError: In case the layer argument does not know its input shape.
  • ValueError: In case the layer argument has multiple output tensors, or is already connected somewhere else (forbidden in Sequential models).

pop method

Sequential.pop()

Removes the last layer in the model.

Raises

  • TypeError: if there are no layers in the model.