תאימות גרסת TensorFlow

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

גירסאות סמנטיות 2.0

TensorFlow עוקב בעיקר אחרי גרסה סמנטית 2.0 ( semver ) עבור ה-API הציבורי שלה. לכל גרסת מהדורה של TensorFlow יש את הצורה MAJOR.MINOR.PATCH . לדוגמה, לגרסת TensorFlow 1.2.3 יש גרסה 1 MAJOR , גרסה MINOR 2 וגרסה 3 של PATCH . לשינויים בכל מספר יש את המשמעות הבאה:

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

  • MINOR : תכונות תואמות לאחור, שיפורי מהירות וכו'. קוד ונתונים שעבדו עם מהדורה מינורית קודמת ותלויים רק בממשק ה-API הציבורי שאינו ניסיוני ימשיכו לעבוד ללא שינוי. לפרטים על מהו ה-API הציבורי ומהו לא, ראה מה מכוסה . שימו לב שלעיתים TensorFlow מבצעת שינויים פורצים במהדורות קטנות חדשות, שבהן ההשפעה צפויה להיות מינורית. לדוגמאות לסוגים אלה של שינויים, עיין בסעיפים "שוברים שינויים" עבור מהדורות קטנות קודמות בכתובת https://github.com/tensorflow/tensorflow/releases

  • תיקון : תיקוני באגים תואמים לאחור.

לדוגמה, גרסה 1.0.0 הציגה שינויים לא תואמים לאחור מגרסה 0.12.1. עם זאת, מהדורה 1.1.1 הייתה תואמת לאחור לגרסה 1.0.0.

מה מכוסה

רק ממשקי ה-API הציבוריים של TensorFlow תואמים לאחור על פני גרסאות משניות ותיקון. ממשקי ה-API הציבוריים מורכבים מ

  • כל הפונקציות והמחלקות של Python המתועדות במודול tensorflow ותתי המודולים שלו, למעט

    • סמלים פרטיים: כל פונקציה, מחלקה וכו', ששמה מתחיל ב _
    • סמלים ניסויים ו- tf.contrib , ראה למטה לפרטים.

    שים לב שהקוד examples/ tools/ ספריות אינו נגיש דרך מודול tensorflow Python ולכן אינו מכוסה על ידי ערבות התאימות.

    אם סמל זמין דרך מודול tensorflow Python או תת-מודוליו, אך אינו מתועד, אז הוא אינו נחשב לחלק מה-API הציבורי.

  • ה-API של התאימות (ב-Python, מודול tf.compat ). בגרסאות העיקריות, אנו עשויים לשחרר כלי עזר ונקודות קצה נוספות כדי לסייע למשתמשים במעבר לגרסה עיקרית חדשה. סמלי API אלה הוצאו משימוש ואינם נתמכים (כלומר, לא נוסיף תכונות כלשהן, ולא נתקן באגים מלבד תיקון נקודות תורפה), אך הם נופלים תחת ערבויות התאימות שלנו.

  • ה-API של TensorFlow C:

  • קבצי מאגר הפרוטוקול הבאים:

מספר גרסה נפרד עבור TensorFlow Lite

נכון לעכשיו TensorFlow Lite מופץ כחלק מ- TensorFlow. עם זאת, אנו שומרים לעצמנו את הזכות לבצע שינויים עתידיים בממשקי ה-API של TensorFlow Lite בלוח זמנים שונה מזה של שאר ה-API של TensorFlow, או אפילו להעביר את TensorFlow Lite להפצת מקור נפרדת ו/או למאגר מקור נפרד מאשר TensorFlow.

מסיבה זו, אנו משתמשים במספר גרסה שונה עבור TensorFlow Lite ( TFLITE_VERSION_STRING ב- tensorflow/lite/version.h , ו- TfLiteVersion() ב- tensorflow/lite/c/c_api.h ) מאשר עבור TensorFlow ( TF_VERSION_STRING ב- tensorflow/core/public/release_version.h , TF_Version() tensorflow/c/c_api.h ). נכון לעכשיו, לשני מספרי הגרסאות הללו יש את אותו ערך. אבל בעתיד, הם עשויים להתפצל; לדוגמה, אנו עשויים להגדיל את מספר הגרסה הראשית של TensorFlow Lite מבלי להגדיל את מספר הגרסה הראשית של TensorFlow, או להיפך.

משטח ה-API המכוסה על ידי מספר הגרסה של TensorFlow Lite מורכב מממשקי ה-API הציבוריים הבאים:

  • ממשק API של TensorFlow Lite C: