כיצד ניתן לשמור הערות בתוכנת SOLIDWORKS לשימוש חוזר

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

 

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

כיצד ניתן לשמור style

כדי לשמור את סימול הריתוך הזה כ- style אני אלחץ דאבל קליק עליו ובחלקו התחתון של החלון שנפתח, תחת קטגוריית Style אני אבחר ב Add Style.

בחלון הבא אני אכתוב את שם ה- style ובהמשך אוכל לבחור אותו מתוך רשימת ה-Styles המועדפים שלי:

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

שימוש ב- Style בשרטוטים אחרים

כדי להשתמש ב- Style הזה בשרטוטים אחרים אני חייבת לשמור אותו בתור קובץ עצמאי וחיצוני לשרטוט עליו אני עובדת כעת. כדי לעשות את זה נבחר באופציה Save as Style:

בהמשך אני אשמור את ה- Style בפורמט המתאים (sldweldstl)- אני ממליצה לכם לשמור אותו בכספת ה-PDM שלכם או בכונן המשותף לשאר משתמשי החברה.

 

כדי לבצע שימוש חוזר ב Style הזה יש לייבא אותו דרך אותו חלון באפשרות Load Style:

 

אילו אלמנטים נוספים ניתן לשמור כ- Style:

  • אנוטוציות (sldnotestl)
  • מידות (sldstl)
  • סימול טולרנס גיאומטרי (sldgtolstl)
  • סימול טיב פני שטח (sldststl)

High Speed PCB Design

תכנון High Speed כולל התקנים עם שינויים מהירים – סיגנלים שמחליפים מצב (1 ל- 0 או 0 ל-1) במהירות כזו, שהשינוי הושלם לפני שהאות יכול\הספיק לנוע לאורך החיווט ולהגיע לפין היעד. במצב זה האות יכול להשתקף (Reflection) חזרה לפין המקור, ובכך לפגוע או להרוס את נתוני האות המקוריים. אות כזה (עם שינוי מהיר) יכול גם להקרין מהמסלול שלו למסלולים סמוכים (Crosstalk) ובכך לגרום להפרעות אלקטרומגנטיות (EMI), וכתוצאה מכך המוצר לא יעמוד בתקני פליטה ונקבל נתונים לא תקינים.

כאשר איננו עובדים בתכנון כזה, האנרגיה זורמת כמו אלקטרונים דרך חיווט הנחושת. לעומת זאת ב- High Speed Design חלק מהאנרגיה הזו עוברת גם כאנרגיה אלקטרומגנטית סביב הנחושת המחווטת. במצב כזה אנחנו לא מממשים חיווט נחושת סטנדרטי לאלקטרונים, אנחנו מתכננים סדרה של קווי תמסורת המוטבעים ב- PCB.

אז מה כל זה אומר? שבפועל כאשר זמן המעבר של האות לאורך החיווט הלוך-חזור שווה או ארוך יותר מזמן העלייה של האות (זמן השינוי מ- 0 ל-1 או 1 ל- 0), תקינותו של האות מוטלת בספק וכעת התכנון שלנו הוא High Speed. אורכו של אותו מסלול מכונה Critical Length – מסלולים קצרים מזה לא אמורים לחוות בעיות, ואילו מסלולים ארוכים כן עשויים.

כדי לנתח את התכנון שלנו, כלל אצבע נפוץ המשמש לעתים קרובות הוא כלל זמן העלייה של 1/3, הקובע שאם אורך המסלול הוא יותר מ 1/3 של זמן עלייה, יכולות להתרחש השתקפויות (Reflections). לדוגמא, אם לפין המקור יש זמן עלייה של 1nsec, יש להחשיב נתיב\חיווט ארוך מ- 33nsec – שהוא בערך 2 אינץ 'ב- FR4 כקו תמסורת אשר מועמד לבעיות שנכתבו לעיל.

אז מה אפשר לעשות? בפוסט הבא אנסה להסביר מספר נושאים הקשורים ל- High Speed וכיצד ניתן להתמודד איתם.

Reflections ו-תיאום אימפדנס

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

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

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

דוגמא לאות אשר מתואם בתמונה מימין לעומת אות שאינו מתואם שכולל Reflections משמאל

על מנת להתמודד עם אתגרים אלו מומלץ להשתמש בכלים מובנים בסביבת העבודה.
מוזמנים לצפות במאמר שעשינו בנושא זה – קישור

Crosstalk

מכיוון שחלק מהאנרגיה באותות מהירים עוברת מסביב לחיווט, אין מנוס מכך שחלק מהאנרגיה הזו תשפיע על מסלולים\חיווטים סמוכים. תופעה זו נקראת Crosstalk. אנרגיה זו תפגע באיכותו של אותו האות. בשפת המקצועית, האות שמקרין את האנרגיה מכונהaggressor , והאות שמקבל את האנרגיה מכונהvictim . אז איך מצמצמים את כמות האנרגיה הנפלטת מ-aggressor , ואיך מפחיתים כמה מאותה אנרגיה משפיעה על ה-victim ? הגישה הבסיסית היא להפחית את כמות האנרגיה הנפלטת מ- aggressor  באמצעות תיאום אימפדנס ותכנון נכון של מסלול החזרת האות. בנוסף, ניתן להרחיק את נתיבי החיווט בין האותות ובכך גם כן להקטין את התופעה.

דוגמא לשינוי באות העליוןaggressor  שמשפיע על האות התחתוןvictim

 

ישנם עוד נושאים הקשורים להתמודדות עם אתגרים בתכנון High Speed. לדוגמא מבנה הכרטיס, החומרים שמגדירים את השכבות, סוגי הויאות השונות ועוד.

למי מכם שמועניין לשמוע עוד, מוזמן לצפות בוובינר שעשינו בנושא High Speed Design

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

גישה ועיבוד של נתוני Big Data באמצעות ArcGIS Pro

נתוני עתק (BigData) מציבים אתגר מסוג חדש עבור כל מערכת מידע – וגם עבור ה-GIS. בגרסאות החדשות של Pro נוספו כלים ושיפורים חדשים לארגז הכלים של ה-GeoAnalytics Desktop המאפשרים ניתוח משולב של זמן ומרחב לזיהוי קשרים ודפוסים על פני כמות גדולה מאד של נתונים. היתרון של כלים אלה הינו ביכולת להשתמש בכח עיבוד מקבילי המופעל באמצעות Apache Spark על המחשב השולחני.
השאלות שהבלוג הזה ינסה לענות עליהן הן:

האם קרה לכם שניתוח שניסיתם לבצע נכשל בגלל שכמות הנתונים שלכם היתה גדולה מדי?
האם חיכיתם פעם לכלי ניתוח שיסיים את העבודה שלו וזה לקח המון זמן?

אוסף כלי ה-GeoAnalytics יכולים לתת תשובה לשאלות אלה. הייחודיות של כלים אלה היא שהרצה שלהם עושה שימוש ב-Apache Spark לצורך ניתוח מקבילי. כלומר, הרצה של ניתוח יכולה להשתמש בכל משאבי המחשב הזמינים לה באופן מקבילי ובכך לאפשר לנתח תבניות, קשרים, אנומליות ואירועים על נתוני ביג דאטה מרחביים עם ממד הזמן. השימוש ב-Apache Spark נעשה בתוך הכלים, ואתם המשתמשים לא צריכים לדאוג לנושא. העבודה מתבצעת עבורכם.

מתי נשתמש בכלי ה-GeoAnalytics?  להלן מספר סיבות לשימוש בכלים:

  • הכלים/התהליכים הקיימים לא נותנים תשובה בזמן מספק
  • נדרש לזקק את הנתונים לגודל הניתן לניהול ושימוש בתהליכי ניתוח אחרים
  • בנתונים שלנו יש הרבה "רעש" ואנו צריכים להבין מה חשוב
  • הנתונים הנדרשים גדולים מדי לטעינה לתוך ה-Pro
  • הכלים נותנים לנו מענה לצורך!

אלו סוגי ניתוחים ניתן להריץ?

לדוגמה, נניח שיש לנו חיישנים נייחים על רשת הצינורות שלנו. כל חיישן דוגם את הסטטוס כל מספר דקות. לאורך זמן, יצטבר לנו אוסף ענק של נקודות ניטור ונגיע בקלות לנתוני Big Data. על הנתונים הללו נרצה להבין איפה התגלה אירוע חריג ב-24 השעות האחרונות, או איפה האזורים החמים של האירועים החריגים?

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

ולכן, כלי ה-GeoAnalytics Desktop נותנים לנו פתרון שמייעל את הניתוח ומאפשר לבצע אותו באופן מקבילי.

קיימים מספר רב של כלים במסגרת כלי ה-GeoAnalytics:

ובכל גרסה Esri ממשיכה להוסיף יכולות.

מהו ממד הזמן בנתונים?

הנתונים שלנו בדרך כלל נאספים לאורך זמן ויש להם time stamp כלשהו.

את הזמן ניתן להגדיר או כנקודה בזמן, רגע בזמן, או כטווח זמנים – עם זמן התחלה וזמן סיום של אירוע.

נסתכל על שלשה כלים מתוך רשימת הכלים:

Reconstruct Tracks

כאמור, אנחנו אוספים נתונים לאורך זמן. לדוגמה נקודות. לכל נקודה יש גם time stamp שמגדיר אותה בזמן. נקרא לנקודות אלה Breadcrumbs. הכלי Reconstruct Tracks יודע לקחת את הנקודות הללו ולחבר אותן לפי מזהה (ID) והזמן המוגדר לכל אחת מהנקודות למסלולי הישויות. משמאל אתם רואים אוסף נקודות שלא ברור מה המשמעות שלהן, אבל כשמייצרים מהן את המסלולים שלהן תוך התחשבות ב-ID ובזמן שבו נדגמה כל נקודה רואים שיש לנו פה בעצם מסלולי ההוריקנים במרחב ובזמן.

Detect Incidents

כלי ה- Detect Incidents עובד גם הוא על נתוני הביג דאטה שלנו. במקרה הזה, הכלי ימצא נקודות שעונות לקריטריון מסוים. למשל אם נסתכל על הנקודות של ההוריקנים מהדגומה הקודמת, נוכל לראות אירועים שענו על קריטריון מסוים.

Find Dwell Locations

כלי ה-Find Dwell Locations נוסף בגרסה 2.5 ומאפשר להבין איפה ישויות עומדות או כמעט עומדות למשך פרק זמן. בדוגמה זו, אנחנו רואים מונית שנוסעת, ונראה שיש זמן מסוים ואזור שבו היא עומדת לפרק זמן ארוך יותר.

Big Data Connection

בגרסה 2.6 של הפרו נוסף לנו סוג חדש של נתונים שאנחנו יכולים לעבוד איתו – Big Data Connection.
BDC מאפשר לנו לקרוא מאוסף של קובץ אחד או יותר מתוך ספריה. הקבצים יכולים להיות קבצי CSV, קבצי SHAPE, parquet או ORC.
על מנת להשתמש במבנה הנתונים של ה-BDC יש לארגן את הנתונים בדיסק בצורה נכונה. את החיבור אנו נפנה לספריה שמתחתיה יהיו תתי ספריות שכל אחת מהן מייצגת Dataset. בתוך כל אחת מתתי הספריות, נשים את קבצי הנתונים.

בדוגמה זו אנחנו רואים ספריה בשם demoBDFS ובתוכה יש ספריות שמייצגות datasets. לדוגמה AIS_ship_locations, bus_locations_csv, crimes וכו'
בתוך כל ספריה, יכולים להיות כמובן יותר מקובץ אחד. למשל בספריה של הברקים אפשר לראות אוסף של 12 קבצי shape. כשמריצים את הניתוח כל 12 הקבצים משתתפים בניתוח.
כל מה שנמצא בספריה נחשב ל-dataset אחד ולא צריך לעשות כלום כדי לאחד אותם לקובץ אחד.
ולכן, כשנרצה להציג מספר רב של קבצים כ-Dataset אחד מבלי שנצטרך לאחד אותם, נגדיר BDC. תכונה נוספת של ה-BDC היא שהניתוחים ניגשים לנתונים בזמן הרצת הניתוח. ולכן, ניתן להמשיך ולהוסיף נתונים לספריה ללא צורך ברישום מחודש של השכבה.

הגורמים המשפיעים על הביצועים של כלי ה-GeoAnalytics Desktop

הביצועים של הכלים משתנים מכלי לכלי ותלויים במספר גורמים:

1. נתוני הקלט – כמה ישויות, מה סוג הגיאומטריה, כמה vertices יש לקו וכו'
2. מקור הנתונים – כמובן שאם הנתונים יהיו על דיסק מקומי, הביצועים יהיו טובים יותר מאשר אם הנתונים ישבו על דיסק ברשת.
3. הכלי בשימוש – חלק מהכלים מורכבים יותר מאחרים ולכן זמן העבודה שלהם ארוך יותר
4. חומרה – זיכרון, מיקום ומהירות הדיסוק וכמות ליבות. לכל אלה השפעה על מהירות העבודה של הכלים. אולם הגורם המשמעותי ביותר מבין אלה הוא כמות הזיכרון.

ואם נדרש ניתוח של עוד יותר נתונים?

כלי ה-Geoanalytics Desktop עובדים על המחשב המקומי. הם יודעים לנצל את כל הליבות והזיכרון הקיים במחשב. בהפעלת הכלים אנו יכולים לתת להם להשתמש ב-100% מהמשאבים הקיימים, או להגביל אותם לשימוש בחלק מהמשאבים לפי בחירתנו. עם זאת, המקסימום האפשרי לשימוש הוא המשאבים הקיימים במחשב המקומי.
לעיתים, משאבי המחשב המקומי לא מספיקים. אנו צריכים כח מחשוב חזק יותר. לצורך כך ניתן להשתמש במוצר אחר GeoAnalytics Server שהוא שרת נוסף בתשתית ה-ArcGIS Enterprise.
השימוש בשרת יתן לארגון שלכם אפשרות לבצע ניתוחי ביג דאטה על ידי המשתמשים המחוברים לארגון, לנצל כח מחשוב של מספר שרתים, לחבר cloud storage חיצוני לשכבות ה-Web ועוד.
על יכולות ה- GeoAnalytics Server נדבר בבלוג אחר.

לסיכום, כלי ה- GeoAnalytics Desktop מאפשרים לנו לבצע ניתוחים מהירים יותר בעזרת מחשוב מקבילי. הם מאפשרים לבצע ניתוחים שכוללים גם את הממד המרחבי וגם את ממד הזמן. הם מאפשרים לנו לעבד נתוני Big Data ולהוציא מהם תובנות בצורה משמעותית. והכי חשוב, הכלים עובדים כחלק מה-Pro בגרסת Advanced. ניתן להשתמש בהם כחלק מכלי המדף!

מידע נוסף ניתן לקרוא בקישורים הבאים:

Spark-Powered Analysis with GeoAnalytics Desktop Tools vs. GeoAnalytics Server

Blog post introducing GeoAnalytics in Pro

GeoAnalytics Desktop Documentation

Dev Summit Plenary Blog – Spatiotemporal clustering

Blog: Heat mapping with GeoAnalytics

תכנון חרב האור האמיתית מהסרט STAR WARS עם SOLIDWORKS

חרב אור (Lightsaber) היא כלי הנשק הבדיוני במלחמת הכוכבים, הלהב שלה עשוי מאנרגיית אור והיא יכולה לחתוך כמעט דרך כל חומר. בסקר שנערך בשנת 2008 בקרב 2,000 חובבי קולנוע  נבחרה חרב האור ככלי הנשק האהוב והפופולרי ביותר בתולדות הקולנוע.

קבוצת HackSmith הרימה את הכפפה ובאמצעות כלי מידול ותכנון מתקדמים החליטה לייצר את כלי המלחמה האייקונים ביותר של סרטי מדע בדיוני. הכל התחיל ממהנדס בשם ג'ימס הובסון שהחל לבנות את Elysium Exoskeleton הביתי הראשון (והצליח!) ומאז הכל היסטוריה.

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

חברת HackSmith הינה חברת הנדסת פרוייקטים, שעוסקת בבניית חלומות – בחלק מהפרוייקטים שלהם אפשר למצא את קרסי הטיפוס של באטמן, אקדח לייזר סטייל האן סולו, תאי שינה לספינות חלל, ואפילו הפטיש של ת'ור.

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

החרב מודלה ותוכננה בסביבה המכאנית של SOLIDWORKS ובסביבה האלקטרונית של Altium Designer 20.

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

 

 

תכנון חרב האור האמיתית מהסרט STAR WARS עם ALTIUM DESIGNER

חרב אור (Lightsaber) היא כלי הנשק הבדיוני במלחמת הכוכבים, הלהב שלה עשוי מאנרגיית אור והיא יכולה לחתוך כמעט דרך כל חומר. בסקר שנערך בשנת 2008 בקרב 2,000 חובבי קולנוע  נבחרה חרב האור ככלי הנשק האהוב והפופולרי ביותר בתולדות הקולנוע.

קבוצת HackSmith הרימה את הכפפה ובאמצעות כלי מידול ותכנון מתקדמים החליטה לייצר את כלי המלחמה האייקונים ביותר של סרטי מדע בדיוני. הכל התחיל ממהנדס בשם ג'ימס הובסון שהחל לבנות את Elysium Exoskeleton הביתי הראשון (והצליח!) ומאז הכל היסטוריה.

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

חברת HackSmith הינה חברת הנדסת פרוייקטים, שעוסקת בבניית חלומות – בחלק מהפרוייקטים שלהם אפשר למצא את קרסי הטיפוס של באטמן, אקדח לייזר סטייל האן סולו, תאי שינה לספינות חלל, ואפילו הפטיש של ת'ור.

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

החרב מודלה ותוכננה בסביבה המכאנית של SOLIDWORKS ובסביבה האלקטרונית של Altium Designer 20.

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

 

 

חזרה לאקדמיה עם SOLIDWORKS

רישיון SOLIDWORKS חינם לסטודנטים

SOLIDWORKS מאפשרת לכל סטודנט להוריד מהבית גרסאות מלאות של כל פתרונות SOLIDWORKS

פרטים כיצד להוריד את קבצי ההתקנה וקבלת המספר הסידורי של המוצרים השונים במדריך המצורף – הוראות הורדה והתקנה של תוכנת SOLIDWORKS עבור סטודנטים ומורים.

מה חדש בגרסה האקדמית 2020-2021 SOLIDWORKS

הגרסה האקדמית של SOLIDWORKS 2020-2021 מכילה את כל החידושים בגרסת SOLIDWORKS העדכנית ביותר אשר איתה עובדים מהנדסים בכל רחבי העולם, בנוסף לכל הפתרונות המלאים לסימולציות, תיעוד טכני, ניהול מידע הנדסי, תכנון חשמלי ועוד.

>> לחצו כאן לחידושים בגרסת SOLIDWORKS לאקדמיה

מערכי שיעור מלאים

מערכי שיעור מלאים בנושאים בסיסיים ב SOLIDWORKS כולל סימולציות ותכנון משולב מכני-חשמלי ופרוייקטי תכנון לסטודנטים ניתן למצוא באתר SOLIDWORKS.COM
>> לחצו כאן למידע נוסף אודות SOLIDWORKS EDUCATION ולמערכי השיעור 

פורטל  mySOLIDWORKS  

MySolidworks הינו פורטל אינטרנטי אשר כולל מקורות מידע על SOLIDWORKS , כלים חדשים, אפשרויות לימוד עצמי ושיעורים on-line ב SOLIDWORKS
>> לחצו כאן ליצירת חשבון סטודנט חינם ב– mySOLIDWORKS

וובינרים בעברית

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

הסמכות בתוכנת SOLIDWORKS

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

 

בברכה שנת לימודים מוצלחת לכל הסטודנטיםצוות SOLIDWORKS בסיסטמטיקס.

Deep Learning with MATLAB – New Features in R2020b

גרסת R2020b של כלי MathWorks, אשר שוחררה בחודש שעבר, כוללת יכולות חדשות רבות ותיקוני באגים בכלים הקיימים בסביבות MATLAB ו-Simulink, ואף ארבעה כלים חדשים (לסקירת של יכולות הגרסה – לחצו פה). מבחינת תחום ה-Deep Learning – כמו בגרסה הקודמת (לחצו לסקירה) – גם בגרסה השניה לשנת 2020 התחום זכה להשקעה רבה.

פוסט זה מורכב משלושה חלקים – בחלק הראשון תוכלו לקרוא על החידושים בתחום הלמידה העמוקה בגרסת R2020b. בחלק השני תמצאו ריכוז של היתרונות העיקריים של MATLAB בעולם זה. ובחלק השלישי לרשותכם הפניות לסמינרים מקצועיים מקוונים, קורס Hands-On חינמי, סיפורי משתמשים ישראלים ודרכים לקבלת מידע נוסף.

אזמה חדש בתחום ה-Deep Learning בגרסת R2020b?

להלן החידושים המרכזיים:

  1. יצירת קוד HDL עבור רשתות ניתן לבנות אבטיפוס של רשת למידה עמוקה ולהוריד אותה בקלות ל-FPGA או SoC בעזרת כלי חדש – Deep Learning HDL Toolbox (למידע נוסף על הכלי  – לחצו פה). לסרטון קצר (5 דקות) בו מודגם תהליך הההורדה ל-FPGA של רשת לאיתור פגמים ברכיבים, לרבות ניתוח הביצועים שלה על החומרה וביצוע קוונטיזציה ל-int8 – לחצו פה. לרשימת חומרות Xilinx הנתמכות – לחצו פה. לרשימת חומרות אינטל הנתמכות – לחצו פה.
    הכלי הנ"ל מתווסף לכלי ה-GPU Coder המאפשר להמיר בצורה אוטומטית קוד MATLAB ומודלי Simulink לקוד CUDA מהיר וחסכוני בזיכרון לצורך מימוש על מערכות Embedded ולכלי ה-MATLAB Coder המאפשר להמיר קוד MATLAB לקוד ++C עבור מעבדים של אינטל ופלטפורמות ARM.

    ניתן כעת להוריד רשתות למידה עמוקות בקלות ל-GPU ,CPU ו-FPGA

  2. הרחבת התמיכה ב-Lidar – מגרסת R2020b ניתן לפתח מערכות עיבוד Lidar, לנתח אותן ולבחון אותן בעזרת כלי חדש – Lidar Toolbox (למידע נוסף על הכלי – לחצו פה). הכלי מאפשר אימון של מודלי גילוי אובייקטים וסגמנטציה סמנטית מותאמים אישית בעזרת PointSeg ,PointPillars ו-SqueezeSegV2. הוא אף כולל ממשק משתמש נוח לתיוג ידני או חצי-אוטומטי של ענני נקודות Lidar, המתווסף לאוסף עשיר של ממשקי תיוג מעולים שכבר היו קיימים בסביבת MATLAB ושופרו בגרסה החדשה (למידע נוסף על ה-Lidar Labeler – לחצו פה. מידע על מגוון ממשקי התיוג – בסעיף 9). לסרטון קצר (5 דקות) בו מודגם השימוש ברשת PointPillars לצורך גילוי אובייקטים ב-3D בענני נקודות Lidar, וכן מוצג ממשק התיוג – לחצו פה. לדוגמה להמרה אוטומטית של רשת SqueezeSegV2 לקוד CUDA – לחצו פה.

    ממשק המשתמש החדש לתיוג ידני או חצי-אוטומטי של ענני נקודות Lidar.  להגדלה – לחצו על התמונה

  3. למידה עמוקה ב-Simulink ויצירת קוד CUDA ממודלי Simulink – ספריית הבלוקים החדשה Deep Neural Networks (שמגיעה כחלק מה-Deep Learning Toolbox) מכילה בלוקים של Simulink לביצוע סיווג של תמונה באמצעות רשת מאומנת ולביצוע חיזוי של תגובה (אקטיבציות) של רשת מאומנת. הנ"ל מאפשר שילוב קל של רכיב למידה עמוקה בתוך מערכת הממודלת ב-Simulink, דבר שמאפשר ביצוע סימולציה ובדיקות של רכיב זה ברמת המערכת המלאה בסביבה זו, שיכולה לכלול רכיבים ממגוון תחומים (מערכות בקרה, מידול פיזיקלי של מערכות מכאניות/חשמליות וכו'). שני הבלוקים החדשים, Image Classifier ו-Predict, אף נתמכים להמרה אוטומטית לקוד C++/CUDA. בהקשר זה יודגש שהחל מהגרסה החדשה ה-GPU Coder תומך גם בהמרה לקוד CUDA של מודלי Simulink המכילים בלוק MATLAB Function (שיכול להכיל רשת גילוי אובייקטים, LSTM וגם קוד MATLAB שאינו קשור לתחום הלמידה העמוקה). חידוש זה מאפשר האצה של סימולציות Simulink תוך שימוש ב-GPU, יצירת exe לצורך בניה מהירה של אבטיפוס להרצה על GPU, והורדה של מודל Simulink ל-Embedded GPU כמו Jetson ו-DRIVE. לסרטון קצר (2 דקות) המדגים יצירה של קוד CUDA מתוך מודל Simulink המכיל רכיב של למידה עמוקה – לחצו פה.

    הספריה החדשה המאפשרת לבצע למידה עמוקה בסביבת Simulink

  4. יכולות חדשות בממשק הגרפי האינטראקטיבי לעבודה עם רשתות עמוקות  ה-Deep Network Designer App (לחצו למידעתומך כעת במגוון רחב יותר של משימות, כמו ביצוע סגמנטציה סמנטית, רגרסיה של תמונה עם תמונה ובעיות של ריבוי קלטים ומידע אשר חורג ממשאבי הזיכרון (וזאת בנוסף לתהליכי עבודה של סיווג תמונה, רגרסיה, רצפים וסדרות זמן). כלומר, תוך שימוש בממשק נוח, ומבלי לכתוב קוד באופן ידני, ניתן כעת לבצע את כל תהליך העבודה – לרבות טעינה של ה-Data Set, חלוקה שלו לקבוצות אימון ובדיקה, אוגמנטציה, בניית/טעינת/עריכת ארכיטקטורה של רשת וניתוח שלה, הגדרת הגדרות האימון, הרצת האימון ושמירת התוצאה – ולקבל בצורה אוטומטית קוד MATLAB שהיה צריך לכתוב ידנית אלמלא קיומו של ה-App הנ"ל. לדוגמה לשימוש ב-Deep Network Designer App עבור בעיית סיווג (לא חדש…) – לחצו פה. לדוגמה לשימוש בו עבור בעיית סגמנטציה סמנטית (כאמור – יכולת חדשה) – לחצו פה.
    בנוסף, הממשק מאפשר כעת טעינה של רשתות Sequence-to-Sequence ו-Sequence-to-Label מוכנות בלחיצת עכבר (לדוגמה לשימוש בכך לצורך אימון רשת לסיווג רצפים – לחצו פה), מספק תצוגה מקדימה של המידע המיובא לתוכו ובכך מאפשר לבצע בדיקות פשוטות לפני תחילת האימון (לדוגמאות לתצוגה הזו – לחצו פה), תומך בטעינה של מספר רשתות בו זמנית ובהכנסה של שכבות מותאמות אישית (לדוגמה להכנסה של שכבה שנכתבה על ידי המשתמש אל תוך הממשק – לחצו פה) ומכיל תיבת סימון לביצוע חלוקה אקראית של המידע המיובא לסט אימון וסט ולידציה (שימושי כאשר המידע מאוחסן בצורה לא אקראית ואנו לא רוצים שתמיד אותן תמונות שבסוף המאגר ייכנסו לסט הולידציה). כמו כן, כעת ניתן להעלות את הממשק עם רשת רצויה בעזרת שורת קוד (למשל, יש להקליד deepNetworkDesigner(squeezenet) כדי לפתוח את הממשק עם רשת SqueezeNet), ואפשר לבצע בו עריכה של מאפיינים נוספים של שכבות קונבולוציה מבלי לאבד את מידע המשקולות וה-bias-ים (שימושי למשל כאשר רוצים ליצור רשת סגמנטציה סמנטית תוך שימוש ברשת מאומנת בתור בסיס, בה רוצים לערוך מאפיינים כמו
    stride ,dilation ,cropping וריפוד, על מנת להגיע ליישור הרצוי).

    הממשק הגרפי האינטראקטיבי לעבודה עם רשתות עמוקות – Deep Network Designer App. להגדלה – לחצו על התמונה

  5. אימון מספר רשתות במקביל ושימוש ב-Bayesian Optimization לצורך כִּיונוּן Hyperparameters בממשק ניהול הניסויים – כזכור, בגרסה הקודמת נוסף ה-Experiment Manager App, ממשק שמאפשר לתכנן תרחישי אימון של רשתות למידה עמוקה, להריץ אותם, לנתח את התוצאות ולהשוות בין אימונים שונים, והכל מבלי לכתוב הרבה שורות קוד. בעזרת הכלי אפשר לסרוק תחום ערכים של היפרפרמטר, לבחון את ההשפעה של שימוש ב-Data Sets שונים, או לבדוק מה מניבות ארכיטקטורות שונות עבור אותו מידע אימון. הממשק כולל כלי ויזואליזציה שימושיים כמו Training Plots, מסננים, מטריצות Confusion ואפשרות להגדיר מטריקה-מותאמת-אישית לצורך הערכת הביצועים.
    החל מהגרסה החדשה הממשק הנ"ל תומך באימון של מספר רשתות במקביל (מצריך רישיון ל-Parallel Computing Toolbox). ניתן להמשיך לעבוד עם MATLAB בזמן שהאימונים מתקדמים, ואפשר לעצור ואף לבטל תרחישי אימון ספציפיים במהלך פעולתם אם לא נראה שהם מתקדמים באופן תקין. לדוגמה – לחצו פה (יודגש שניתן לאמן רשתות במקביל גם ללא ממשק ניהול הניסויים, לדוגמה – לחצו פה).
    שימוש ב-Bayesian Optimization מהווה חלופה לסריקה של Hyperparameters, וכאמור גם הוא נתמך כעת דרך ממשק ניהול הניסויים (מצריך רישיון ל-Statistics and Machine Learning Toolbox). לאחר הגדרה של תחום ערכים אפשריים לכל Hyperparameter ומטריקה שאותה רוצים למקסם או למזער, ממשק ניהול הניסויים יחפש את אוסף ה-Hyperparameters שיביא לאופטימיזציה של המטריקה הנ"ל, כאשר אוסף ה-Hyperparameters שנבדק בכל ניסוי נבחר על סמך תוצאות הניסויים הקודמים. ניתן אף להריץ מספר ניסויים של Bayesian Optimization במקביל (שוב, הרצה מקבילית מצריכה רישיון גם ל-Parallel Computing Toolbox). לדוגמה – לחצו פה.

    ממשק ניהול הניסויים, הלחצן החדש המאפשר אימון של מספר רשתות במקביל מסומן בחץ ירוק. להגדלה – לחצו על התמונה

  6. מגוון רשתות מאומנות חדשות – ניתן לטעון כעת באמצעות שורת קוד אחת את רשת EfficientNet-b0 המדויקת, המהירה והקטנה (מבחינת משאבי זיכרון) יחסית, ולבצע בעזרתה סיווג לתמונה או להשתמש בה לצורך Transfer Learning. הרשת גם ניתנת להמרה אוטומטית לקוד CUDA באמצעות ה-GPU Coder. להורדת הרשת – לחצו פה. למאמר בו הוצגה לראשונה משפחת הרשתות אליה היא משתייכת – לחצו פה.
    בתחום האודיו ניתן להשתמש כעת בשתי רשתות מאומנות חדשות – YAMNet ו-VGGish (מצריך רישיון ל-Audio Toolbox). הרשת הראשונה משמשת לסיווג קטעי קול בין 521 קלאסים סמנטיים (קולות אנושיים כמו דיבור, שריקה, נשימה; קולות מהטבע כמו רוח, מים, רעם ואש; קולות של בעלי חיים כמו חיות מחמד, חיות משק וחיות בר; קולות של "דברים" כמו רכב, פעמון ואזעקה). למידע נוסף – לחצו פה. הרשת השניה משמשת לחילוץ Embeddings של אודיו (וקטורי פיצ'רים 128-מימדיים אשר יכולים לשמש בתור קלט עבור מודל סיווג). למידע נוסף – לחצו פה. ניתן להשתמש בשתי הרשתות גם לצורך ביצוע Transfer Learning.

    השוואה בין רשתות שונות מבחינת דיוק החיזוי הראשון על ImageNet, מהירות (תוך שימוש בכרטיס גרפי Nvidia Tesla P100 ו-mini-batch של 128) וגודל של הרשת על הדיסק (ביחס ישר לגודל העיגול המתאר אותה בתרשים). רשת EfficientNet-b0 שהתווספה בגרסה החדשה מסומנת עם חץ ירוק. להגדלה – לחצו על התמונה

  7. אימון של רשתות Mask-R-CNN – כידוע, Instance Segmentation הינו סוג משודרג של גילוי אובייקטים, אשר הפלט שלו הוא מפת סגמנטציה עבור כל דוגמה אשר אותרה מכל סוג של אובייקט. כלומר, להבדיל מסגמנטציה סמנטית אשר מתייחסת לכל האובייקטים של אותו Class בתור יישות אחת, ב-Instance Segmentation ההתייחסות לאובייקטים הללו היא כאל יישויות שונות (למשל – בעוד שבני אדם שונים יקבלו בסגמנטציה סמנטית התייחסות זהה, ב-Instance Segmentation תהיה הבחנה בין בני האדם השונים). אחד מהאלגוריתמים הנפוצים לביצוע Instance Segmentation הוא Mask-R-CNN, והחל מהגרסה החדשה ניתן לאמן רשת כזו, הודות להוספת השכבה roiAlign. ניתן גם להיעזר בפונקציה InsertObjectMask לצורך הצגת ה-Instances השונים בצבעים שונים, כפי שניתן לראות למטה. למידע נוסף – לחצו פה.

    שימוש ב-InsertObjectMask לצורך הצגת Instances שונים בצבעים שונים

  8. שימוש בטכניקת LIME כדי להסביר תוצאות של ביצוע סיווג לתמונה – ליכולות הויזואליזציה העשירות של סביבת MATLAB בתחום הלמידה העמוקה נוספה האפשרות להשתמש באלגוריתם Local Interpretable Model-agnostic Explanation על מנת למפות את האיזורים בתמונת הקלט שמשפיעים יותר מאחרים על הפלט של רשת הסיווג. לדוגמה לשימוש בפקודה החדשה imageLIME – לחצו פה. בדוגמה הנ"ל ניתן להתרשם מהיתרונות של טכניקת LIME על פני שיטות אחרות שכבר קיימות ב-MATLAB, כמו Grad-CAM ו-Occlusion Sensitivity, בהיבט של אפשרויות הצגות התוצאות (לא רק מפת חום). לפוסט הסוקר את הטכניקות השונות – לחצו פה. למאמר בו הוצגה טכניקת LIME לראשונה – לחצו פה.

    שימוש בטכניקת LIME כדי למצוא את מידת ההשפעה של החלקים השונים בתמונה על סיווג התמונה לקלאס "גולדן רטריבר" על ידי googlenet

  9. שיפורים לממשקי ה-Labeling – כידוע, בסביבת MATLAB קיים אוסף עשיר של ממשקי תיוג מעולים, אליו התווסף בגרסה החדשה ה-Lidar Labeler (ראו סעיף 2). בנוסף, בגרסה זו התווסף ממשק לביצוע סגמנטציה עבור תמונות של נפחים תלת-מימדיים, ה-Volume Segmenter, אשר מאפשר ליצור ולעדכן מסיכות סגמנטציה בצורה אוטומטית, חצי-אוטומטית או ידנית (לדוגמה לשימוש בכלי עבור סגמנטציה סמנטית – לחצו פה). פרט לכך בגרסה החדשה גם בוצעו שיפורים לממשקים שהיו קיימים עוד לפניה, ולהלן כמה מהם:
    Image Labeler – ממשק תיוג תמונות – נוספה אפשרות לסימון איזורי עניין תלת-מימדיים (ROI שהוא תיבה, להבדיל ממלבן). למידע נוסף על ממשק זה – לחצו פה.
    Video Labeler – ממשק תיוג קבצי וידאו ורצפי תמונות – כנ"ל. למידע נוסף על ממשק זה – לחצו פה.
    Ground Truth Labeler – ממשק תיוג ליישומי נהיגה אוטונומית (מצריך רישיון ל-Automated Driving Toolbox) – נוספו עוד קיצורי דרך באמצעות המקלדת ופעולות עכבר, לרשימה המלאה – לחצו פה. למידע נוסף על ממשק זה – לחצו פה.
    Signal Labeler – ממשק תיוג אותות – נוספו אפשרות לייבא מידע מקבצים (ולא רק מה-Workspace) ואפשרות להציג ספקטוגרמה ואת ספקטרום ההספק של האות על מנת לסייע במלאכת התיוג שלו. למידע נוסף על ממשק זה – לחצו פה.
    ב-Audio Labeler – ממשק תיוג קבצי אודיו – לא חל שינוי מיוחד, אך הוא מוזכר כאן לשם השלמת התמונה. למידע נוסף על ממשק זה – לחצו פה.
    למידע על בחירת ממשק התיוג המתאים ליישום שלכם, כולל השוואה בין הממשקים השונים – לחצו פה.  ואפילו שהוא לא נכלל בהשוואה (כיוון שאינו חלק רשמי מהכלים), ראוי לציין גם את ה-Big Image Labeler, ששוחרר בתחילת השנה, והינו ממשק תיוג של תמונות גדולות במיוחד, כמו למשל צילומי אויר או תמונות רפואיות/מדעיות ברזולוציה גבוהה. למידע נוסף – לחצו פה.

    מימין – סימון איזור עניין תלת-מימדי בתמונה ב-Image Labeler. משמאל – אפשרות להציג ספקטוגרמה ואת ספקטרום ההספק על מנת לסייע במלאכת התיוג של אות ב-Signal Labeler

  10. שדרוג ליכולות ההמרה של רשתות בצורה אוטומטית לקוד CUDA – פרט לתמיכה של ה-GPU Coder בהמרה לקוד CUDA של מודלי Simulink, של רשת הסגמנטציה הסמנטית החדשה SqueezeSegV2 לענני נקודות Lidar ושל הרשת המאומנת החדשה EfficientNet-b0 (ראו סעיפים 3, 2 ו-6, בהתאמה), בגרסה החדשה נוספה בו גם תמיכה בהמרה של Custom Layers (שכבות לא-סטנדרטיות שכתבתם בעצמכם). לדוגמה לתהליך הבניה של שכבה מותאמת אישית הניתנת להמרה לקוד CUDA – לחצו פה. לדוגמה בנושא יצירת קוד CUDA עבור רשת גילוי האובייקטים YOLO v3 הכוללת שכבה מותאמת אישית – לחצו פה.
    בנוסף, יש כעת תמיכה ברשתות בעלות מספר קלטים ורשתות LSTM קונבולוציוניות (רשתות המכילות שכבות קונבולוציה ושכבות LSTM, שימושיות עבור סיווג וידאו ותמונה). כמו כן, נוספו שכבות נוספות לרשימת השכבות אשר נתמכות, כמו Focal Loss ו-GRU (הראשונה תומכת כעת גם בבעיות סיווג תמונה וסגמנטציה סמנטית, בנוסף לתמיכה שכבר היתה בה בבעיות גילוי אובייקטים). הנ"ל מאפשר להמיר בקלות עוד רשתות עמוקות מקוד MATLAB לקוד הפועל על כרטיסי GPU של Nvidia. לרשימה המלאה של רשתות מאומנות, שכבות וקלאסים אשר ניתן להמיר אותם לקוד CUDA בצורה אוטומטית בעזרת ה-GPU Coder – לחצו פה.
    לסיום, יצויין כי נוספה תמיכה בהמרה לקוד CUDA של פונקציות נוספות מכלים כמו
    Computer Vision Toolbox ,Audio Toolbox ,Signal Processing Toolbox ו-Wavelet Toolbox. הנ"ל מאפשר לייצר קוד CUDA לאלגוריתם מלא, הכולל עוד מרכיבים מעבר לחלק של ה-Deep Learning. לרשימה המלאה של הפונקציות שנתמכות – לחצו פה.
  11. שדרוג ליכולות ההמרה של רשתות בצורה אוטומטית לקוד ++C – גם ב-MATLAB Coder נוספה כעת תמיכה ב-Custom Layers שהוזכרו בסעיף הקודם, עבור מעבדי Intel ו-ARM. פרט לכך נוספה תמיכה ביצירת קוד עבור רשתות
    LSTM ,Stateful LSTM ו – Bidirectional LSTM
    עבור מעבדי Intel וכן תמיכה בהמרה של רשת הסגמנטציה הסמנטית החדשה SqueezeSegV2 לקוד C++/C. כמו כן, נוספו שכבות נוספות לרשימת השכבות אשר נתמכות, כמו Focal Loss ו-GRU, דבר שמאפשר להמיר בקלות עוד רשתות עמוקות מקוד MATLAB לקוד ++C יעיל הפועל על מעבדים של אינטל ופלטפורמות של ARM. לרשימה המלאה של רשתות מאומנות, שכבות וקלאסים אשר נתמכים – לחצו פה.
  12. תמיכה בשכבות נוספות על ידי dlnetwork – פונקציית dlnetwork שנוספה לפני כשנה במטרה להקל על פיתוח של ארכיטקטורות למידה עמוקה מתקדמות תומכת כעת גם בשכבת Word Embedding (הממפה מידע טקסט לאוסף של וקטורים נומריים, ומצריכה רישיון ל-Text Analytics Toolbox). לדוגמה לשימוש בשכבה מסוג זה בלולאת אימון מותאמת אישית לצורך סיווג טקסט – לחצו פה. כמו כן dlnetwork תומכת כעת גם בשכבת BiLSTM (המסייעת בלמידה של תלויות ארוכות טווח בשני הכיוונים של רצף מידע) וכן בשכבת Feature Input שנוספה בגרסה החדשה (מאפשרת לאמן רשתות באמצעות מערכי מידע של סקלרים נומריים המייצגים פיצ'רים). לדוגמה לשימוש בשכבה האחרונה בלולאת אימון מותאמת אישית לצורך סיווג ספרות הכתובות בכתב יד, בעזרת מידע משולב המורכב מתמונות ופיצ'רים – לחצו פה.
    למידע נוסף על לולאות אימון מותאמות אישית – לחצו פה.
  13. שיפורים במהירויות האימון וה-Inference – בהשוואה לגרסה הקודמת, אימון באמצעות פקודת trainNetwork במערכת ההפעלה Windows תוך שימוש במספר GPU-ים הינו מהיר יותר. ניתן לראות למטה השוואה של מהירויות האימון בין הגרסה הקודמת לגרסה החדשה, עבור כמות שונה של GPU-ים אשר שימשו לצורך כך.
    בהשוואה לגרסת R2018b (מלפני שנתיים), מהירות ה-Inference גבוהה כעת פי 2.8 על GPU ופי 3 על CPU (המספרים הינם עבור שימוש ב-ResNet-50 עם גודל Batch של 32, על מעבד Intel Xeon 3.6GHz וכרטיס גרפי Titan V של Nvidia).
    פרט לכך, בהשוואה לגרסה הקודמת, יש שיפור במהירות של פקודות predict ,classify ו-activations בעת שימוש ב-CPU עבור רשתות RNN, וניתן למצוא ב-Release Notes תרחיש בדיקה בו מודגם שיפור של פי 3.4 בזמן הריצה.
    בנוסף, פקודת dlfeval רצה מהר יותר על GPU בהשוואה לגרסה הקודמת בעת חישוב גרדיאנטים של רשתות שנבנו בעזרת dlnetwork ושאינן מכילות שכבות מותאמות אישית. ניתן למצוא ב-Release Notes תרחישי בדיקה בהם מודגמים שיפורים של פי 1.3 עד 1.4 בזמן הריצה.
    יודגש שפרט לשימוש ב-GPU ,CPU או מספר GPU-ים, ניתן לבצע למידה עמוקה ב-MATLAB גם באמצעות ענן כמו Azure ו-aws ותחנות עבודה מסוג DGX תוצרת Nvidia.

    האצה של פי 1.6 במהירות האימון בין הגרסה הקודמת לחדשה תוך שימוש בארבעה GPU-ים על Windows 10 עבור תרחיש של Transfer Learning עם trainNetwork לרשת ResNet-50. פירוט מלא של תרחיש הבדיקה והחומרה הרלוונטית נמצא ב-Release Notes

  14. הרחבת שיתוף הפעולה עם סביבות למידה עמוקה אחרות – כידוע, מזה מספר גרסאות ניתן לייבא לתוך MATLAB מודלים שפותחו ואומנו בסביבות Deep Learning אחרות ולייצא מודלים מ-MATLAB אליהן.
    החל מהגרסה החדשה אפשר לייצא/לייבא מודל בפורמט ONNX גם אם הוא כולל שכבות מסוג Sigmoid ,Multiplication ,2-D Resize, 3-D Resize ,Space to Depth  ו-Instance Normalization. לפקודת הייבוא של רשת לתוך MATLAB מסביבת למידה עמוקה אחרת – לחצו פה. לפקודת הייצוא – לחצו פה.
    אם פקודת הייבוא הנ"ל נתקלת ביותר מידי אופרטורים שאינם נתמכים על ידי MATLAB, או אם מעוניינים להגדיר לרשת המיובאת לולאת אימון מותאמת אישית, ניתן החל מהגרסה החדשה לייבא את הרשת בתור פונקציה (באופן כללי שיטת המידול הזו נותנת יותר גמישות מאשר עבודה עם Layer Graph כמו Series Network ,DAG או dlnetwork). לפקודת הייבוא בתור פונקציה – לחצו פה. למידע נוסף על לולאות אימון מותאמות אישית – לחצו פה.
    הרשום לעיל הינו בנוסף לאפשרות לייבא מודלים בצורה ישירה מסביבות כמו Caffe ו-TensorFlow-Keras. באשר לאחרונה, יצוין כי בגרסה החדשה ניתן כעת לייבא מ-Keras מודלים גם אם הם מכילים שכבות
    מסוג Sigmoid ,2-D Upsampling ,3-D Upsampling  ו-Multiplication
    . לפקודת הייבוא מ-Keras – לחצו פה. לסרטון קצר (5 דקות) המדגים ייבוא של רשת מ-Keras והמרה אוטומטית שלה לקוד CUDA לצורך האצת פעולתה – לחצו פה.
    למידע נוסף על שיתוף הפעולה בין MATLAB וסביבות ה-Deep Learning האחרות – לחצו פה.

    דרכי התממשקות בין MATLAB לבין סביבות למידה עמוקה אחרות

  15. יכולות חדשות בתחום ה-Reinforcement Learning – ב-Toolbox הייעודי לתכנון ואימון policies בעזרת אלגוריתמי Reinforcement Learning, עבור בקרים ומערכות קבלת-החלטה אוטונומיות, ניתן כעת ליצור סוכנים עם מבנה ברירת מחדל של רשתות נוירונים עבור ה-Actor וה-Critic, דבר החוסך את הצורך לנסח Policies בצורה ידנית. סוכני ברירת מחדל זמינים עבור סוכני DQN ,DDPG ,PPO ,TD3 ,PG ,AC ו-SAC. האחרון הינו סוג של סוכן שנכנס בגרסה החדשה (Soft Actor-Critic הוא גרסה משופרת של DDPG ומיועד גם הוא למרחבי פעולה רציפים). פרט לכך נוספה תמיכה באימון של מספר סוכנים בו-זמנית באמצעות אותה סביבה ב-Simulink (לדוגמה לאימון של של מספר סוכנים לצורך ביצוע של משימה משותפת – לחצו פה).
  16. תוספת של עשרות דוגמאות ממגוון תחומי יישום – יחד עם 38 הדוגמאות החדשות, קיימות כעת מעל 200 דוגמאות מתועדות היטב לביצוע למידה עמוקה בסביבות MATLAB ו-Simulink עבור מגוון תחומי יישום – עיבוד תמונה וראיה ממוחשבת, עיבוד Lidar, עיבוד אודיו ואותות אחרים, ניתוח טקסט, בקרה (Reinforcement Learning), נהיגה אוטונומית ועוד. לבלוג הסוקר חלק מהדוגמאות החדשות – לחצו פה. לעמוד הבית של תחומי היישום השונים, ממנו ניתן להגיע לפקודות חשובות, Apps רלוונטים ודוגמאות שימושיות עבור תחום היישום שלכם – לחצו פה. ולדוגמאות רשמיות שממשיכות להתווסף כל הזמן – היכנסו ל-Repositories שלנו לתחום הלמידה העמוקה ב-GitHub (לחצו פה).

 

ויש כמובן עוד חידושים עליהם ניתן לקרוא בתיעוד…

 

לסיכום, היכולות החדשות בתחום ה-Deep Learning בסביבת MATLAB יחד עם היכולות שהיו קיימות בכלי בעבר ושקיימות בכלים משלימים, הופכות את MATLAB לפלטפורמה מובילה בתחומי ה-Data Science and Machine Learning, כפי שגם קבעה בתחילת השנה חברת המחקר והייעוץ בטכנולוגיית המידע Gartner, אשר מייעצת באופן אובייקטיבי ליותר מ-15,000 חברות ברחבי העולם (לחצו לקריאת הניתוח של Gartner).

בין היתרונות של MATLAB בעולם ה-Deep Learning:

  • Labeling מהיר ונוח, באמצעות מגוון Apps. מאפשר לסמן bounding boxes בתמונות/וידאו או לבצע תיוג ברמת הפיקסל לצורך סגמנטציה סמנטית ואף לבצע אוטומציה לתהליך ולהשתמש באלגוריתמים מותאמים אישית וכן לתייג ענני נקודות מ-Lidar, קטעי אודיו ואותות אחרים.
  • ממשקי משתמש אינטראקטיביים החוסכים את הצורך בכתיבת קוד (עבור בניה נוחה של רשת חדשה או עריכה קלה של רשת מוכנה, ביצוע של אוגמנטציות, הרצת אימון, ניהול ניסויים, קוונטיזציה).
  • מהירות אימון (ניתן להאיץ את התהליך עוד יותר באמצעות שימוש פשוט ונוח בחומרות נוספות כמו מספר GPUs, חוות מחשבים וענן) ומהירות Inference.
  • אפשרות להמיר בצורה אוטומטית את קוד ה-MATLAB ומודלי ה-Simulink לקוד CUDA מהיר וחסכוני בזיכרון לצורך מימוש על מערכות Embedded או לקוד ++C עבור מעבדים של אינטל ופלטפורמות ARM או לקוד HDL עבור FPGAs ו-SoCs (כדי לטרגט כאלה רכיבים דלי הספק וזיכרון, אפשר להיעזר בממשק הקוונטיזציה Deep Network Quantizer המוזכר לעיל והמודגם פה, שעוזר לוודא שלא חורגים מדרישות הדיוק הרצויות). ניתן גם לשלוח את האלגוריתם השלם לרוץ על PC אחר, מערכת אנטרפרייז, Edge Device או ענן.
  • אפשרות לייבא לתוך MATLAB מודלים שפותחו ואומנו בסביבות Deep Learning אחרות ולייצא מודלים מ-MATLAB אליהן (קישור למידע נוסף).
  • נוחות עבודה – הודות לשימוש בסביבת פיתוח עשירה המיועדת למהנדסים ומדענים.
  • כל תהליך הפיתוח בתחום הלמידה העמוקה יכול להתבצע בסביבה משולבת אחת (משלב היצירה/ההכנה של ה-Data, דרך אימון הרשת ועד להורדתה אל חומרה), אשר גם כוללת כלים מתחומים נוספים, ובכך מאפשרת לפתח מוצר שלם (כלומר – לא לבצע רק Deep Learning, אלא הרבה מעבר לכך, ולבצע deployment ליישום כולו).
  • אפשרות לביצוע סימולציה ובדיקות ברמת המערכת המלאה בעזרת סביבת Simulink, אשר יכולה לסייע גם ביצירה/סימולציה של ה-Data הדרוש (קישור למידע נוסף).
  • תוכנה בעלת שלבי פיתוח "מסודרים" וצוותי הנדסת איכות מקצועיים (בקשות ליכולות חדשות נבחנות, ככל שמתגלים באגים הם מטופלים, וכל הכלים מהתחומים הנוספים שהוזכרו לעיל עובדים יחד זה עם זה).
  • ממשק יציב, תאימות לאחור ותמיכה מלאה במערכת ההפעלה Windows בנוסף לתמיכה במערכות הפעלה אחרות.
  • יכולות ויזואליזציה ודיבאגינג – צפיה ב-Activations, הצגת Deep Dream Images, צפיה במשקולות, בחינה של התקדמות האימון בכיוון הנכון, תצוגה גרפית של הרשת וניתוח שלה לצורך איתור בעיות אפשריות לפני ביצוע האימון, הצגת Class Activation Mapping, ניתוחי Occlusion Sensitivity, שימוש בטכניקת LIME וכו'…
  • תיעוד מקיף וברור ודוגמאות מוכנות לשימוש במגוון תחומים, כמיטב המסורת של סביבת  MATLAB (ראו סעיף 16 לעיל).
  • תמיכה טכנית מקצועית בטלפון 03-7660111 או באתר, לבעלי רישיון תחת חוזה שירות, ושירותי ייעוץ לפרויקטים מורכבים.

מה הלאה?

ההשקעה של MathWorks בתחום ה-Deep Learning נמשכת, וצפויים חידושים משמעותיים גם בשנה הבאה. אם יש יכולות שאתם זקוקים להן והן עדיין לא נכללות בכלים – אתם מוזמנים לכתוב זאת למטה בתגובה ואשמח לבדוק עבורכם האם הן מתוכננות (ובמידה ולא – אעביר אותן לצוות הפיתוח על מנת שישקול לעבוד עליהן).

לצפיה בסמינר מקוון בעברית בנושא "Deep Learning בסביבת MATLAB עבור יישומי ראיה ממוחשבת", שהתקיים ב-23/4/20 – לחצו כאן.
לוובינר בעברית בנושא "אימון רשתות למידה עמוקה באמצעות MATLAB עבור יישומי ראיה ממוחשבת", ששודר ב-5/5/20 – לחצו פה.
לוובינר בעברית בנושא "גילוי אובייקטים באמצעות למידה עמוקה בסביבת MATLAB", ששודר בתאריך 14/5/20 – לחצו פה.
לוובינר בעברית בנושא "ביצוע רגרסיה באמצעות למידה עמוקה בסביבת MATLAB", ששודר בתאריך 21/5/20 – לחצו כאן.
לצפיה בוובינר בעברית בנושא "Deep Learning של אותות מכ"מ לצורך סיווג מטרות באמצעות MATLAB ", שהוקלט ב-7/4/20 – לחצו כאן.
לוובינר בנושא סיווג של אותות בעזרת Wavelet Scattering ,CNN ו-LSTM והמרה אוטומטית של קוד MATLAB לקוד CUDA, שהוקלט ב-13/5/20 – לחצו פה.
לוובינר בנושא "לימוד מכונה ולמידה עמוקה לישומי עיבוד תמונות רפואיות", שהוקלט בתאריך 20/5/20 – לחצו כאן.
לוובינר בעברית בנושא "המרת רשתות למידה עמוקה לקוד CUDA/C++/C  והפעלתו על מערכות Embedded", ששודר בתאריך 19/8/20 – לחצו כאן.
לוובינר בעברית בנושא "למידה עמוקה עם קוד פתוח או עם MATLAB? או גם וגם?", שהוקלט בתאריך 25/8/20 – לחצו כאן.
לוובינר בעברית בנושא "Style Transfer בעזרת למידה עמוקה בסביבת MATLAB", ששודר בתאריך 8/9/20 – לחצו פה.
לוובינר בעברית בנושא "Style Transfer לקבצי וידאו בעזרת למידה עמוקה בסביבת MATLAB", ששודר בתאריך 9/3/21 – לחצו פה.
לוובינר בעברית בנושא "סיווג של מודלים תלת מימדיים בעזרת למידה עמוקה בסביבת MATLAB", ששודר בתאריך 27/12/20 – לחצו פה.
אתם גם מוזמנים להצטרף לשאר האירועים הציבוריים החינמיים שעורכת חברת סיסטמטיקס – לחצו לרשימת האירועים המקצועיים הקרובים.

רוצים לעבור קורס מזורז בעבודה על Deep Learning  בסביבת MATLAB  ללא התחייבות, בזמנכם החופשי, ומבלי להתקין שום דבר על המחשב? אתם מוזמנים לנסות את ה-Hands On Tutorial החינמי באתר MathWorks . לא צריך רישיון ל-MATLAB  בשביל לעבוד איתו, הכל מבוצע דרך הדפדפן. ה-Hands On אמור לקחת לכם כשעתיים, וניתן לעצור אותו בכל שלב ולהמשיך כאשר אתם רוצים. לכניסה – לחצו פה.
רוצים לעבור קורס מזורז שיאפשר לכם להיכנס לעולם ה-Reinforcement Learning? אתם מוזמנים לנסות את ה-Hands On Tutorial החינמי המקביל, הממוקד לתחום זה. לכניסה – לחצו פה.

למידע בנוגע לקורס "Deep Learning עם MATLAB" של יום שלםלחצו פה. ניתן לבקש פרטים נוספים על ידי לחיצה כאן.

לצפיה בסיפורי משתמשים ישראלים – לחצו פה או פה או פה.

לשיחה עם מהנדס מכירות לצורך קבלת מידע נוסף ו/או תיאום פגישת הדגמה ללא התחייבות – התקשרו לטלפון
03-7660111 או מלאו את הטופס כאן או שלחו מייל אליי ל- royf@systematics.co.il.

 

קולובורציה ו"רשת-חברתית" בסביבת ה-CAD עם 3DEXPERIENCE

כולנו משתמשים ברשתות חברתיות וכלי שיתוף שונים כמו: WhatsApp ,Teams ,Facebook ,Slack ועוד… אנו מכירים ביתרונות השימוש ביכולות אלה כמו: העברת ושיתוף המידע בקבוצות שונות.

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

כיום, יש לנו אפשרות לבצע זאת גם עבור צוותי הפיתוח השונים ועבור כל צוות ששותף לתהליכי הפיתוח, ייצור ושיווק של המוצרים שלכם (בתוך ומחוץ לארגון).

3DEXPERIENCE מאפשר לכם לשתף מידע, רעיונות, תגובות ועוד גם בהתייחסות לקבצי ה-CAD השונים.

נציג לפניכם דוגמאות למספר Apps בסביבת ה-3DEXPERIENCE המאפשרים לבצע זאת מכל מכשיר וללא התקנה (השירות כולו בענן):

3DSwym – רשת חברתית ארגונית המאפשרת לכל אחד להוסיף פוסטים, רעיונות, תגובות ועוד בדומה לרשתות חברתיות שונות, אבל תוך התייחסות גם לקבצי ה-CAD השונים ולפעולות על קבצי התכנון.

ניתן להגדיר מספר Communities עבור קבוצות שונות וכך לנהל את "הדיונים" בקבוצות השונות.

ה-3DSwym מאפשר לפרסם פוסטים מסוגים שונים – הודעות, תמונות, רעיונות, שאלות, משימות, סקרים ועוד:

כל סוג פוסט מכיל תכונות ואפשרויות שונות. לדוגמה, ה-Survey מאפשר הפעלת סקר בקבוצה ובצגה גראפית של התוצאות:

 

ניתן כמובן גם לשלוח הודעות אישיות, או לקיים שיחות ווידאו משותפות.

 

בנוסף ליכולות אלה, ניתן גם להציג ולהוסיף Markups עבור קבצי SOLIDWORKS וקבצי CAD נוספים:

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

היתרון המשמעותי הוא, שגם מתוך הכלים השונים והמתקדמים בסביבת ה 3DEXPERIENCE, כמו כלי סימולציות מתקדמות, גופים אמורפיים מעוצבים, רינדור ריאליסטי, יכולות VR ועוד – ניתן לשתף מיידית את הקבוצה הרלוונטית ישירות אל ה "רשת החברתית" הנבחרת וכך לשתף את הגורמים הרלוונטיים במידע הדרוש, לקבל תגובות מיידיות והערות.
וכמובן לבצע זאת מכל מכשיר לכל מכשיר ללא התקנה של אפליקציות או תוכנות שונות.

 

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

וכל זאת מכל מכשיר בסביבת הענן.

תיוג אותות בצורה נוחה ומהירה לצרכי למידה עמוקה (Deep Learning)

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

בסביבת MATLAB קיימים שני יישומונים (Apps) שעוזרים לשייך label לכל אות שנרצה, והם ה-Signal Labeler שהוצג לראשונה בגרסה 2019a ונועד לצורך תיוג אותות חד מימדיים, וה-Audio Labeler שהוצג לראשונה בגרסה 2018b ונועד באופן ספציפי לאותות שמע.

 ה-Signal Labeler

אפליקציית ה-Signal Labeler היא כלי אינטראקטיבי שמאפשר ביצוע labeling לאותות חד-ממדיים לצרכי ניתוח האות או ליישומי למידת מכונה ולמידה עמוקה.

בעזרת ה-Signal Labeler ניתן:

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

ה-Signal Labeler שומר את המידע כאובייקט MATLAB שמאפשר לאמן רשת או לנתח את המידע ולקבל ממנו סטטיסטיקות.

על מנת להפעיל את האפליקציה, יש לבחור את האייקון המתאים מתוך ספריית Signal Processing and Communications ב-tab של האפליקציות, או לחלופין לכתוב signalLabeler בשורת הפקודות.

לאחר שהפעלנו את האפליקציה לרוב נפעל לפי סדר הפעולות הבא:

  1. נייבא את האותות לתוך האפליקציה – על ידי בחירה של כל אות מה-WORKSPACE, מערכים מספריים, timetables או אובייקטי labeldSignalSet.
  2. נייצר הגדרות labels – ניתן גם לייבא הגדרות קיימות.
  3. נתייג את האותות, בצורה ידנית או אוטומטית.
  4. נייצא האותות המתויגים ואם נרצה גם את ה-labels עצמם.

דוגמה מפורטת של אופן הפעולה עם האפליקציה נמצאת בסרטון הבא:

ה-Audio Labeler

אפליקציית ה-Audio Labeler פועלת באופן דומה, ובעזרתה ניתן לסמן labels עבור אותות קוליים, בשלמותם או לאזורים מתוכם.

האפליקציה מאפשרת בנוסף, באמצעות פעולת ה-Speech Detector, לבצע לייבלינג אוטומטי עבור אזורים שבהם זוהה דיבור בתוך האות ואף לבצע לייבלינג כ-string לכל מילה ומילה (באמצעות כלי Speech to Text חיצוני).

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