ד.2 — התקנת PyTorch במחשב האישי
המצגת: מבוא והתקנה (עותק מקומי) · אתר PyTorch: Get Started Locally
בחלק ג עבדנו עם PyTorch בתוך Colab, ולא היה צורך להתקין דבר. בחלק הזה המצב משתנה: הסוכנים שנבנה ישחקו במשחקים שכתבנו ב־Pygame, ומשחק כזה פותח חלון על המסך של המחשב שלנו. Colab רץ בשרת מרוחק ואינו יכול להציג חלון כזה, ולכן מעתה נריץ את הקוד במחשב האישי, בתוך Visual Studio Code, כפי שעשינו בחלק ב. סיבה נוספת היא משך האימון: אימון סוכן במשחק יכול להימשך שעות, ונוח שהוא ירוץ אצלנו ברקע, בלי תלות בחיבור לשרת של Google.
לכן, לפני שנתחיל ללמוד את האלגוריתמים, נתקין את PyTorch על המחשב. ההתקנה עצמה היא פקודה אחת בטרמינל, אבל לפניה יש החלטה אחת חשובה: האם להתקין גרסה שעובדת רק על המעבד הראשי (CPU), או גרסה שיודעת להשתמש גם בכרטיס הגרפי (GPU). בפרק זה נבין את ההבדל, נבדוק מה יש במחשב שלנו, נקבל מאתר PyTorch את פקודת ההתקנה המתאימה, נריץ אותה ונוודא שהכול עובד. הפרק מיועד ל־Windows, שהיא הסביבה שבה אנו עובדים בספר.
גרסה ל־CPU או גרסה ל־GPU?
בפרק ג.2 הסברנו ש־GPU מבצע במקביל פעולות חשבון רבות, ולכן הוא מאיץ מאוד את אימון הרשתות. כדי ש־PyTorch תוכל להשתמש בכרטיס הגרפי, היא צריכה לדבר איתו בשפה שלו. CUDA היא הפלטפורמה של חברת NVIDIA שמאפשרת להריץ חישובים כלליים על הכרטיסים הגרפיים שלה, ו־PyTorch מגיעה בשתי גרסאות עיקריות: גרסה עם תמיכה ב־CUDA וגרסה ל־CPU בלבד.
- גרסת CUDA מתאימה רק למחשב שיש בו כרטיס גרפי של NVIDIA עם מנהל התקן (Driver) עדכני. חבילת ההתקנה כבר כוללת את ספריות CUDA הדרושות ל־PyTorch, ולכן אין צורך להתקין בנפרד את ערכת הפיתוח המלאה של CUDA. החבילה גדולה, כמה ג׳יגה־בייט, וההורדה נמשכת זמן.
- גרסת CPU מתאימה לכל מחשב, כולל מחשבים ניידים עם כרטיס גרפי משולב או כרטיס של AMD או Intel. היא קטנה יותר ומתקינים אותה מהר.
כל הקוד בספר רץ בשתי הגרסאות. ההבדל היחיד הוא מהירות האימון. הדוגמאות בחלק ד נכתבו כך שירוצו על CPU, ולכן אם אין לכם כרטיס של NVIDIA, או אם אינכם בטוחים, בחרו בגרסת CPU והמשיכו הלאה. אפשר תמיד להתקין את גרסת CUDA מאוחר יותר באותה דרך.
שלב 1 — בדיקת גרסת פייתון
פותחים את Visual Studio Code, ובתפריט Terminal בוחרים New Terminal. בטרמינל שנפתח מקלידים:
python --version
פלט
Python 3.12.10
המספר אצלכם עשוי להיות שונה. הגרסה היציבה הנוכחית של PyTorch דורשת Python 3.10 ומעלה, ובאתר PyTorch מצוין ש־Windows נתמכת עם Python 3.10 עד 3.14. אם מודפסת גרסה ישנה יותר, או שהפקודה אינה מוכרת, יש להתקין פייתון עדכני מ־python.org כפי שעשינו בחלק א, ולפתוח טרמינל חדש.
שלב 2 — האם יש במחשב כרטיס גרפי של NVIDIA?
הדרך הפשוטה ביותר לבדוק היא באמצעות הכלי nvidia-smi, שמותקן יחד עם מנהל ההתקן של NVIDIA. באותו טרמינל מקלידים:
nvidia-smi
פלט
+-------------------------------------------------------------------------+
| NVIDIA-SMI 591.86 Driver Version: 591.86 CUDA Version: 13.1 |
|-----------------------------------------+-------------------------------+
| GPU Name | Memory-Usage |
|=========================================+===============================|
| 0 NVIDIA GeForce RTX 3090 Ti | 1710MiB / 24564MiB |
+-----------------------------------------+-------------------------------+
הפלט כאן קוצר. אם מופיעה טבלה כזו, במחשב יש כרטיס של NVIDIA ומנהל התקן פעיל, ואפשר להתקין את גרסת CUDA. שימו לב לערך CUDA Version בפינה הימנית העליונה של הטבלה: זו גרסת CUDA הגבוהה ביותר שמנהל ההתקן תומך בה. בשלב הבא נבחר באתר PyTorch גרסת CUDA שאינה גבוהה ממנה. אם הערך אצלכם נמוך מהגרסאות המוצעות באתר, עדכנו את מנהל ההתקן מאתר NVIDIA ובדקו שוב.
אם במקום טבלה מתקבלת הודעה שהפקודה אינה מוכרת, יש שתי אפשרויות: במחשב אין כרטיס של NVIDIA, ואז מתקינים את גרסת CPU; או שיש כרטיס אבל מנהל ההתקן שלו לא הותקן, ואז מתקינים אותו מאתר NVIDIA ובודקים שוב.
שלב 3 — קבלת פקודת ההתקנה מאתר PyTorch
נכנסים לאתר pytorch.org ולוחצים על Get started. הכפתור מופיע בפס השחור שמתחת לכותרת הראשית.
בדף שנפתח, Start Locally, מופיעה טבלת בחירה. בכל שורה לוחצים על האפשרות המתאימה, והאתר מרכיב עבורנו את פקודת ההתקנה בשורה התחתונה, Run this Command.
כך בוחרים בכל שורה:
- PyTorch Build: בוחרים Stable, הגרסה היציבה והנבדקת. גרסת Preview מיועדת למפתחים שרוצים את הקוד החדש ביותר, לפני שנבדק במלואו.
- Your OS: בוחרים Windows.
- Package: בוחרים Pip, מנהל החבילות שמגיע עם פייתון ושבו השתמשנו להתקנת Pygame.
- Language: בוחרים Python.
- Compute Platform: כאן מיושמת ההחלטה מתחילת הפרק. אם אין כרטיס של NVIDIA בוחרים CPU. אם יש, בוחרים גרסת CUDA שאינה גבוהה מהערך שראינו בפלט של
nvidia-smi. האתר מציין שבדרך כלל עדיף לבחור את גרסת CUDA העדכנית ביותר שמנהל ההתקן תומך בה.
הפקודה שמתקבלת נראית כך. לגרסת CPU:
pip3 install torch torchvision --index-url https://download.pytorch.org/whl/cpu
ולגרסת CUDA, למשל CUDA 12.6:
pip3 install torch torchvision --index-url https://download.pytorch.org/whl/cu126
ההבדל בין הפקודות הוא רק בסוף הכתובת: cpu לעומת מספר גרסת CUDA בלי נקודה, כמו cu126, cu130 או cu132. הכתובת אומרת ל־pip מאיזה מאגר להוריד את החבילה, ולכן חשוב להעתיק את הפקודה כפי שהאתר מציג אותה ולא להקליד אותה מהזיכרון. מספרי הגרסאות באתר מתעדכנים מדי כמה חודשים, ולכן הפקודה אצלכם עשויה להיות שונה מעט מזו שבתמונה.
שלב 4 — הרצת ההתקנה בטרמינל של VS Code
מעתיקים את הפקודה מהאתר, מדביקים אותה בטרמינל של Visual Studio Code ומקישים Enter. pip מוריד את החבילות ומתקין אותן. בגרסת CPU ההורדה קצרה; בגרסת CUDA היא עשויה להימשך דקות ארוכות, כי החבילה כוללת את ספריות CUDA. ההתקנה הסתיימה כשמופיעה שורה שמתחילה ב־Successfully installed ואחריה שמות החבילות, ובהן torch ו־torchvision.
אם הטרמינל מודיע ש־pip3 אינו מוכר, מחליפים את תחילת הפקודה ב־python -m pip install ומשאירים את שאר הפקודה כפי שהיא. כך מבטיחים שהחבילה מותקנת עבור אותו פייתון שבדקנו בשלב 1.
שלב 5 — בדיקת ההתקנה
כמו במצגת, נבדוק את ההתקנה בכמה צעדים בטרמינל חדש. תחילה מפעילים את פייתון במצב אינטראקטיבי בפקודה python; מופיעה שורת הפקודה של פייתון, שמתחילה ב־>>>. מקלידים שורה אחר שורה:
import torch
print(torch.__version__)
print(torch.cuda.is_available())
פלט
2.14.0+cu126
True
- אם
import torchעובר בלי הודעת שגיאה, PyTorch מותקנת. הפקודה השנייה מדפיסה את הגרסה שהותקנה; הסיומת מציינת את הפלטפורמה,cu126לגרסת CUDA אוcpuלגרסת CPU. torch.cuda.is_available()מחזירהTrueכאשר PyTorch מזהה כרטיס גרפי שאפשר להשתמש בו, ו־Falseאחרת. בגרסת CPU התשובה תמידFalse, וזה תקין. אם התקנתם את גרסת CUDA ובכל זאת התקבלFalse, בדרך כלל מנהל ההתקן ישן מדי לגרסת CUDA שנבחרה; עדכנו אותו והריצו שוב את הבדיקה.
באתר PyTorch מוצעת בדיקה נוספת: יצירת טנסור אקראי בגודל 5×3 והדפסתו.
אם מודפסת טבלה של חמש שורות ושלושה מספרים אקראיים בין 0 ל־1, הכול מוכן. יוצאים מפייתון בפקודה exit().
בחירת המעבד בקוד
בחלק ג הרצנו את כל הטנסורים והרשתות על המעבד שבחר עבורנו Colab. במחשב האישי הבחירה בידינו, והשורה המקובלת לכך היא:
import torch
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
print(device)
פלט
cuda
המשתנה device מקבל את הערך cuda אם יש כרטיס גרפי זמין, ו־cpu אחרת. כשהקוד מעביר רשת או טנסור אל device, אותו קוד רץ נכון בשני המקרים. הדוגמאות בחלק ד נשארות על CPU כדי שכל תלמיד יוכל להריץ אותן; מי שהתקין את גרסת CUDA יוכל להוסיף את השורה הזו ולהאיץ את האימון בפרקים שעוסקים ברשתות נוירונים, החל מפרק ד.10.
זהו. סביבת העבודה מוכנה: פייתון, Pygame ו־PyTorch מותקנים על המחשב, והתרגילים בחלק זה ירוצו מקומית. בפרק הבא נחזור לרעיונות של למידת חיזוק ונגדיר במדויק מהם סביבה, סוכן, מצב, פעולה ותגמול.