• 0

 ما الفرق بين تمرير دالة التنشيط كوسيط أو استخدامها كطبقة Activation في كيراس Keras

 ما الفرق بين تمرير دالة التنشيط كوسيط كما في المثال التالي :

from tensorflow.keras import layers
model.add(layers.Dense(64, activation='relu'))

أو استخدامها كطبقة Activation مستقلة:

from tensorflow.keras import layers
from tensorflow.keras import activations
model.add(layers.Dense(64))
model.add(layers.Activation(activations.relu))


 

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 3

أولاً هذه الطبقة تمكننا من إضافة دالة التنشيط التي نريدها إلى نموذجنا تماماً كما في الشكل الذي أضفته، أما بالنسبة للفرق بين الطريقتين فلايوجد فرق من حيث المبدأ لكن الفرق يكون من حيث الاستخدام والهدف، فعندما تريد مثلاً تطبيق ال Bachnormlaization أو ال Layer Normlaization على قيم z فهنا أنت بحاجة لفصل التنشيط عن قيم ال z التي تنتجها الخلايا، لاحظ المثال التالي:

model = models.Sequential()
model.add(layers.Dense(64,input_shape=(10000,)))
model.add(keras.layers.LayerNormalization())
model.add(layers.Activation("relu"))
model.add(layers.Dense(64))
model.add(keras.layers.LayerNormalization())
model.add(layers.Activation("relu"))
model.add(layers.Dense(46, activation='softmax'))

وهنا أيضاً:

AlexNet.add(Conv2D(filters=256, kernel_size=(3,3), strides=(1,1), padding='same'))
AlexNet.add(BatchNormalization()) # هنا
AlexNet.add(Activation('relu'))
AlexNet.add(MaxPooling2D(pool_size=(2,2), strides=(2,2), padding='same'))
2 اشخاص أعجبوا بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن