رسم بياني يمكن استدعاؤه كدالة واحدة، مع توقيع الإدخال والإخراج.
يمكن للوظيفة أيضًا استدعاء tf.function المحدد في SavedModelBundle
.
ConcreteFunction myFunction = savedModelBundle.function("myFunctionSignatureName");
Map<String, Tensor> outputTensorMap = myFunction.call(inputTensorMap);
الأساليب العامة
الموتر | |
خريطة<سلسلة، موتر > | |
فارغ | يغلق () |
وظيفة الخرسانة الساكنة | |
وظيفة الخرسانة الساكنة | |
وظيفة الخرسانة الساكنة | |
رسم بياني | رسم بياني () إرجاع الرسم البياني لهذه الوظيفة |
فارغ | حفظ (سلسلة اكسبورتدير) قم بتصدير هذه الوظيفة كنموذج محفوظ. |
حصة | |
إمضاء | إمضاء () إرجاع توقيع هذه الوظيفة |
خيط | إلى السلسلة () |
الطرق الموروثة
الأساليب العامة
نداء الموتر العام (الموتر الموتر )
يستدعي دالة ذات مدخلات ومخرجات واحدة.
المتصل هو المسؤول عن إغلاق كافة Tensors.
حدود
الموتر | موتر الإدخال |
---|
المرتجعات
- موتر الإخراج
رميات
IllegalArgumentException | إذا كانت هناك معلمات إدخال أو إخراج متعددة محددة في الوظيفة |
---|
استدعاء Map<String, Tensor > العام (وسائط Map<String, Tensor >)
يستدعي وظيفة.
المتصل هو المسؤول عن إغلاق كافة Tensors.
حدود
الحجج | قائمة الموترات لتمرير المدخلات إلى الوظيفة، المعينة حسب اسم التوقيع الخاص بها |
---|
المرتجعات
- موترات الإخراج الناتجة عن تنفيذ الوظيفة، المعينة حسب اسم التوقيع الخاص بها
رميات
IllegalArgumentException |
---|
إغلاق الفراغ العام ()
إنشاء وظيفة ملموسة ثابتة عامة (توقيع التوقيع ، جلسة الجلسة )
قم بإنشاء وظيفة من التوقيع وجلسة رسم بياني صالحة.
لن تمتلك الوظيفة الجلسة ولا الرسم البياني الخاص بها، مما يعني أن عمرها يمكن أن يمتد إلى ما هو أبعد من نطاق الوظيفة. لذلك لا يلزم إغلاق الوظيفة بعد استخدامها. على سبيل المثال:
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
}
}
حدود
إمضاء | توقيع الوظيفة المراد إنشاؤها |
---|---|
حصة | جلسة صالحة لرسم بياني تمت تهيئته |
المرتجعات
- وظيفة جديدة
إنشاء وظيفة ConcreteFunction ثابتة عامة (Function<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 | منشئ الوظيفة |
---|
المرتجعات
- الوظيفة الجديدة
إنشاء وظيفة ملموسة ثابتة عامة (توقيع التوقيع ، الرسم البياني )
إنشاء وظيفة من التوقيع والرسم البياني الموجود.
ستحتفظ الوظيفة بملكية الجلسة المستخدمة لتشغيل الرسم البياني وليس الرسم البياني نفسه، مما يعني أن عمر الأخير يمكن أن يمتد إلى ما هو أبعد من نطاق الوظيفة. على سبيل المثال:
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()
حدود
importDir | الدليل حيث سيتم تصدير النموذج المحفوظ |
---|
رميات
IOEException | إذا تعذر كتابة النموذج المحفوظ أو الحالة المتغيرة على القرص |
---|
جلسة الجلسة العامة ()
إرجاع الجلسة المستخدمة لتنفيذ الرسم البياني عند استدعاء هذه الوظيفة
بشكل عام، لا يحتاج المستخدم إلى التعامل مباشرة مع جلسة الوظيفة والاعتماد على call(Map)
لتنفيذ الرسم البياني بدلاً من ذلك. ولكن في بعض الحالات، قد يكون الوصول المباشر إلى الجلسة ضروريًا، لأنه يتيح المزيد من خيارات التشغيل.
المرتجعات
- الجلسة الوظيفية