ConcreteFunction

בכיתה ציבורית ConcreteFunction

גרף שניתן להפעיל כפונקציה אחת, עם חתימת קלט ופלט.

פונקציה יכולה גם להפעיל פונקציה tf. המוגדרת ב- SavedModelBundle .

ConcreteFunction myFunction = savedModelBundle.function("myFunctionSignatureName");
 Map<String, Tensor> outputTensorMap = myFunction.call(inputTensorMap);
 

שיטות ציבוריות

מוֹתֵחַ
שיחה ( טנזור טנזור)
מפעיל פונקציה עם קלט ופלט בודדים.
מפה<String, Tensor >
שיחה (מפה<String, Tensor > ארגומנטים)
מפעיל פונקציה.
בָּטֵל
סטטי ConcreteFunction
ליצור ( חתימת חתימה, הפעלה )
צור פונקציה מתוך חתימה והפעלת גרף חוקית.
סטטי ConcreteFunction
ליצור (פונקציה<Ops, Signature > functionBuilder)
יוצר פונקציה על ידי בניית גרף חדש.
סטטי ConcreteFunction
ליצור ( חתימה חתימה, גרף גרף)
צור פונקציה מתוך חתימה וגרף קיים.
גרָף
גרף ()
מחזירה את הגרף של פונקציה זו
בָּטֵל
save (String exportDir)
ייצא פונקציה זו כדגם שמור.
מוֹשָׁב
מפגש ()
מחזירה את ההפעלה ששימשה לביצוע הגרף בעת קריאה לפונקציה זו

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

חֲתִימָה
חתימה ()
מחזירה את החתימה של פונקציה זו
חוּט

שיטות בירושה

שיטות ציבוריות

שיחת טנסור ציבורית ( טנזור טנסור)

מפעיל פונקציה עם קלט ופלט בודדים.

המתקשר אחראי לסגירת כל הטנזורים.

פרמטרים
מוֹתֵחַ טנסור קלט
החזרות
  • טנסור פלט
זורק
חריג טיעון לא חוקי אם יש מספר פרמטרים של קלט או פלט המוגדרים בפונקציה

מפה ציבורית<String, Tensor > call (Map<String, Tensor > ארגומנטים)

מפעיל פונקציה.

המתקשר אחראי לסגירת כל הטנזורים.

פרמטרים
טיעונים רשימת הטנזורים שיש להעביר בקלט לפונקציה, ממופה לפי שם החתימה שלהם
החזרות
  • טנסורי פלט הנובעים מביצוע הפונקציה, ממופים לפי שם החתימה שלהם
זורק
חריג טיעון לא חוקי

ריק ציבורי סגור ()

יצירת ConcreteFunction סטטית ציבורית (חתימת חתימה , הפעלה של הפעלה )

צור פונקציה מתוך חתימה והפעלת גרף חוקית.

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

try (Graph g = new Graph()) {
   Placeholder<TFloat32> input = tf.placeholder(TFloat32.class);
   Add<TFloat32> output = tf.math.add(input, tf.constant(2.0f));
   Signature signature = Signature.builder().input("x", input).output("y", output).build();

   try (Session s = new Session(g)) {
     // Auto-closing the function just as an example but this is not required since it has
     // no effect
     try (ConcreteFunction f = ConcreteFunction.create(signature, s);
         TFloat32 t = TFloat32.scalarOf(2.0f)) {
       assertEquals(4.0f, ((TFloat32)function.call(x)).getFloat());
     
     // Session s is still valid at this point
   }
   // Graph g is still valid at this point
 }
 }

פרמטרים
חֲתִימָה חתימה של הפונקציה ליצירה
מוֹשָׁב הפעלה חוקית לגרף מאותחל
החזרות
  • פונקציה חדשה

Public static ConcreteFunction create (פונקציה<Ops, Signature > functionBuilder)

יוצר פונקציה על ידי בניית גרף חדש.

ה- functionBuilder חייב לאתחל את גרף הפונקציות מהמופע ERROR(/Ops) שסופק ולהחזיר חתימה חוקית שתשמש להזנת טנסור הקלט ולאחזר את טנסור הפלט בביצוע.

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

public class MyModel {

   public static Signature addTwo(Ops tf) {
     Placeholder<TFloat32> input = tf.placeholder(TFloat32.class);
     Add<TFloat32> output = tf.math.add(input, tf.constant(2.0f));
     return Signature.builder("addTwo").input("x", input).output("y", output).build();
   

   public static void main(String args[]) {
     try (ConcreteFunction function = ConcreteFunction.create(MyModel::addTwo);
         TFloat32 x = TFloat32.scalarOf(2.0f)) {
       assertEquals(4.0f, ((TFloat32)function.call(x)).getFloat());
     }
   }
 }
 }

פרמטרים
functionBuilder בונה פונקציות
החזרות
  • הפונקציה החדשה

יצירת ConcreteFunction סטטית ציבורית ( חתימת חתימה, גרף גרף)

צור פונקציה מתוך חתימה וגרף קיים.

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

try (Graph g = new Graph()) {
   Placeholder<TFloat32> input = tf.placeholder(TFloat32.class);
   Add<TFloat32> output = tf.math.add(input, tf.constant(2.0f));
   Signature signature = Signature.builder().input("x", input).output("y", output).build();

   try (ConcreteFunction f = ConcreteFunction.create(signature, g);
       TFloat32 x = TFloat32.scalarOf(2.0f)) {
     assertEquals(4.0f, ((TFloat32)function.call(x)).getFloat());
   
   // Graph g is still valid at this point
 }
 }

פרמטרים
חֲתִימָה חתימה של הפונקציה ליצירה
גרָף גרף תקף ומאותחל
החזרות
  • פונקציה חדשה

גרף גרף ציבורי ()

מחזירה את הגרף של פונקציה זו

שמירת חלל ציבורי (String exportDir)

ייצא פונקציה זו כדגם שמור.

שיטה זו מקבילה לקיצור דרך נוח ל- SavedModel.exporter(exportDir).withFunction(this).export()

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

מושב מושב ציבורי ()

מחזירה את ההפעלה ששימשה לביצוע הגרף בעת קריאה לפונקציה זו

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

החזרות
  • מושב התפקיד

חתימה ציבורית חתימה ()

מחזירה את החתימה של פונקציה זו

מחרוזת ציבורית למחרוזת ()