הדגמת הסריקה החכמה – לראות אותה מתכנסת על המחשב שלכם¶
מסך הפתיחה ← הדגמת סריקה חכמה. בפחות מדקה על מחשב נייד רגיל רואים את הלולאה של הרצות הבאות ומצב Launcher מוצאת הגברים ששלושה רחפנים יכולים לחלוק – וכמה זה חוסך לעומת הרצת כל הרשת.
מה רואים¶
- הסימולציה היא תוכנה אמיתית (
examples/smart_sweep_demo/sim.py, ספרייה סטנדרטית בלבד): קוראת קובץ פרמטרים JSON וכותבת שורת CSV אחת בשם ההרצה. היא רצה על מאגר עובדים מקומי – רואים אותם מתמלאים ומתרוקנים. - סבב 1 מריץ רשת התחלה גסה (4 × 4 × 4 ערכי הגבר × התרחישים של כל רחפן: 768 הרצות).
- כל סבב הבא מציע 20 ערכים מועמדים (× 12 הרצות) היכן שהם עוזרים הכי הרבה.
- הייחוס הוא כל הרשת העדינה (9,261 ערכים × 12 = 111,132 הרצות), מחושב פעם אחת בזיכרון – רק למדידה.
איך לקרוא¶
- גרף ההתכנסות: x = הרצות שבוצעו, y = זמן ההתייצבות הטוב ביותר (של הרחפן הגרוע) עד כה; הקו המקווקו הוא האופטימום של הרשת המלאה; הסמן מימין – היכן הרשת המלאה הייתה מסתיימת.
- מרחב ההגברים: שניים משלושת ההגברים על הצירים (השלישי בסרגל); הערכים שנוסו צבועים לפי סבב; הטוב הנוכחי; האופטימום האמיתי כטבעת.
- המשפט מחושב מהמספרים.
סבב הבא, הרץ עד התכנסות (נעצר כשהטוב לא השתנה שני סבבים, כשאין מה להציע, או במגבלת הסבבים), אפס.
בלי האפליקציה¶
python -m signalviewer.study demo examples/smart_sweep_demo/demo.svstudy.json
הלולאה – אותה לולאה גם לתוכנה שלכם¶
ההדגמה היא מקרה אחד של הלולאה, שכל מחקר ב-Sweeps ← פרמטרים משותפים יכול להריץ (הרצת הלולאה):
- Signal Viewer מציע את ההרצות הבאות (ההגברים לנסות, לכל אחד הסיבה);
- הוא כותב קובץ פרמטרים לכל הרצה ומפעיל את הפקודה של המחקר – התוכנה שלכם על המחשב הזה או ה-launcher של החווה;
- הוא ממתין לקבצי התוצאה בתיקיית התוצאות וקורא אותם;
- הוא מדרג את כל הערכים שנוסו ומציע שוב – עד שהטוב לא השתנה שני סבבים, אין מה לנסות, או מגבלת הסבבים.
להפוך אותה לשלכם¶
בהדגמה, איך ההדגמה עובדת ← העתק את ההדגמה לתיקייה… מעתיק את המחקר ואת sim.py לתיקייה חדשה ופותח אותה
בפרמטרים משותפים. שם, תחת הרצות: הפקודה (ארגומנט בכל שורה, למשל python · {{study_dir}}/my_sim.py ·
{{params_file}}), היכן היא רצה, היכן מופיעות התוצאות, ותבנית קובץ הפרמטרים של כל טבלה. ואז הרצת הלולאה.
אם אף הרצה בסבב לא הניבה תוצאה, הלולאה נעצרת ומציגה את סוף הפלט של הפקודה.
התוכנה שלכם¶
שמרו על החוזה – לקרוא את קובץ הפרמטרים, לכתוב שורת CSV אחת היכן ש-out אומר – ושנו את launcher.submit. כדי
להריץ על החווה – שנו את בלוק ה-launcher (ראו מצב Launcher).