Sequential Models#
Simple, layer-by-layer model examples.
LeNet#
A classic LeNet architecture for digit recognition. This is the foundational CNN architecture from the 1990s:
import tensorflow as tf
from tensorflow import keras
import visualkeras
model = keras.Sequential([
keras.layers.Input(shape=(28, 28, 1)),
keras.layers.Conv2D(6, (5, 5), activation='tanh'),
keras.layers.MaxPooling2D((2, 2)),
keras.layers.Conv2D(16, (5, 5), activation='tanh'),
keras.layers.MaxPooling2D((2, 2)),
keras.layers.Flatten(),
keras.layers.Dense(120, activation='tanh'),
keras.layers.Dense(84, activation='tanh'),
keras.layers.Dense(10, activation='softmax')
])
visualkeras.layered_view(model).show()
LeNet with Visual Spacing#
Add SpacingDummyLayer to create visual breaks between architectural components:
model = keras.Sequential([
keras.layers.Input(shape=(28, 28, 1)),
# Feature extraction blocks
keras.layers.Conv2D(6, (5, 5), activation='tanh'),
keras.layers.MaxPooling2D((2, 2)),
keras.layers.Conv2D(16, (5, 5), activation='tanh'),
keras.layers.MaxPooling2D((2, 2)),
visualkeras.SpacingDummyLayer(), # Visual break
# Classification section
keras.layers.Flatten(),
keras.layers.Dense(120, activation='tanh'),
keras.layers.Dense(84, activation='tanh'),
keras.layers.Dense(10, activation='softmax')
])
visualkeras.layered_view(
model,
type_ignore=[visualkeras.SpacingDummyLayer]
).show()
Autoencoder#
A simple autoencoder for unsupervised learning:
import tensorflow as tf
from tensorflow import keras
import visualkeras
model = keras.Sequential([
keras.layers.Input(shape=(784,)),
# Encoder
keras.layers.Dense(512, activation='relu'),
keras.layers.Dense(256, activation='relu'),
keras.layers.Dense(128, activation='relu'),
keras.layers.Dense(64, activation='relu'),
# Bottleneck
keras.layers.Dense(32, activation='relu'),
# Decoder
keras.layers.Dense(64, activation='relu'),
keras.layers.Dense(128, activation='relu'),
keras.layers.Dense(256, activation='relu'),
keras.layers.Dense(512, activation='relu'),
keras.layers.Dense(784, activation='sigmoid')
])
visualkeras.layered_view(model).show()
Dense Network#
A simple fully-connected dense network for classification:
model = keras.Sequential([
keras.layers.Input(shape=(30,)),
keras.layers.Dense(64, activation='relu'),
keras.layers.Dropout(0.2),
keras.layers.Dense(32, activation='relu'),
keras.layers.Dropout(0.2),
keras.layers.Dense(16, activation='relu'),
keras.layers.Dense(1, activation='sigmoid')
])
visualkeras.layered_view(model).show()
See Also#
CNN Models for convolutional architectures
Functional Models for complex multi-path models
LeNet View for LeNet-style feature map visualizations
Tutorials for tutorials