- نظرة عامة على برنامج Keras التعليمي
- 1. تحميل البيانات
- 2. تحديد نموذج Keras
- 3. تجميع نموذج Keras
- 4. تطبيق نموذج كيراس
- 5. تقييم نموذج Keras
- 6.ربط كل شيء معا
- 7. عمل التوقعات
- ملخص برنامج Keras التعليمي
Keras هي مكتبة بايثون مفتوحة المصدر قوية وسهلة الاستخدام لتطوير وتقييم نماذج التعلم العميق.
انه جزء من مكتبة TensorFlow ويسمح لك بتعريف وتدريب نماذج الشبكة العصبية في بضعة أسطر من التعليمات البرمجية.
في هذا البرنامج التعليمي، سوف تكتشف كيفية إنشاء أول نموذج شبكة عصبية للتعلم العميق في Python باستخدام Keras.
نظرة عامة على برنامج Keras التعليمي
لا يوجد الكثير من التعليمات البرمجية المطلوبة، لكننا سنتجاوزها ببطء حتى تعرف كيفية إنشاء نماذجك الخاصة في المستقبل.
الخطوات التي ستتعلمها في هذا البرنامج التعليمي هي كما يلي:
- تحميل البيانات (Load Data).
- تحديد نموذج Keras (Define Keras Model).
- تجميع نموذج Keras (Compile Keras Model).
- ملاءمة نموذج Keras (Fit Keras Model).
- تقييم نموذج Keras (Evaluate Keras Model).
- ربط كل شيء معًا (Tie It All Together).
- عمل التنبؤات (Make Predictions).
يقدم برنامج Keras التعليمي هذا بعض الافتراضات. سوف تحتاج إلى:
- تثبيت Python 2 أو 3 وتكوينه.
- تم تثبيت SciPy (بما في ذلك NumPy) وتكوينه.
- تم تثبيت وتهيئة Keras والواجهة الخلفية (backend) (Theano أو TensorFlow).
1. تحميل البيانات
الخطوة الأولى هي تحديد الدوال والفئات التي تنوي استخدامها في هذا البرنامج التعليمي.
ستستخدم مكتبة NumPy لتحميل مجموعة البيانات وكلاسين من مكتبة Keras لتحديد نموذجك.
المكتبات المطلوب استيرادها مذكورة أدناه.
# first neural network with keras tutorial
from numpy import loadtxt
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
...
يمكنك الآن تحميل مجموعة البيانات الخاصة بنا.
في هذا البرنامج التعليمي لـ Keras ، ستستخدم مجموعة بيانات Pima Indians لمجموعة بيانات مرض السكري. هذه مجموعة بيانات قياسية للتعلم الآلي من مستودع UCI Machine Learning. ويصف بيانات السجل الطبي للمرضى لهنود بيما وما إذا كانوا مصابين بداء السكري في غضون خمس سنوات.
على هذا النحو، فهي مشكلة تصنيف ثنائي (ظهور مرض السكري على أنه 1 أو ليس 0). جميع متغيرات الإدخال التي تصف كل مريض عددية. هذا يجعله سهل الاستخدام مباشرة مع الشبكات العصبية التي تتوقع قيم مدخلات ومخرجات رقمية وهو خيار مثالي لشبكتنا العصبية الأولى في Keras.
مجموعة البيانات متاحة هنا:
قم بتنزيل مجموعة البيانات وضعها في دليل العمل المحلي الخاص بك، في نفس مكان ملف بايثون الخاص بك.
احفظه باسم الملف:
pima-indians-diabetes.csv
ألق نظرة داخل الملف ؛ من المفترض أن ترى صفوفًا من البيانات مثل ما يلي:
6,148,72,35,0,33.6,0.627,50,1
1,85,66,29,0,26.6,0.351,31,0
8,183,64,0,0,23.3,0.672,32,1
1,89,66,23,94,28.1,0.167,21,0
0,137,40,35,168,43.1,2.288,33,1
...
يمكنك الآن تحميل الملف كمصفوفة من الأرقام باستخدام دالة NumPy loadtxt().
هناك ثماني متغيرات إدخال ومتغير إخراج واحد (العمود الأخير). سوف تتعلم نموذجًا لتعيين صفوف متغيرات الإدخال (X) إلى متغير الإخراج (y)، والذي غالبًا ما يتم تلخيصه على أنه y = f(X).
يمكن تلخيص المتغيرات على النحو التالي:
متغيرات الإدخال (X):
- عدد مرات الحمل.
- تركيز الجلوكوز في البلازما عند ساعتين في اختبار تحمل الجلوكوز الفموي
- ضغط الدم الانبساطي (mm Hg).
- سمك ثنية الجلد ثلاثية الرؤوس (mm).
- الأنسولين في الدم لمدة ساعتين (mu U/ml).
- مؤشر كتلة الجسم (الوزن بالكيلو جرام / (الطول بالمتر) ^ 2)
- وظيفة نسب مرض السكري.
- العمر (سنوات).
متغيرات الإخراج (y):
- متغير الفئة (0 أو 1)
بمجرد تحميل ملف CSV في الذاكرة، يمكنك تقسيم أعمدة البيانات إلى متغيرات الإدخال والإخراج.
سيتم تخزين البيانات في مصفوفة ثنائية الأبعاد حيث يكون البعد الأول هو الصفوف والبعد الثاني هو الأعمدة، على سبيل المثال، [الصفوف، الأعمدة].
يمكنك تقسيم المصفوفة إلى مصفوفتين عن طريق تحديد مجموعات فرعية من الأعمدة باستخدام عامل تشغيل شريحة NumPy القياسي (slice operator) أو “:”. يمكنك تحديد أول ثمانية أعمدة من الفهرس 0 إلى الفهرس 7 عبر الشريحة 0:8. يمكننا بعد ذلك تحديد عمود الإخراج (المتغير التاسع) عبر الفهرس 8.
...
# load the dataset
dataset = loadtxt('pima-indians-diabetes.csv', delimiter=',')
# split into input (X) and output (y) variables
X = dataset[:,0:8]
y = dataset[:,8]
...
أنت الآن جاهز لتحديد نموذج شبكتك العصبية.
ملاحظة: تحتوي مجموعة البيانات على تسعة أعمدة، وسيحدد النطاق 0:8 أعمدة من 0 إلى 7، وسيتوقف قبل الفهرس 8.
2. تحديد نموذج Keras
يتم تعريف النماذج في Keras على أنها سلسلة من الطبقات (layers).
نقوم بإنشاء نموذج تسلسلي وإضافة طبقات واحدة تلو الأخرى حتى نكون سعداء بمعمارية شبكتنا.
أول شيء يجب تصحيحه هو التأكد من احتواء طبقة الإدخال (input layer) على العدد الصحيح من ميزات الإدخال (input features). يمكن تحديد ذلك عند إنشاء الطبقة الأولى باستخدام وسيطة input_shape وتعيينها على (8,)لتقديم متغيرات الإدخال الثمانية كمتجه.
كيف نعرف عدد الطبقات وأنواعها؟
هذا سؤال مخادع. هناك طرق إرشادية يمكنك استخدامها، وغالبًا ما يتم العثور على أفضل معمارية للشبكة من خلال عملية التجربة وتجريب الأخطاء بشكل عام، أنت بحاجة إلى شبكة كبيرة بما يكفي لالتقاط معمارية المشكلة.
في هذا المثال، دعنا نستخدم بنية شبكة متصلة بالكامل (fully-connected network) بثلاث طبقات.
يتم تعريف الطبقات المتصلة بالكامل باستخدام كلاس Dense. يمكنك تحديد عدد الخلايا العصبية أو العقد في الطبقة كالوسيطة الأولى ودالة التنشيط (activation function) باستخدام وسيطة activation.
أيضًا، ستستخدم دالة تنشيط الوحدة الخطية المصححة (rectified linear unit activation) المشار إليها باسم ReLU في أول طبقتين ودالة Sigmoid في طبقة الإخراج (output layer).
كان من المعتاد أن تكون دوال Sigmoid وTanh مفضلة لجميع الطبقات. في هذه الأيام، يتم تحقيق أداء أفضل باستخدام دالة التنشيط ReLU. يضمن استخدام Sigmoid على طبقة الإخراج أن يكون خرج الشبكة بين 0 و1 ويسهل تعيينه إما إلى احتمال الفئة 1 أو الانجذاب إلى تصنيف صعب لأي من الفئتين بعتبة افتراضية 0.5.
يمكنك تجميعها معًا عن طريق إضافة كل طبقة:
- يتوقع النموذج صفوفًا من البيانات تحتوي على 8 متغيرات (وسيطة input_shape=(8,)).
- تحتوي الطبقة المخفية الأولى على 12 عقدة وتستخدم دالة تنشيط relu.
- تحتوي الطبقة المخفية الثانية على 8 عقد وتستخدم دالة تنشيط relu.
- تحتوي طبقة الإخراج على عقدة واحدة وتستخدم دتاة التنشيط sigmoid.
...
# define the keras model
model = Sequential()
model.add(Dense(12, input_shape=(8,), activation='relu'))
model.add(Dense(8, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
...
ملاحظة: الشيء الأكثر إرباكًا هنا هو أن شكل المدخلات إلى النموذج يُعرَّف على أنه وسيطة على الطبقة المخفية الأولى. هذا يعني أن سطر الكود الذي يضيف الطبقة الأولى كثيفة (Dense layer) يقوم بأمرين، تحديد المدخلات أو الطبقة المرئية والطبقة المخفية الأولى.
3. تجميع نموذج Keras
الآن بعد أن تم تعريف النموذج، يمكنك تجميعه.
يستخدم تجميع النموذج المكتبات العددية الفعالة الموجودة أسفل الأغلفة (ما يسمى بالخلفية backend) مثل Theano أو TensorFlow. تختار الواجهة الخلفية تلقائيًا أفضل طريقة لتمثيل الشبكة للتدريب وعمل تنبؤات للتشغيل على أجهزتك، مثل وحدة المعالجة المركزية أو وحدة معالجة الرسومات أو حتى الموزعة.
عند التجميع (compiling)، يجب تحديد بعض الخصائص الإضافية المطلوبة عند تدريب الشبكة. تذكر أن تدريب شبكة يعني العثور على أفضل مجموعة من الأوزان لتعيين المدخلات إلى المخرجات في مجموعة البيانات الخاصة بك.
يجب عليك تحديد دالة (الخسارة) الخطأ (loss function) لاستخدامها لتقييم مجموعة من الأوزان، والمحسن (optimizer) المستخدم للبحث من خلال أوزان مختلفة للشبكة، وأي مقاييس اختيارية تريد جمعها والإبلاغ عنها أثناء التدريب.
في هذه الحالة، استخدم الانتروبيا المتقاطعة (cross entropy) كوسيطة loss. هذا الخطأ لمشاكل التصنيف الثنائي (binary classification) ويتم تعريفها في Keras على أنها “binary_crossentropy”.
سنعرف المُحسِّن (optimizer) على أنه خوارزمية التدرج الاشتقاقي العشوائي (stochastic gradient descent) الفعالة “adam”. هذه نسخة شائعة من التدرج الاشتقاقي (gradient descent) لأنها تضبط نفسها تلقائيًا وتعطي نتائج جيدة في مجموعة واسعة من المشاكل.
أخيرًا، نظرًا لأنها مشكلة تصنيف، ستقوم بجمع دقة التصنيف المحددة عبر وسيطة metrics والإبلاغ عنها.
...
# compile the keras model
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
...
4. تطبيق نموذج كيراس
لقد حددت النموذج الخاص بك وقمت بتجميعه للاستعداد لعملية حسابية فعالة.
حان الوقت الآن لتنفيذ النموذج على بعض البيانات.
يمكنك تدريب النموذج الخاص بك أو ملاءمته على البيانات المحملة عن طريق استدعاء دالة fit() في النموذج.
يحدث التدريب على مدى حقب (epochs)، ويتم تقسيم كل فترة إلى دفعات (batches).
- الحقبة (Epoch): يمر المرء عبر جميع الصفوف في مجموعة بيانات التدريب
- الدُفعة (Batch): عينة واحدة أو أكثر يتم أخذها في الاعتبار بواسطة النموذج خلال حقبة ما قبل تحديث الأوزان
تشتمل الحقبة الواحدة على دفعة واحدة أو أكثر، بناءً على حجم الدُفعة المختار، والنموذج مناسب للعديد من الحقب.
سيتم تشغيل عملية التدريب لعدد ثابت من الحقب (التكرارات iterations) من خلال مجموعة البيانات التي يجب عليك تحديدها باستخدام وسيطة epochs. يجب عليك أيضًا تعيين عدد صفوف مجموعة البيانات التي يتم أخذها في الاعتبار قبل تحديث أوزان النموذج في كل حقبة، تسمى حجم الدُفعة (batch size)، وتعيينها باستخدام وسيطة batch_size.
سيتم تشغيل هذه المشكلة لعدد صغير من الحقب (150) وستستخدم حجم دفعة صغير نسبيًا يبلغ 10.
يمكن اختيار هذه التكوينات تجريبياً عن طريق التجربة والخطأ (trial and error). تريد تدريب النموذج بشكل كافٍ بحيث يتعلم تعيينًا جيدًا (أو جيدًا بما يكفي) لصفوف بيانات الإدخال لتصنيف المخرجات. سيحتوي النموذج دائمًا على بعض الأخطاء، ولكن مقدار الخطأ سيتلاشى بعد نقطة معينة لتكوين نموذج معين. وهذا ما يسمى نموذج التقارب (model convergence).
...
# fit the keras model on the dataset
model.fit(X, y, epochs=150, batch_size=10)
...
هذا هو المكان الذي يحدث فيه العمل على وحدة المعالجة المركزية (CPU) أو وحدة معالجة الرسومات (GPU).
5. تقييم نموذج Keras
لقد قمت بتدريب شبكتنا العصبية على مجموعة البيانات بأكملها، ويمكنك تقييم أداء الشبكة على نفس مجموعة البيانات.
سيعطيك هذا فكرة فقط عن مدى جودة تصميمك لمجموعة البيانات (على سبيل المثال، دقة التدريب train accuracy)، ولكن لا توجد فكرة عن مدى جودة أداء الخوارزمية على البيانات الجديدة. تم إجراء ذلك من أجل البساطة، ولكن من الناحية المثالية، يمكنك فصل بياناتك إلى مجموعات بيانات تدريب (train dataset) واختبار (test dataset) للتدريب وتقييم النموذج الخاص بك.
يمكنك تقييم النموذج الخاص بك على مجموعة بيانات التدريب الخاصة بك باستخدام دالة التقييم evaluate() وتمرير نفس المدخلات والمخرجات المستخدمة لتدريب النموذج.
سيؤدي ذلك إلى إنشاء تنبؤ لكل زوج من المدخلات والمخرجات وجمع النتائج، بما في ذلك متوسط الخطأ وأي مقاييس قمت بتكوينها، مثل الدقة (accuracy).
ستُرجع الدالة evaluate() قائمة بقيمتين. الأول سيكون خطأ النموذج في مجموعة البيانات، والثاني سيكون دقة النموذج في مجموعة البيانات. أنت مهتم فقط بالإبلاغ عن الدقة، لذا تجاهل قيمة الخطأ.
...
# evaluate the keras model
_, accuracy = model.evaluate(X, y)
print('Accuracy: %.2f' % (accuracy*100))
6.ربط كل شيء معا
لقد رأيت للتو كيف يمكنك بسهولة إنشاء أول نموذج للشبكة العصبية في Keras .
دعنا نربطها جميعًا معًا في مثال كود كامل.
# first neural network with keras tutorial
from numpy import loadtxt
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
# load the dataset
dataset = loadtxt('pima-indians-diabetes.csv', delimiter=',')
# split into input (X) and output (y) variables
X = dataset[:,0:8]
y = dataset[:,8]
# define the keras model
model = Sequential()
model.add(Dense(12, input_shape=(8,), activation='relu'))
model.add(Dense(8, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
# compile the keras model
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
# fit the keras model on the dataset
model.fit(X, y, epochs=150, batch_size=10)
# evaluate the keras model
_, accuracy = model.evaluate(X, y)
print('Accuracy: %.2f' % (accuracy*100))
يمكنك نسخ كل التعليمات البرمجية في ملف بايثون الخاص بك وحفظها باسم “keras_first_network.py” في نفس الدليل مثل ملف البيانات “pima-indians-sugar.csv”. يمكنك بعد ذلك تشغيل ملف بايثون كسكريبت من سطر الأوامر (موجه الأوامر) كما يلي:
python keras_first_network.py
عند تشغيل هذا المثال، يجب أن ترى رسالة لكل حقبة من 150 حقبة، تطبع الخطأ والدقة، متبوعًا بالتقييم النهائي للنموذج المدرب على مجموعة بيانات التدريب.
يستغرق التنفيذ على محطة العمل الخاصة بي التي تعمل على وحدة المعالجة المركزية حوالي 10 ثوانٍ.
من الناحية المثالية، ترغب في أن يصل الخطأ إلى الصفر وأن تصل الدقة إلى 1.0 (على سبيل المثال، 100٪). هذا ليس ممكنا لأي مشاكل التعلم الآلي ولكن تافهة. بدلاً من ذلك، سيكون لديك دائمًا بعض الأخطاء في نموذجك. الهدف هو اختيار تكوين نموذج وتكوين تدريب يحقق أقل خطأ وأعلى دقة ممكنة لمجموعة بيانات معينة.
...
768/768 [==============================] - 0s 63us/step - loss: 0.4817 - acc: 0.7708
Epoch 147/150
768/768 [==============================] - 0s 63us/step - loss: 0.4764 - acc: 0.7747
Epoch 148/150
768/768 [==============================] - 0s 63us/step - loss: 0.4737 - acc: 0.7682
Epoch 149/150
768/768 [==============================] - 0s 64us/step - loss: 0.4730 - acc: 0.7747
Epoch 150/150
768/768 [==============================] - 0s 63us/step - loss: 0.4754 - acc: 0.7799
768/768 [==============================] - 0s 38us/step
Accuracy: 76.56
ملاحظة: قد تختلف نتائجك نظرًا للطبيعة العشوائية للخوارزمية أو إجراء التقييم، أو الاختلافات في الدقة العددية. ضع في اعتبارك تشغيل المثال عدة مرات وقارن النتيجة المتوسطة.
ما هي النتيجة التي حصلت عليها؟
انشر نتائجك في التعليقات أدناه.
الشبكات العصبية (Neural networks) هي خوارزميات عشوائية، مما يعني أن نفس الخوارزمية على نفس البيانات يمكنها تدريب نموذج مختلف بمهارة مختلفة في كل مرة يتم فيها تشغيل الكود. هذه ميزه، ليس خطأ.
يعني التباين في أداء النموذج أنه للحصول على تقدير تقريبي معقول لمدى جودة أداء نموذجك، قد تحتاج إلى ملاءمته (fit) عدة مرات وحساب متوسط درجات الدقة.
على سبيل المثال، فيما يلي درجات الدقة (accuracy scores) من إعادة تشغيل المثال خمس مرات:
Accuracy: 75.00
Accuracy: 77.73
Accuracy: 77.60
Accuracy: 78.12
Accuracy: 76.17
يمكنك أن ترى أن جميع درجات الدقة تبلغ حوالي 77٪، والمتوسط 76.924٪.
7. عمل التوقعات
السؤال الأول الذي طرحته هو:
“بعد تدريب نموذجي، كيف يمكنني استخدامه لعمل تنبؤات بشأن البيانات الجديدة؟”
سؤال رائع.
يمكنك تكييف المثال أعلاه واستخدامه لإنشاء تنبؤات على مجموعة بيانات التدريب، متظاهراً بأنها مجموعة بيانات جديدة لم ترها من قبل.
إجراء التنبؤات سهل مثل استدعاء دالة التنبؤ predict() في النموذج. أنت تستخدم دالة التنشيط sigmoid على طبقة المخرجات، لذا فإن التوقعات ستكون احتمالية في النطاق بين 0 و1. يمكنك تحويلها بسهولة إلى تنبؤ ثنائي هش (crisp binary prediction) لمهمة التصنيف هذه عن طريق تقريبها.
فمثلا:
...
# make probability predictions with the model
predictions = model.predict(X)
# round predictions
rounded = [round(x[0]) for x in predictions]
بالتناوب، يمكنك تحويل الاحتمال إلى 0 أو 1 للتنبؤ بفئات هش مباشرة؛ فمثلا:
...
# make class predictions with the model
predictions = (model.predict(X) > 0.5).astype(int)
يقدم المثال الكامل أدناه تنبؤات لكل مثال في مجموعة البيانات، ثم يطبع بيانات الإدخال (input data) والفئة المتوقعة (predicted class) والفئة المتنبئ بها (expected class) للأمثلة الخمسة الأولى في مجموعة البيانات.
# first neural network with keras make predictions
from numpy import loadtxt
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
# load the dataset
dataset = loadtxt('pima-indians-diabetes.csv', delimiter=',')
# split into input (X) and output (y) variables
X = dataset[:,0:8]
y = dataset[:,8]
# define the keras model
model = Sequential()
model.add(Dense(12, input_shape=(8,), activation='relu'))
model.add(Dense(8, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
# compile the keras model
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
# fit the keras model on the dataset
model.fit(X, y, epochs=150, batch_size=10, verbose=0)
# make class predictions with the model
predictions = (model.predict(X) > 0.5).astype(int)
# summarize the first 5 cases
for i in range(5):
print('%s => %d (expected %d)' % (X[i].tolist(), predictions[i], y[i]))
لا يُظهر تشغيل المثال شريط التقدم كما كان من قبل، حيث تم تعيين الوسيطة verbose على 0.
بعد أن يكون النموذج مناسبًا، يتم عمل تنبؤات لجميع الأمثلة في مجموعة البيانات، وتتم طباعة صفوف الإدخال وقيمة الفئة المتنبؤ بها للأمثلة الخمسة الأولى ومقارنتها بقيمة الفئة المتوقعة.
يمكنك أن ترى أن معظم الصفوف يتم توقعها بشكل صحيح. في الواقع، يمكنك توقع حوالي 76.9٪ من الصفوف ليتم التنبؤ بها بشكل صحيح بناءً على الأداء المقدر للنموذج في القسم السابق.
[6.0, 148.0, 72.0, 35.0, 0.0, 33.6, 0.627, 50.0] => 0 (expected 1)
[1.0, 85.0, 66.0, 29.0, 0.0, 26.6, 0.351, 31.0] => 0 (expected 0)
[8.0, 183.0, 64.0, 0.0, 0.0, 23.3, 0.672, 32.0] => 1 (expected 1)
[1.0, 89.0, 66.0, 23.0, 94.0, 28.1, 0.167, 21.0] => 0 (expected 0)
[0.0, 137.0, 40.0, 35.0, 168.0, 43.1, 2.288, 33.0] => 1 (expected 1)
ملخص برنامج Keras التعليمي
في هذا المنشور، اكتشفت كيفية إنشاء أول نموذج للشبكة العصبية باستخدام مكتبة Keras بايثون القوية للتعلم العميق.
على وجه التحديد، تعلمت الخطوات الست الرئيسية في استخدام Keras لإنشاء شبكة عصبية أو نموذج التعلم العميق خطوة بخطوة ، بما في ذلك:
- كيفية تحميل البيانات (How to load data).
- كيفية تحديد الشبكة العصبية في Keras (How to define a neural network in Keras).
- كيفية تجميع نموذج Keras باستخدام الخلفية الرقمية الفعالة (How to compile a Keras model using the efficient numerical backend).
- كيفية تدريب النموذج على البيانات (How to train a model on data).
- كيفية تقييم نموذج على البيانات (How to evaluate a model on data).
- كيفية عمل تنبؤات مع النموذج (How to make predictions with the model).
هل لديك أي أسئلة حول Keras أو حول هذا البرنامج التعليمي؟
اطرح سؤالك في التعليقات، وسأبذل قصارى جهدي للإجابة.
اضافات Keras التعليمية
أحسنت صنعًا، لقد نجحت في تطوير شبكتك العصبية الأولى باستخدام مكتبة التعلم العميق Keras في بايثون.
يوفر هذا القسم بعض الاضافات لهذا البرنامج التعليمي التي قد ترغب في استكشافها.
- ضبط النموذج (Tune the Model). قم بتغيير تكوين النموذج أو عملية التدريب ومعرفة ما إذا كان يمكنك تحسين أداء النموذج، على سبيل المثال، تحقيق دقة أفضل من 76٪.
- حفظ النموذج (Save the Model). قم بتحديث البرنامج التعليمي لحفظ النموذج في ملف، ثم قم بتحميله لاحقًا واستخدمه لعمل تنبؤات (راجع هذا البرنامج التعليمي).
- تلخيص النموذج (Summarize the Model). قم بتحديث البرنامج التعليمي لتلخيص النموذج وإنشاء مخطط لطبقات النموذج.
- مجموعات بيانات منفصلة وتدريب واختبار (Separate, Train, and Test Datasets). قسّم مجموعة البيانات المحملة إلى مجموعة تدريب واختبار (مقسمة على أساس الصفوف) واستخدم مجموعة واحدة لتدريب النموذج ومجموعة أخرى لتقدير أداء النموذج على البيانات الجديدة.
- مخطط منحنيات التعلم (Plot Learning Curves). تقوم دالة fit() بإرجاع كائن محفوظات يلخص الخطا والدقة في نهاية كل حقبة. قم بإنشاء مخططات خطية لهذه البيانات، تسمى منحنيات التعلم (learning curves).
- تعلم مجموعة بيانات جديدة (Learn a New Dataset). قم بتحديث البرنامج التعليمي لاستخدام مجموعة بيانات مجدولة مختلفة، ربما من مستودع التعلم الآلي لـ UCI.
- استخدام API الوظيفية (Use Functional API). قم بتحديث البرنامج التعليمي لاستخدام Keras Functional API لتحديد النموذج.
تعليق واحد