מדריך TensorFlow למתחילים
TensorFlow היא אחת מהמסגרות הפופולריות ביותר ללמידה עמוקה ולמידת מכונה. TensorFlow, שפותחה על ידי צוות Google Brain, נמצאת בשימוש נרחב בפרויקטים רבים של מחקר ויישומים תעשייתיים. מאמר זה מספק מדריך שלב אחר שלב שיעזור לכם, כמתחילים, להתחיל לעבוד עם TensorFlow.
1. הבנת יסודות TensorFlow
לפני שנתחיל להתקין ולהשתמש ב-TensorFlow, חשוב להבין מהו TensorFlow ואת המושגים הבסיסיים העומדים מאחוריו. TensorFlow היא מסגרת קוד פתוח לחישוב מספרי ולמידת מכונה. היא משתמשת בגרפי זרימת נתונים כדי לבצע פעולות מספריות, כאשר צמתים בגרף מייצגים פעולות מתמטיות, וקצוות מייצגים מערכי נתונים רב-ממדיים (טנזורים) המחוברים ביניהם.
2. התקנת TensorFlow
השלב הראשון בשימוש ב-TensorFlow הוא התקנתו. כך מתקינים את TensorFlow באמצעות pip, מנהל החבילות של Python.
1. התקנת פייתון:
ודא ש-Python מותקן במערכת שלך. TensorFlow תואם ל-Python 3.6 עד 3.9 נכון למועד כתיבת שורות אלה. ניתן להוריד את Python מאתר האינטרנט הרשמי של Python.
2. סביבה וירטואלית:
מומלץ מאוד ליצור סביבה וירטואלית כדי לבודד את פרויקט TensorFlow שלך:
"שש
פייתון -m venv myenv
מקור myenv/bin/activate עבור משתמשי מק/לינוקס
myenv\Scripts\activate עבור משתמשי Windows
""
3. התקנת TensorFlow:
כעת, התקינו את TensorFlow באמצעות pip:
"שש
pip התקנת tensorflow
""
3. שלום עולם עם TensorFlow
כעת, לאחר ש-TensorFlow מותקן, בואו ניצור סקריפט Python פשוט כדי לאמת את ההתקנה. צרו קובץ Python חדש וקראו לו `hello_tensorflow.py`.
"`פיתון
יבוא טנסור זורם כ- tf
צור קבוע
שלום = tf.constant('שלום, TensorFlow!')
התחלת סשן
עם tf.Session() בתור sess:
תוצאה = sess.run(שלום)
הדפס (תוצאה)
""
התאימו את הקוד לפי TensorFlow גרסה 2.x:
"`פיתון
יבוא טנסור זורם כ- tf
צור קבוע
שלום = tf.constant('שלום, TensorFlow!')
הפעלה באמצעות ביצוע אנרגטי (מופעל כברירת מחדל)
הדפס (hello.numpy ())
""
שמור את הקובץ, לאחר מכן הפעל:
"שש
פייתון hello_tensorflow.py
""
4. הבנת טנזורים ופעולות בסיסיות
טנזורים הם מבנה הנתונים העיקרי ב-TensorFlow, שהם מערכים רב-ממדיים. הנה כמה דוגמאות שיעזרו לכם להבין טנזורים:
"`פיתון
יבוא טנסור זורם כ- tf
יצירת טנזורים
סקלר = tf. קבוע(7) סקלר
וקטור = tf. קבוע([1, 2, 3]) וקטור
מטריצה = tf. קבוע([[1, 2], [3, 4]]) מטריצה
tensor3d = tf.constant([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]) טנזור תלת-ממדי
הדפס(f'סקלרי: {סקלרי}')
הדפס(f'וקטור: {וקטור}')
הדפס(f'מטריצה: {מטריצה}')
הדפס(f'טנזור תלת-ממדי: {tensor3d}')
""
כדי לבצע פעולות בסיסיות על טנזורים:
"`פיתון
a = tf.constant([[1, 2], [3, 4]])
b = tf.constant([[5, 6], [7, 8]])
פעולת חיבור
הוסף = tf.add(a, b)
פעולות כפל מטריצות
mul = tf.matmul(a, b)
הדפס(f'תוספת: {הוסף}')
הדפס(f'מטריצה כפל: {mul}')
""
5. יצירת מודל רשת נוירונים פשוט
השלב הבא הוא ליצור מודל רשת נוירונים פשוט. נבנה מודל סיווג תמונות באמצעות מערך הנתונים MNIST, מסד נתונים של תמונות ספרות כתובות בכתב יד. בואו נתחיל:
"`פיתון
יבוא טנסור זורם כ- tf
מאת tensorflow.keras ייבא מערכי נתונים, שכבות, מודלים
הורדת מערך הנתונים של MNIST
(תמונות_רכבת, תוויות_רכבת), (תמונות_בדיקה, תוויות_בדיקה) = datasets.mnist.load_data()
נרמול תמונה
train_images, test_images = train_images / 255.0, test_images / 255.0
יצירת מודל
model = models.Sequential([
שכבות.שטחו (input_shape=(28, 28)),
layers.Dense(128, activation='relu'),
layers.Dense(10)
])
קומפילציית מודלים
model.compile(optimizer='adam',
loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
metrics=['דיוק'])
אימון המודל
model.fit(train_images, train_labels, epochs=5)
בדיקת המודל
test_loss, test_acc = model.evaluate(test_images, test_labels)
הדפס(f'דיוק הבדיקה: {test_acc}')
""
הֶסבֵּר:
– מערכי נתונים: אנו מייבאים וטוענים את מערך הנתונים MNIST.
– עיבוד מקדים: נרמול מערך הנתונים על ידי חלוקת ערכי הפיקסלים ב-255.
– מודל: אנו מגדירים מודל פשוט עם שתי שכבות. השכבה הראשונה היא שכבת 'Flatten' כדי להמיר את התמונה הדו-ממדית למערך חד-ממדי. השכבה השנייה היא שכבת 'Dense' עם 128 נוירונים ו-'relu' כפונקציית ההפעלה, והאחרונה היא שכבת 'Dense' עם 10 נוירונים המייצגים 10 מחלקות.
– קומפילציה: אנו קומפילציה של המודל באמצעות האופטימיזציה `adam` ו-`SparseCategoricalCrossentropy` כפונקציית ההפסד.
– אימון: אימון המודל במשך 5 תקופות.
– הערכה: הערכת המודל מול נתוני הבדיקה.
6. שמירה וטעינה של מודלים
לאחר אימון מודל, ייתכן שתרצו לשמור אותו לשימוש מאוחר יותר מבלי שתצטרכו לאמן אותו מחדש. כך ניתן לשמור ולטעון מודל:
"`פיתון
שמירת המודל
model.save('my_model.h5')
טוען מודל
מודל_חדש = tf.keras.models.load_model('my_model.h5')
אימות המודל שנטען
הפסד, acc = new_model.evaluate(test_images, test_labels)
print(f'דיוק המודל שנטען: {acc}')
""
מסקנה
מדריך זה מספק מבוא מפורט לתחילת העבודה עם TensorFlow למתחילים. כיסינו את ההתקנה, פעולות טנזור בסיסיות ובניית מודל רשת נוירונים פשוט באמצעות מערך הנתונים MNIST. TensorFlow מציע יכולות מתקדמות רבות לחקירה, כגון עיבוד נתונים מתקדם, מודלים מורכבים יותר ושימוש ב-TensorFlow במכשירים כמו TPUs ו-GPUs. אנו מקווים שמדריך זה יעזור לכם להתחיל בעולם למידת המכונה עם TensorFlow.