צפו בוובינר בנושא תהליך המרת רשתות DL לקוד C/C++/CUDA

Deploying Deep Learning Models

הפעלת הקוד שהוטמע בסימולציה הצליח, והיא רצה נהדר. השלב הבא בתהליך הוא לדאוג להטמעת הקוד שנוצר על חומרת היעד של המשתמש. כלומר, יש לוודא שהמודל יעבוד על נתונים חדשים ושישתלב עם רכיבי המערכת האחרים בצורה טובה בשלב האינטגרציה.

על מנת לוודא שהקוד יפעל על חומרת היעד, יש להעריך את גודל הרשת ומהירות הביצוע שלה. אם גודל הרשת גדול מדי, או שזמן הריצה ארוך מדי, ניתן להתחיל עם רשת מאומנת מראש קטנה יותר.

כיוון אחר הוא, במקום לחפש רשתות מאומנות מראש קטנות יותר, אפשר לנסות להקטין את גודל הרשת עצמה על ידי גיזום (Pruning) או ביצוע קוונטיזציה (Quantizing).

Pruning – גיזום הוא הסרת חלק מהפרמטרים ברשת שאינם תורמים הרבה לסיווג הנתונים הספציפיים שברשותכם.

Quantizing – פירושו לקחת את המשקולות (Weights) וההטיות (Bias) מרמת דיוק של single או double ברשת ולבצע להן קוונטיזציה כלומר לכמת אותן ל-INT8.
הרעיון הוא שאפשר עדיין לקבל את אותם ביצועים מהרשת מבלי שצריך להשתמש בסוגי משתנים עם דיוק גבוה.

ניתן לבצע קוונטיזציה ב-MATLAB בצורה אינטרקטיבית ונוחה עם האפליקציה Deep Network Quantizer

How to deploy deep network on hardware

לסיכום,

שימוש ברשת מאומנת מראש, שימוש ב-Transfer learning, Pruning ו-Quantization, אלו צעדים חשובים בדרך להגעה למודל בגודל וביעילות מספקת עבור היישום המיוחל.

צפו כיצד עוד ניתן להטמיע את הרשת שנבנתה על החומרה:

מידע נוסף

Deep Learning on Jetson AGX Xavier using MATLAB, GPU Coder and TensorRT

Deep Learning with NVIDIA Jetson and ROS

Deploying Deep Learning Models

צרו עמנו קשר: