תמיר נווה

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

שיעור #13 – תרגיל מסכם שני, הכוונה לפתרון ופתרון

הורד פתרון

 

Posted by תמיר נווה in פייתון, קורסים

שיעור #12 – תרגיל ראשון: הכוונה לפתרון ואז פתרון

import matplotlib.pyplot as plt
import matplotlib.patches as patches
import random

ax = plt.axes()

for n in range(10):
 x = random.random()
 y = random.random()
 r = random.random()
 g = random.random()
 b = random.random()
 for circle_rad in range(0,10):
  p1 = patches.Circle((x, y), circle_rad/10, facecolor=(r,g,b))
  ax.add_patch(p1)
  plt.pause(.00000001)

Posted by תמיר נווה in פייתון, קורסים

שיעור #11 – תרגיל מסכם ראשון

import matplotlib.pyplot as plt
import matplotlib.patches as patches

ax = plt.axes()
p1 = patches.Circle((0.2, 0.3), 0.1, facecolor=(1, 0, 0))
p2 = patches.Rectangle((0.6, 0.6), 0.2, 0.1, facecolor=(1, 1, 0))

ax.add_patch(p1)
ax.add_patch(p2)

plt.pause(0.5)
ax.cla()

Posted by תמיר נווה in פייתון, קורסים

שיעור #10 – להכניס חיים עם גרפיקה

import matplotlib.pyplot as plt
import matplotlib.patches as patches
ax=plt.axes()
p1 = patches.Circle((0.2, 0.3), 0.1, facecolor=(1,1,0))
ax.add_patch(p1)
plt.show()

Posted by תמיר נווה in פייתון, קורסים

שיעור #9 – פונקציות

 

הערות:

 # יש לשים לב שהוספתי הערות לקוד ע”י שימוש בסימן –

   מה שאומר שכל שורה שמתחיל ב # נועדה לנו המתכנתים (המחשב מתעלם ממנה)

– כמו בתנאים ובלולאות גם בפונקציות יש חשיבות לשוליים (indent), ז”א ההבדלה בין קוד ששייך לפונקציה לבין קוד ראשי הוא ע”י השוליים

 

ראינו דוגמה לפונקציה שקראנו לה addNumbers המקבלת שני מספרים (קלט) ומחזירה שני מספרים (פלט), וקוד ראשי שמפעיל את הפונקציה:

def addNumbers(x,y):
 return x+y,x>
# Main code
print(addNumbers(4,5))

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

print(“My name is Yossi”)
print(“I live in Tel Aviv”)
print(“My name is Baruch”)
print(“I live in Haifa”)
print(“My name is Dan”)
print(“I live in Beer Sheva”)

הדרך הנכונה\יעילה יותר לכתוב קוד זה (שעושה בדיוק אותו דבר) הינה ע”י שימוש בפונקציה שקראנו לה ShowDetails ולולאה שקוראת לפונקציה בעבור כל איש שרוצים להציג את הפרטים עליו: (יש לשים לב שבהגדרת הפונקציה אין פקודת return שמחזירה ערך כלשהוא, לא מחייב…)

def ShowDetails(name,city):
 print(“My name is ” + name)
 print(“I live in ” + city)
# Main code
names=[‘Yossi’,’Baruch’,’Dan’]
cities=[‘Tel Aviv’,’Haifa’,’Beer Sheva’]
for k in range(3):
 ShowDetails(names[k], cities[k])

Posted by תמיר נווה in פייתון, קורסים

שיעור #8 –  תנאים

כאן כבר עוסקים בדוגמה מעט יותר ארוכה

כדי להבין את הקוד קודם נבין את הפסדו-קוד

ז”א מה הקוד עושה בשפה חצי אנושית חצי של מחשב

פסדו-קוד:

  • שמור מערך בזכרון של שלושה מילים: ספסל, חתול וכלב
  • הגרל מספר בין 0 ל 2
  • הדפס למשתמש: “נסה לנחש מה בחרתי”
  • רוץ שלוש פעמים על:
  •  קלוט קלט מהמשתמש
  •  השווה האם הקלט מהמשתמש שווה למספר שהגרלתי
  •   אם כן הדפס למשתמש “צדקת!”
  •  אחרת הדפס למשתמש “לא…”

