תיקון: המעבד שלך תומך בהוראות ש- TensorFlow בינארי זה לא נערך לשימוש ב- AVX2

הרחבות וקטוריות מתקדמות ( AVX , הידוע גם בשם Sandy Bridge New Extensions ) הן הרחבות לארכיטקטורת מערך ההוראות x86 עבור מעבדי אינטל ו- AMD שהוצעו על ידי אינטל במרץ 2008 ותמכו לראשונה על ידי אינטל עם משלוח מעבד Sandy Bridge ברבעון הראשון של 2011 ואילך. על ידי AMD עם משלוח מעבד הדחפור ברבעון השלישי של 2011. AVX מספק תכונות חדשות, הוראות חדשות ותכנית קידוד חדשה.

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

מה גורם לאזהרה זו?

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

מה ה- AVX עושה?

בפרט, ה- AVX הציג את ה- FMA (Fused multiply-add); שהיא פעולת הכפל-הוספת נקודה צפה, וכל הפעולה הזו נעשית בשלב יחיד. זה עוזר לזרז פעולות רבות ללא שום בעיה. זה הופך את חישוב האלגברה לשימוש מהיר וקל יותר, גם את מוצר הנקודות, הכפלת המטריצה, פיתול וכו '. כל אלה הם הפעולות המשומשות והבסיסיות ביותר עבור כל אימון למידת מכונה. המעבדים התומכים ב- AVX וב- FMA יהיו מהירים בהרבה מהמבוגרים. אך האזהרה קובעת כי המעבד שלך תומך ב- AVX, ולכן זו נקודה טובה.

מדוע הוא אינו משמש כברירת מחדל?

הסיבה לכך היא שהפצת ברירת המחדל של TensorFlow נבנית ללא סיומות המעבד. לפי סיומות מעבד הוא מציין את AVX, AVX2, FMA וכו '. ההוראות שמפעילות בעיה זו אינן מופעלות כברירת מחדל בבנייני ברירת המחדל הזמינים. הסיבות לכך שאינן מופעלות היא להפוך את זה ליותר תואם עם כמה שיותר מעבדים. גם כדי להשוות את התוספים הללו, הם הרבה יותר איטיים במעבד ולא ב- GPU. מעבד משמש למידת מכונה בקנה מידה קטן ואילו השימוש ב- GPU צפוי כאשר הוא משמש להכשרה למידה מכונה בקנה מידה בינוני או גדול.

תיקון האזהרה!

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

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

ייבא את מודול מערכת ההפעלה בקוד התוכנית הראשי שלך והגדר עבורו את אובייקט המיפוי

# להשבתת ייבוא האזהרה os os.environ ['TF_CPP_MIN_LOG_LEVEL'] = '2'

אבל אם אתה נמצא ב- Unix , השתמש בפקודת הייצוא במעטפת bash

ייצא TF_CPP_MIN_LOG_LEVEL = 2

אבל אם אין לך GPU, ואתה רוצה להשתמש במעבד שלך ככל האפשר, עליך לבנות את TensorFlow מהמקור המותאם במיוחד למעבד שלך כאשר AVX, AVX2 ו- FMA מופעלים כאן.