Derin Öğrenme (Deep Learning) - Keras Modelleri

Sequential API Model (Sıralı API Modeli)

Yayın tarihi :15-Şub-22

Yapay sinir ağları temelde bir giriş katmanı, gizli katman(lar) ve bir çıkış katmanından oluşur. Her katmanda belirli sayıda düğüm (nöron)'dan oluşur. Keras ile yapay sinir ağlarını oluştumak için iki yol mevcuttur. Bunlardan birincisi ve kullanımı basit olanı "Sequential API (Sıralı API)"dir.

Oluşturulmak istenen model sıralı bir şelilde katman katman şeklinde oluşturulur. Modelin girdisi(input) tek yerden geliyorsa, çıktısı(output) tek yere gidiyorsa ve katmanlar başka modeler tarafından kullanılmıyorsa burada Sequential API (Sıralı API) kullanılabilir. 

Kullanabilmek için "Sequential" kütüphanesinin içe aktarılması gerekmektedir.

from tensorflow.keras.models import Sequential

Söz dizimi: Sequential(layers=None, name=None)

Oluşturulan modele "add()" komutu ile istenilen sayıda katman(layer) eklenebilir. Katman sayısının çok olması elde edilecek hedef(tahmin) sonucunun daha iyi olacağı anlamına gelmemektedir. Hatta bazı durumlarda başarı yüzdesinin düştüğü de gözlemlenebilir. Katman sayısının çok olmasının diğer dezavantajı modeli eğitmek için yüksek performans gerektirecek bilgisayarlara ihtiyacın artması olacaktır.

Eklenen katmanda ne kadar düğüm(nöron) olacağı konusunda net bir durum bulunmamaktadır Sıkça kullanılan 2 yöntem uygulanabilir;

  • (önceki katmandaki düğüm sayısı + sonraki katmandaki düğüm sayısı)/2 
  • √(önceki katmandaki düğüm sayısı + sonraki katmandaki düğüm sayısı)  

Grafik üzerinden Sequential modeli inceleyelim; Modelimizde;

  • Giriş değişken sayısı 10 (input_shape)
  • 1. Gizli layer nöron sayısı 6
  • 2. Gizli layer nöron sayısı 4
  • Çıkış değişken sayısı 1

İlk olarak "Sequential" modelini, eklenecek katmanın özelliklerini belirtmek için "Dense" kütüphanesini ve modeli görselleştirmek için de Keras araçlarından plot_model'i içe aktarılır. 

#Gerekli kütüphaneler
from tensorflow.keras import Sequential
from tensorflow.keras.layers import Dense
from tensorflow.keras.utils import plot_model

 Sequential modelini tanımlanır.

#Sequential model tanımlaması
model = Sequential()

 Oluşturulan modele katmanlar ekleme işlemi uygulanır.

#Modele add komutu ile yeni Katmanlar(Layers) eklendi
#1.Gizli katman ve input_shape ile giriş katmanı tanımlama
model.add(Dense(6,input_shape=(10,),name="Gizli_Katman_1"))

#2.Gizli katman
model.add(Dense(4,name="Gizli_Katman_2"))

#Çıktı katmanı
model.add(Dense(1,name="Cikis_Katmani"))

Model oluşturuldu ve giriş katmanı, gizli katmanlar ve çıkış katmanı tanımlandı. Modelde bulunan her katmanının adı, katmanların çıktı şekilleri ve her katmandaki parametre sayısı dahil olmak üzere tüm model özellikleri görüntüleyebilmek için summary() komutu kullanılır.

#Modelin özet bilgileri
model.summary()

Çıktı:

Model: "sequential"
_________________________________________________________________
 Layer (type)                Output Shape              Param #   
=================================================================
 Gizli_Katman_1 (Dense)      (None, 6)                 66        
                                                                 
 Gizli_Katman_2 (Dense)      (None, 4)                 28        
                                                                 
 Cikis_Katmani (Dense)       (None, 1)                 5         
                                                                 
=================================================================
Total params: 99
Trainable params: 99
Non-trainable params: 0
#Modeli grafik görselleştirme yazılımı Graphviz ile çizdirelim.
plot_model(model,show_shapes=True)

Çıktı:

Modelin son durumdaki görseline şematik görseline de bakacak olursak;

Paylaş:

Yorum Yap (*Yorumunuza kod eklemek isterseniz Kod Parçacığı Ekle butonuna tıklayarak ekleyebilirsiniz.)

Yorumlar

Henüz hiç yorum yapılmamış, ilk yorum yapan sen ol.