← Back to Python

All Topics

Advertisement

Learn/Python/Deep Learning

Keras Functional API

Topic: Keras

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

Advertisement

Need More Practice?

Get personalized Python help from ChatWhole's AI-powered platform.

Get Expert Help →