Sequential API ve Functional API

TensorFlow, derin öğrenme modelleri oluşturmak için yaygın olarak kullanılan bir kütüphanedir. Model oluşturma sürecinde, Sequential API ve Functional API olmak üzere iki farklı yaklaşım sunar. Aşağıda python kodları üzerinden aralarındaki farkları inceleyeceğiz. Kodlara bu linkten ulaşabilirsiniz.

Sequential API

Sequential API, sıralı bir model oluşturmak için kullanılan basit ve doğrudan bir arayüz sunar. Birbirini takip eden sıralı katmanlardan model oluşturmayı sağlar. Genellikle Sequential API ile oluşturulan modelin yalnızca 1 girişi ve 1 çıkışı vardır.

seq_model = tf.keras.Sequential([
    tf.keras.layers.Dense(128, activation='relu', input_shape=(784,)),
    tf.keras.layers.Dropout(0.2),
    tf.keras.layers.Dense(10, activation='softmax')
])

seq_model.compile(optimizer='adam',
                  loss='sparse_categorical_crossentropy',
                  metrics=['accuracy'])

tf.keras.utils.plot_model(seq_model, 'sequential_model.png',  show_shapes=True)

Functional API

Functional API, daha karmaşık ve esnek model yapıları oluşturmak için kullanılan bir arayüzdür. Katmanları birbirine bağlamak için fonksiyonel bir model oluşturur. Dallanmış veya birleştirilmiş yapılar gibi karmaşık model yapıları oluşturmayı amaçlar. Modelin birden fazla giriş ve çıkışı olabilir. Bu API, kullanıcılara daha fazla kontrol ve esneklik sağlar ve daha karmaşık modellerin oluşturulmasına olanak tanır.

input1 = tf.keras.Input(shape=(784,))
x = tf.keras.layers.Dense(128, activation='relu')(input1)
b1 = tf.keras.layers.Dense(64, activation='relu')(x)

input2 = tf.keras.Input(shape=(784,))
x = tf.keras.layers.Dense(128, activation='relu')(input2)
b2 = tf.keras.layers.Dense(64, activation='relu')(x)

add_1 = tf.keras.layers.add([b1, b2])
x = tf.keras.layers.Dense(32, activation='relu')(add_1)
x = tf.keras.layers.Dropout(0.2)(x)
output = tf.keras.layers.Dense(10, activation='softmax')(x)

tf.keras.utils.plot_model(func_model, 'functional_model.png',  show_shapes=True)