AN 1011: TinyML Applications in Altera FPGAs Using LiteRT for Microcontrollers

ID 848984
Date 4/07/2025
Public
Document Table of Contents

2.3.1. Constructing Model Architecture

Construct a LeNet-5 model (or any other CNN model).

# Construct a Sequential Model
model = tf.keras.Sequential()

# Input Layer
model.add(tf.keras.layers.Input(shape=input_shape))
# C1 Convolution Layer
model.add(tf.keras.layers.Conv2D(filters=6, strides=(1,1), kernel_size=(5,5), activation='relu'))
# S2 SubSampling Layer
model.add(tf.keras.layers.AveragePooling2D(pool_size=(2,2), strides=(2,2)))
# C3 Convolution Layer
model.add(tf.keras.layers.Conv2D(filters=6, strides=(1,1), kernel_size=(5,5), activation='relu'))
# S4 SubSampling Layer
model.add(tf.keras.layers.AveragePooling2D(pool_size=(2,2), strides=(2,2)))
# C5 Fully Connected Layer
model.add(tf.keras.layers.Dense(units=120, activation='relu'))
# Flatten Layer
model.add(tf.keras.layers.Flatten())
# FC6 Fully Connected Layer
model.add(tf.keras.layers.Dense(units=84, activation='relu'))
# Output Layer
model.add(tf.keras.layers.Dense(units=10, activation='softmax'))

# Display a Summary of the Model
model.summary()
Figure 2. Summary of the Model