קוד להדגמת תנאים – משחק ניחוש:

import random
objects=[“bench”,”cat”,”dog”]
x=random.randint(0,len(objects)-1)
print(“Try to guess my thought . . . (take 3 guesses)”)
for k in range(3):
 a=input(“Trial #” + str(k) + “: “)
 if a==objects[x]:
  print(“You Right !”)
 else:
  print(“Nope…”)

Posted by תמיר נווה in פייתון, קורסים

שיעור #6 – לנפות (לדבג) חלק 1

מקשי קיצור לניפוי (debug) של קוד ב Pycharm:

F7 – Step Into (הרץ שורת קוד נוכחית וכנס לפונקציות אם יש)
F8 – Step Over (הרץ שורת קוד נוכחית)
F9 – Resume Program (המשך ריצה כרגיל משורת הקוד הנוכחית)
Ctrl+F2 – Stop (עצור)
Ctrl+F8 -Toggle Line Breakpoint (הוסף\הסר נקודת עצירה)

Posted by תמיר נווה in פייתון, קורסים

שיעור #5 – לולאות

דוגמא פשוטה ללולאה:

for k in range(3,80,3):
 print(k)

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

factorial=1
for k in range(1,30):
 factorial=factorial * k
 print(factorial)

יש לשים לב: (אינדנטציה – indentation)

בשפת פייתון יש חשיבות לאינדנטציה (שוליים)

השורה הראשונה הינה ללא indent (שוליים) ולשורה השניה יש indent (שוליים)

רק השורות שיש להם שוליים ביחס לשורת ה for הן אלו שיבצעו בחזרתיות

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

Posted by תמיר נווה in פייתון, קורסים

שיעור #4 – סוגי משתנים

קוד בסיסי להכרת סוגי משתנים:

a=432
b=213.452
c=[5,3,7,3]
d=”asdfjklsdjflkjsdlfjsdkl”
print(“Variable a= “,a,type(a))
print(“Variable b= “,b,type(b))
print(“Variable c= “,c,type(c))
print(“Variable d= “,d,type(d))

Posted by תמיר נווה in פייתון, קורסים

שיעור #3 – משתנים

קוד בסיסי של הכרת המושג משתנים:

a=22
b=30
c=a+b

print(“a =”,a)‎
print(“b =”,b)‎
print(“c =”,c)‎

Posted by תמיר נווה in פייתון, קורסים

ריכוז מאוד מוצלח של קישורים בנושאי למידה עמוקה

מיועד ל- כל אחד (כתבה לא טכנית)

נכתב על ידי תמיר נווה

ריכוז מאוד מוצלח של קישורים של וידאוים, בלוגים, קודים, ספרים בנושאים

Deep learning Vision:

https://github.com/kjw0612/awesome-deep-vision

RNN:

https://github.com/kjw0612/awesome-rnn#codes

Tutorials:

https://github.com/TarrySingh/Artificial-Intelligence-Deep-Learning-Machine-Learning-Tutorials

Posted by תמיר נווה in deep

Hello world!

Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

Posted by תמיר נווה

מהי למידה עמוקה

מיועד ל- כל אחד (כתבה לא טכנית)

נכתב על ידי תמיר נווה

“למידה עמוקה” (Deep Learning) הינו ענף ברשתות ניורונים שעשה מהפכה כמעט בכל תחומי האלגוריתמיקה.

המהפיכה התחילה בראייה ממוחשבת (computer vision) והמשיכה לנושאים שונים כמו עיבוד שפה טבעית (NLP), תרגום, עיבוד אות שמע (speech, voice), מכוניות אוטונומיות, רובוטיקה, התנהגות ברשת ועוד ועוד… רבים מכנים זאת (באופן שגוי) כבינה מלאכותית (AI=Artificial Intelligence) אך למעשה זה רק ענף של התחום.

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

כמו כן קיימים מגוון מוצרים ושירותים שכולנו משתמשים בהם, אשר מבוססים על למידה עמוקה כמו למשל siri, תירגום סימולטני בסקייפ, google photos, ועוד ועוד…

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

ידוע שבתחום למידת המכונה (machine learning) יש צורך בהרבה רקע מתמטי ויש הרבה משוואות מתמטיות “מפחידות”

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

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

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

Posted by תמיר נווה in deep