Derin Öğrenme (Deep Learning) - Önemli Keras Araçları (Utils)

Model Detayları Görselleştirme (plot_model)

Yayın tarihi :10-Mar-22
Bölüm kodlarını ve/veya veri setlerini indir.

plot_model, oluşturulan Keras modelini görselleştirmek ve görseli kaydedebilmek için kullanılan bir araçtır.

Bunun için ilk olarak işletim sistemine uygun olan graphviz uygulamasının indirilerek bilgisayara kurulması gerekmektedir. Graphviz resmi sayfası için tıklayınız.

Python projelerinde kullanılabilmesi için "plot_model" kütüphanesinin içe aktarılması gerekmektedir.

from tensorflow.keras.utils import plot_model

Söz dizimi: plot_model(model, to_file='model.png', show_shapes=False, show_dtype=False, show_layer_names=True, rankdir='TB', expand_nested=False, dpi=96, layer_range=None, show_layer_activations=False)

  • model, Keras tarafından oluşturulan modeli temsil etmektedir.
  • to_file, görselleştirilen modeli kaydetmek için kullanılacak ismi temsil etmektedir.
  • show_shapes, şekil bilgilerinin görüntülenip görüntülenmeyeceğini temsil etmektedir
  • show_dtype, modele eklenen katmanların tiplerininin gösterilip gösterilmeyeceğini temsil etmektedir.
  • show_layer_names, modele eklenen katmanların isimlerinin gösterilip gösterilmeyeceğini temsil etmektedir.
  • rankdir, görselleştirilmenin yatay vaya dikey olarak seçilebilmesini temsil etmektedir. 2 farklı değer alabilir, "TB"(dikey) ve "LR"(yatay). Varsayılan olarak "TB" dir.
  • expand_nested, .ç içe geçmiş modellerin kümelere genişletilip genişletilmeyeceğini temsil etmektedir.
  • dpi, görüntü kalitesini temsil etmektedir.
  • layer_range, modele eklenen katmanların hangi aralıkta görselleştirileceğini temsil etmektedir. (Örn, layer_range=(Dense_1,Dense_3),  burada 1 ve 3. katman aralığında olan katmanları görselleştirecektir.)
  • show_layer_activations, modele eklenen katmanın aktivasyon fonksiyonu varsa onun adınının gösterilip gösterilmeyeceğini temsil etmektedir.

Örnek-1: Basit bir model ve modele yeni katmanlar ekleyerek görselleştirme işlemi yapalım.

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense,Dropout
from tensorflow.keras import activations

from tensorflow.keras.utils import plot_model
#Model oluşturma ve katman ekleme işlemleri
model=Sequential()
model.add(Dense(16,activation=activations.relu,input_shape=(6,)))
model.add(Dropout(rate=.2))
model.add(Dense(8,activation=activations.relu))
model.add(Dropout(rate=.2))
model.add(Dense(4,activation=activations.relu))
model.add(Dense(1,activation=activations.softmax))

Modelin özetini inceleyelim;

model.summary()

Çıktı:

Model: "sequential"
_________________________________________________________________
 Layer (type)                Output Shape              Param #   
=================================================================
 dense (Dense)               (None, 16)                112       
                                                                 
 dropout (Dropout)           (None, 16)                0         
                                                                 
 dense_1 (Dense)             (None, 8)                 136       
                                                                 
 dropout_1 (Dropout)         (None, 8)                 0         
                                                                 
 dense_2 (Dense)             (None, 4)                 36        
                                                                 
 dense_3 (Dense)             (None, 1)                 5         
                                                                 
=================================================================
Total params: 289
Trainable params: 289
Non-trainable params: 0

Modelin özetini görselleştirmek için de plot_model kullanalım.

plot_model(
    model=model,
    to_file="model.png",
    show_shapes=True,
    show_dtype=True,
    show_layer_activations=True,
    dpi=96
    )

Çıktı:

Örnek-2: Aynı modeli yatay olarak ve katmanları filtreleyerek gözlemleyelim.

plot_model(
    model=model,
    to_file="model2.png",
    show_shapes=True,
    rankdir="LR",
    layer_range=("dense","dropout_1")
    )

Çıktı:

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.