Keras Functional API

Deep LearningKerasFree Lesson

Advertisement

Introduction

Keras Functional API enables building complex architectures with shared layers, multiple inputs, and outputs.

Basic Functional Model

from tensorflow import keras
from tensorflow.keras import layers

inputs = keras.Input(shape=(784,))
x = layers.Dense(64, activation='relu')(inputs)
x = layers.Dense(32, activation='relu')(x)
outputs = layers.Dense(10, activation='softmax')(x)

model = keras.Model(inputs=inputs, outputs=outputs, name='mnist_model')
model.summary()

Multiple Inputs/Outputs

# Multiple inputs
text_input = keras.Input(shape=(None,), dtype='int32', name='text')
image_input = keras.Input(shape=(28, 28, 1), name='image')

# Embedding for text
x1 = layers.Embedding(10000, 64)(text_input)
x1 = layers.GlobalAveragePooling1D()(x1)

# CNN for image
x2 = layers.Conv2D(32, 3, activation='relu')(image_input)
x2 = layers.GlobalAveragePooling2D()(x2)

# Concatenate
concatenated = layers.Concatenate()([x1, x2])
outputs = layers.Dense(10, activation='softmax')(concatenated)

model = keras.Model(inputs=[text_input, image_input], outputs=outputs)

Shared Layers

# Shared encoder for two inputs
shared_dense = layers.Dense(64, activation='relu')

input_a = keras.Input(shape=(784,), name='input_a')
input_b = keras.Input(shape=(784,), name='input_b')

encoded_a = shared_dense(input_a)
encoded_b = shared_dense(input_b)

merged = layers.Concatenate()([encoded_a, encoded_b])
outputs = layers.Dense(1)(merged)

model = keras.Model(inputs=[input_a, input_b], outputs=outputs)

Accessing Layer Outputs

# Get intermediate layer outputs
layer_output = model.get_layer('dense_1').output
intermediate_model = keras.Model(inputs=model.input, outputs=layer_output)

Practice Problems

  1. Build model with multiple inputs
  2. Create shared layer for twin network
  3. Access intermediate layer outputs
  4. Implement functional API with custom layers
  5. Combine CNN and RNN

Advertisement

Need Expert Python Help?

Get personalized tutoring, project support, or professional consulting.

Advertisement