Introduction
The Functional API lets you build flexible machine learning models by connecting layers like building blocks. It helps create models with multiple inputs or outputs easily.
Jump into concepts and practice - no test required
from tensorflow.keras.layers import Input, Dense from tensorflow.keras.models import Model inputs = Input(shape=(input_size,)) x = Dense(units, activation='relu')(inputs) outputs = Dense(output_size, activation='softmax')(x) model = Model(inputs=inputs, outputs=outputs)
inputs = Input(shape=(10,)) x = Dense(32, activation='relu')(inputs) outputs = Dense(1, activation='sigmoid')(x) model = Model(inputs, outputs)
import tensorflow as tf input1 = Input(shape=(20,)) input2 = Input(shape=(5,)) x1 = Dense(16, activation='relu')(input1) x2 = Dense(8, activation='relu')(input2) concat = tf.keras.layers.concatenate([x1, x2]) outputs = Dense(3, activation='softmax')(concat) model = Model([input1, input2], outputs)
import tensorflow as tf from tensorflow.keras.layers import Input, Dense from tensorflow.keras.models import Model import numpy as np # Define input shape inputs = Input(shape=(4,)) # Add a hidden layer x = Dense(8, activation='relu')(inputs) # Output layer for 3 classes outputs = Dense(3, activation='softmax')(x) # Create the model model = Model(inputs=inputs, outputs=outputs) # Compile the model model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy']) # Generate some random data x_train = np.random.random((100, 4)) y_train = np.random.randint(0, 3, 100) # Train the model history = model.fit(x_train, y_train, epochs=3, batch_size=10, verbose=0) # Make predictions on new data x_test = np.random.random((5, 4)) predictions = model.predict(x_test) # Print predictions print(predictions)
inputs = tf.keras.Input(shape=(10,)) x = tf.keras.layers.Dense(5)(inputs) outputs = tf.keras.layers.Dense(2)(x) model = tf.keras.Model(inputs, outputs) print(model.output_shape)
inputs = tf.keras.Input(shape=(8,)) x = tf.keras.layers.Dense(4)(inputs) outputs = tf.keras.layers.Dense(1)(inputs) model = tf.keras.Model(inputs=inputs, outputs=outputs)