Derin Öğrenme (Deep Learning) - Önemli Keras Araçları (Utils)
Model Detayları Görselleştirme (plot_model)
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ı: