חצי שנה אחרי פיתוח אפליקציה AstroHopper, הידוע גם בשם SkyHopper

ב־יום שני, 6 בדצמבר 2021, מאת ארתיום; פורסם תחת: תכנה חופשית, אסטרונומיה; ‏0 תגובות

לפני כחצי שנה התחלתי לפתח אפליקצייה שעוזרת למצוא אובייקטים מעניינים בשמיים. הרעיון היה פשוט: לשלב מספר חיישנים הזמינים ב־Web API, ביניהם חיישני התנועה של טלפון חכם שהשתפרו פלאים בשנים אחרונות, GPS וכמובן גישה לבסיסי נתונים פתוחים. כל זה כדי למדוד שינוי זווית של הטלפון כדי להכוון לאובייקט רצוי כמו גלקסיה או צביר כלשהו מכוכב ידוע.

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

אבל מה שאני רציתי דווקא לדבר עליו זה המשוב שקיבלתי מהמשתמשים. עד היום רוב הקוד הרציני כתבתי לטובת מתכנתים עצמם: cppcms, boost, cppdb ופה ושם היו כמו פרויקט לקהלים פחות טכניים biditex, makeahmap אבל כולם בסופו של דבר עבדו דרך "קובץ הגדרות". לעומתם AstroHopper זהו היישום קוד פתוח הראשון בו באמת השקעתי בכתיבת ממשק משתמש גרפי. יותר מזה מדובר בממשק לטלפון נייד.

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

  • לשנות צורה של בחירת נק' איפוס
  • כיצד להקל על איפוס אחרי איפוס
  • לבטל כפתורים מיותרים
  • להתאים את ממשק למסכים קטנים
  • לשפר את תיבת החיפוש וההתנהגות שלה
  • לשנות בחירת הפרמטרים לתצוגה
  • אפשר שליטה על גודל הפונטים במפה (שהסתבר מאוד קריטית לאלו שמשתמשים במשקפיים וגם לי כי בלילה בחושך פונטים כגודלים יותר עוזרים)
  • לעשות איפוס על כוכבי הלכת ולא רק כוכבים ואפילו על גרמי שמיים עמוקים אחרים
  • גם עזרו בלעשות תיקונים ל־iPhone אפילו שלא היה ברשותי

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

יש עוד דברים שאפשר לשפר כמו לעשות zoom in-out בעזרת תנועת pinch שמסתבר לא כל־כך קלה למימוש. אבל בכל הסיפור הזה הבנתי דבר פשוט - שאולי יישמע טרויוואלי למי שמפתח UI למחייתו:

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

שורה תחתונה - זה אחד הפרויקטים היותר מיוחדים שעבדתי עליו; וגם אחד הקטנים בהיקף הקוד בצורה מפתיעה - רק כ־2,500 שורות הקוד כולל התיעוד!

עדכוני dlprimitives

ב־יום ראשון, 21 בנובמבר 2021, מאת ארתיום; פורסם תחת: תכנה חופשית, בינה מלאכותית; ‏0 תגובות

מספר עדכונים:

  • התקדמות יפה עם pytorch - בוצעה ולידציה של מרבית הרשתות של סיווג הנמצאות ה־torchvision:

    • alexnet
    • resnet18
    • resnet50
    • vgg16
    • densenet161
    • googlenet
    • squeezenet1_0
    • inception_v3
    • shufflenet_v2_x1_0
    • mobilenet_v2
    • mobilenet_v3_large
    • mobilenet_v3_small
    • resnext50_32x4d
    • wide_resnet50_2
    • mnasnet1_0
    • efficientnet_b0
    • efficientnet_b4
    • regnet_y_400mf

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

  • ניסיתי לעשות אינטגרציה עם OneDNN של אינטל (מאין cudnn ל־GPU שלהם) רק כדי לגלות שהביצועים שלהם בפורמט NCHW גרועים. כיוון שרוב התשתיות עובדות עם הפורמט הזה pytorch, caffe, mxnet ועוד אז OneDNN לא ממש רלוונטי בינתיים. אחזור לשם כשיקרה אחד מהשניים:

    • אינטל יתקנו את הביצועים עבור הפורמט הנפוץ
    • אני אפתח תמיכה ב־NHWC לטובת TensorFlow בו זה פורמט ברירת מחדל

המשך יבוא

התחלתי להתקדם לאימון בקוד פתוח: pytorch עם תמיכה ב־OpenCL

ב־יום ראשון, 10 באוקטובר 2021, מאת ארתיום; פורסם תחת: תכנה חופשית, פיתוח, בינה מלאכותית; ‏2 תגובות

תקציר: הצלחתי לבצע inference של AlexNet ב־pytorch ב־OpenCL. הביצועים זהים לפעלה ישירה של dlprimitives.

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

http://blog.dlprimitives.org/post/5

מדוע אנחנו זקוקים ל־deep-learning מבוסס OpenCL?

ב־יום ראשון, 12 בספטמבר 2021, מאת ארתיום; פורסם תחת: תכנה חופשית, בינה מלאכותית; ‏0 תגובות

במאמר חדש http://blog.dlprimitives.org/post/2 אני סוקר את הסיבות והצורך בהקמת תשתית למידה חישובית מבוססת OpenCL. אני מתייחס כאן לסיבות שהן לאו דווקא סיבות "אידואולוגיות" כמו שימוש בקוד פתוח אלא גם מתייחס לנושאים טכניים ומהותיים:

  • מחקר ואלגוריתמים
  • וניהול פרויקטים לטווח רחוק
  • שיפור מוצר ע"י תחרותיות

השוואה בין תפוחים ירוקים ואדומים

ב־יום שישי, 10 בספטמבר 2021, מאת ארתיום; פורסם תחת: תכנה חופשית, פיתוח, בינה מלאכותית; ‏0 תגובות

כשמודבר ב־Deep Learning זה מאוד קשה להשוות בין GPU של החברות המובילות AMD ו־NVidia. בניגוד למשחקי מחשב שנותנים לך מדדים ברורים על עלות מול תועלת, תחום DL נשלט באופן בלעדי ע"י NVidia. גם אם קיימים פתרונות של AMD הם לא תמיד עובדים. למשל כרטיסי RDNA/RDNA2 עדיין לא נתמכים ע"י AMD לטובת Deep Learning - והם בעצם הכרטיסים הזמינים היחידים היום בשוק.

ובכן כחלק מפרויקט DLPrimitives עשיתי השוואה כזו:

http://blog.dlprimitives.org/post/1

וכן גם השקתי בלוג חדש לטובת עדכונים על הפרויקט.

העמוד הבא

דפים

נושאים