يجب أن يدرب ملف بايثون الخاص بك شبكة صغيرة، لكنه يتوقف بخطأ أو يطبع أرقامًا غريبة. يفتح Sigmora الملف، يجد الأسطر المهمة، يشغل أمر التدريب الخاص بك باستخدام Shell ويعرض المخرجات الحقيقية في بطاقة، لتعرف ما حدث بدلاً من التخمين. ابدأ بملف واحد. لا يقوم الوكيل بالتدريب بنفسه، لأن الكود الخاص بك هو من يفعل ذلك، وقد يستغرق وقتًا كما يستغرق. الحلقة قصيرة: قراءة، تشغيل، مقارنة، تغيير. أنت تختار المجلد، وتختار الوضع وتقرر أي تغيير تقبله. استخدم فقط الكود والبيانات وأجهزة الكمبيوتر التي تمتلكها أو لديك الحق في استخدامها، واجعل كل تجربة صغيرة بما يكفي لتكرارها.
01
افتح المجلد
اختر مجلد العمل الذي يحتوي على سكربت التدريب، وملف التكوين وسجلاتك. تعمل أدوات الملفات في هذا المجلد، ويعرض list_dir ما بداخله. احتفظ بالبيانات المسموح لك باستخدامها في المكان نفسه، بحيث تبقى كل المسارات في سكربتك قصيرة. تستخدم أدوات الملفات هذا المجلد.
02
اطلب القراءة
اطلب من Sigmora قراءة سكربت التدريب وشرح الطبقات، دالة الخسارة والحلقة. تذكر read_file وgrep الأسطر التي تشير إليها، بحيث يمكنك التحقق من الشرح مقابل الكود الخاص بك. يغير وضع Plan only شيئًا واحدًا. اطلب مرة أخرى إذا كانت الكتلة لا تزال غير واضحة.
03
شغل الأمر
حدد أمر التدريب الخاص بك واختر وضع التشغيل. يشغل Shell الأمر في Windows، أو في WSL، أو عبر SSH على خادمك الخاص، وتعرض البطاقة المخرجات الحقيقية ورمز الخروج. يجب تثبيت بايثون في المكان الذي يعمل فيه الأمر. قد يستغرق التدريب وقتًا طويلاً على أجهزتك.
04
تحقق من النتيجة
قم بتوسيع البطاقة واقرأ خطأ الطباعة أو قيم الخسارة. يعني رمز الخروج صفر فقط أن السكربت انتهى دون خطأ، لذا احكم على الأرقام بنفسك، على بيانات التحقق التي لم يرها النموذج، واكتب ما رأيته. ثم قرر التغيير الصغير التالي.
مثال: عصبون واحد يتعلم بوابة AND في بايثون العادي
Sigmora · شغل المثال● Ask first
شغل perceptron_and.py، ثم زد عدد الـ Epochs وشغله مرة أخرى.
read_fileperceptron_and.pyread
Shellpython perceptron_and.pyexit 0
edit_fileperceptron_and.pysaved
Shellpython perceptron_and.pyexit 0
في انتظار موافقتك قبل الانتقال إلى الخطوة التاليةرفضموافقة
perceptron_and.py
# AND gate: one neuron (perceptron) learns the table
rows = [((0,0),0), ((0,1),0), ((1,0),0), ((1,1),1)]
w = [0.0, 0.0]
b = 0.0
rate = 0.1
for epoch in range(20):
for x, target in rows:
total = w[0] * x[0] + w[1] * x[1] + b
out = 1 if total > 0 else 0
err = target - out
w[0] += rate * err * x[0]
w[1] += rate * err * x[1]
b += rate * err
print("weights:", w, "bias:", b)
يدرب هذا الملف عصبونًا واحدًا لتعلم بوابة AND بمعدل تعلم وحلقة قصيرة لتحديث الأوزان، ثم يطبع الأوزان والانحياز. يستخدم بايثون العادي، بدون مكتبات وبدون أرقام عشوائية، لذا فإن كل تشغيل يعطي نفس النتيجة. شغله باستخدام Shell، غيّر عدد الـ Epochs وشغله مرة أخرى لترى ما الذي يتغير في الأوزان المطبوعة.
دليل تفصيلي: تتبع تجربة بايثون لشبكة عصبية تلافيفية
اقرأ كود التدريب
قبل تغيير أي شيء، يقرأ Sigmora. يفتح read_file سكربت التدريب الخاص بك، ويعرض list_dir مجلد البيانات ويجد grep الأسطر التي تحدد الطبقات، دالة الخسارة والحلقة. ترى نص الملف في البطاقة، بحيث يمكنك مقارنة أحجام الطبقات مع شكل بياناتك. لا يغير الوكيل شيئًا في هذه المرحلة. تعد نماذج الشبكات العصبية لبوابات المنطق، مثل ملف AND أعلاه، هي التمرين الأول الكلاسيكي، والخطوة نفسها في القراءة تناسب شبكة عصبية من الصفر في بايثون كتبتها الشهر الماضي ولم تعد تتذكرها. اطلب أي كتلة بكلمات بسيطة، أو انتقل إلى وضع Plan only إذا كنت تريد شرحًا مكتوبًا وبدون إجراءات. اقرأ كل شرح بجانب الكود وتحقق من مطابقته لما كتبته.
شغل أمر التدريب
اختر Auto-run لتشغيل تثق به، أو Ask first إذا كنت تريد الموافقة على الإجراءات التي تغير شيئًا. يبدأ Shell أمر التدريب الخاص بك، على سبيل المثال python perceptron_and.py، في البيئة التي اخترتها، وتعرض البطاقة المخرجات الحقيقية ورمز الخروج. قم بتوسيع البطاقة لقراءة السجل الكامل لسكربت بايثون الخاص بالشبكة العصبية التلافيفية سطرًا بسطر. قد يستغرق التدريب وقتًا كما يستغرق، ولا يقوم Sigmora بتسريعها. عندما لا تتقارب دالة الخسارة في شبكة عصبية، يكون السجل هو المكان الذي تراه أولاً. انظر إلى الأرقام، وليس فقط رمز الخروج، لأن رمز الخروج صفر يعني فقط أن السكربت انتهى. ثم قرر ما إذا كان الكود يحتاج إلى تغيير، واطلب الفرق فقط إذا كان كذلك.
أصلح خطأ في الشكل أو خسارة بطيئة
يغير edit_file السكربت ويعرض الفرق. في وضع Ask first لا يتم الكتابة حتى تقبل الفرق، بينما يطبق Auto-run التغيير على الفور. يعني خطأ الشكل عادةً أن البيانات والطبقة الأولى لا تتطابقان، لذا فإن الإصلاح غالبًا ما يكون رقمًا واحدًا. قد تشير الخسارة التي تتحرك ببطء إلى معدل التعلم، أو إلى العلامات التي لا تتماشى مع البيانات، أو إلى نموذج لا يزال غير قادر على الإفراط في التخصيص لمجموعة صغيرة. جرب مجموعة البيانات الصغيرة هذه أولاً. الإفراط في التخصيص ونقص التخصيص مشكلتان مختلفتان، لذا انظر إلى خسارة التدريب والتحقق قبل تغيير أي شيء كبير. بناء شبكة عصبية للشطرنج مشروع أكبر، لكنه يبدأ بنفس الطريقة. بعد التحرير، شغل الأمر مرة أخرى باستخدام Shell وقارن الأرقام الجديدة بالقديمى.
سجل النتائج في ملف CSV
لمقارنة التشغيلات، تحتاج إلى أرقام في ملف. ينشئ write_file ملف CSV في مجلد عملك، أو يضيف append_file صفًا واحدًا لكل Epoch، ويقرأ read_file الملف مرة أخرى بحيث يمكن للوكيل وضع تشغيلين جنبًا إلى جنب. لا يحلل Sigmora البيانات لك؛ فهو يحفظ الأرقام ويعرضها، وأنت تقرر ما تعنيه. احتفظ ببيانات التحقق منفصلة عن بيانات التدريب واترك مجموعة الاختبار دون لمس حتى النهاية. يمكن لوضع Plan only كتابة التجربة التالية كخطة دون تشغيل أي شيء. عندما تكون جاهزًا، غيّر الوضع ودع الوكيل ينفذه. قبل الاحتفاظ بنتيجة، افتح ملف CSV وتحقق من أن الصفوف تتطابق مع ما كتبته البطاقة وأن كل عمود معنون.