اذهب إلى المحتوى
  • 0

معرفة عدد المعاملات parameters في النموذج في Keras

Meezo ML

السؤال

Recommended Posts

  • 4

يمكنك معرفة ذلك من خلال التعليمة التالية:

model.count_params()

مثال:

model = Sequential()
model.add(Embedding(1000, 50, input_length=30, trainable=True))
model.add(GRU(150, recurrent_dropout=0.1, dropout=0.1))
model.add(Dense(10, activation='softmax'))
model.count_params() #142410

ويمكنك أيضاً استخدام:

model.summary()

حيث تعطيك الطريقة الثانية ملخص كامل عن الطبقات الموجودة في نموذجك وعدد المعاملات في كل منها وأبعاد كل طبقة والمعاملات القابلة للتدريب والغير قابلة للتدريب.

# مثال
model = Sequential()
model.add(Embedding(1000, 50, input_length=30, trainable=True))
model.add(GRU(150, recurrent_dropout=0.1, dropout=0.1))
model.add(Dense(10, activation='softmax'))
model.summary()
Model: "sequential_2"
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
embedding_1 (Embedding)      (None, 30, 50)            50000     
_________________________________________________________________
gru_1 (GRU)                  (None, 150)               90900     
_________________________________________________________________
dense (Dense)                (None, 10)                1510      
=================================================================
Total params: 142,410
Trainable params: 142,410
Non-trainable params: 0
_________________________________________________________________

 

تم التعديل في بواسطة Ali Haidar Ahmad
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

توفر لك ال models دالة جاهزة لهذه الوظيفة وهي

model.count_params()

كما يمكنك الحصول على ملخص لل parameters  من خلال هذه الدالة

model.summary()

 

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

  • 0

إذا كنت تقصد عدد المعاملات المتاحة التي يمكنك التغيير فيها لأي نموذج يمكن فعل ذلك بإستخدام دالة get_params() والتي تعطي كل المعاملات المتوفرة التي يمكن تمريرها للنموذج و التعديل فيها.

reg = RandomForestRegressor()
params = reg.get_params()

مثلاً هنا إستخدمنا الدالة لمعرفة المعاملات التي يستقبلها reg model والذي هو عبارة عن RandomForestRegressor. كما يمكن أيضاً إستخدام inspect والتي تقوم ايضاً بتوفير المعاملات حتى في حالة عدم إنشاء النموذج:

import inspect
import sklearn

models = [sklearn.linear_model.LinearRegression]
for m in models:
    hyperparams = inspect.signature(m.__init__)
    print(hyperparams)

لاحظ أننا قمنا بنداء inspect للنموذج بإستخدام دالة الconstructor وبالتالي ستخبرنا الدالة constructor عن القيم الموجودة بداخلها، والنتيجة تصبح:

(self, fit_intercept=True, normalize=False, copy_X=True, n_jobs=None)

 

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

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...