גרף שניתן להפעיל כפונקציה אחת, עם חתימת קלט ופלט.
פונקציה יכולה גם להפעיל פונקציה tf. המוגדרת ב- SavedModelBundle
.
ConcreteFunction myFunction = savedModelBundle.function("myFunctionSignatureName");
Map<String, Tensor> outputTensorMap = myFunction.call(inputTensorMap);
שיטות ציבוריות
מוֹתֵחַ | |
מפה<String, Tensor > | |
בָּטֵל | סגור () |
סטטי ConcreteFunction | |
סטטי ConcreteFunction | |
סטטי ConcreteFunction | |
גרָף | גרף () מחזירה את הגרף של פונקציה זו |
בָּטֵל | save (String exportDir) ייצא פונקציה זו כדגם שמור. |
מוֹשָׁב | |
חֲתִימָה | חתימה () מחזירה את החתימה של פונקציה זו |
חוּט | toString () |
שיטות בירושה
שיטות ציבוריות
שיחת טנסור ציבורית (טנזור טנסור )
מפעיל פונקציה עם קלט ופלט בודדים.
המתקשר אחראי לסגירת כל הטנזורים.
פרמטרים
מוֹתֵחַ | טנסור קלט |
---|
מחזיר
- טנסור פלט
זורק
חריג טיעון לא חוקי | אם יש מספר פרמטרים של קלט או פלט המוגדרים בפונקציה |
---|
מפה ציבורית<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)
כדי לבצע את הגרף במקום זאת. אבל במקרים מסוימים, גישה ישירה להפעלה עשויה להיות נחוצה, מכיוון שהיא מאפשרת אפשרויות ריצה נוספות.
מחזיר
- מושב התפקיד