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.
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)
Pass the test and this pattern moves unknown