Interpreter

حصة نهائية علنية الترجمة الفورية

فئة السائقين لتعزيز استنتاج النموذج باستخدام TensorFlow Lite.

ملاحظة: إذا لم تكن بحاجة إلى الوصول إلى أي من الأدوات "التجريبية" ميزات واجهة برمجة التطبيقات أدناه، وتفضل استخدامها استخدام كل من {8/}"Api" و"تفسيرٍ" بدلاً من استخدام ميزة "الترجمة الفورية" مباشرةً.

يتضمّن Interpreter نموذج TensorFlow Lite المدرَّب مسبقًا، ويتم فيه إجراء يتم تنفيذها لاستنتاج النموذج.

على سبيل المثال، إذا كان النموذج يستخدم إدخالاً واحدًا فقط ويعرض ناتجًا واحدًا فقط:

try (Interpreter interpreter = new Interpreter(file_of_a_tensorflowlite_model)) {
   interpreter.run(input, output);
 }
 

إذا كان هناك نموذج يحتاج إلى إدخالات أو مخرجات متعددة:

Object[] inputs = {input0, input1, ...};
 Map<Integer, Object> map_of_indices_to_outputs = new HashMap<>();
 FloatBuffer ith_output = FloatBuffer.allocateDirect(3 * 2 * 4);  // Float tensor, shape 3x2x4.
 ith_output.order(ByteOrder.nativeOrder());
 map_of_indices_to_outputs.put(i, ith_output);
 try (Interpreter interpreter = new Interpreter(file_of_a_tensorflowlite_model)) {
   interpreter.runForMultipleInputsOutputs(inputs, map_of_indices_to_outputs);
 }
 

إذا استخدم أحد النماذج منسقات السلاسل أو أنتجها:

String[] input = {"foo", "bar"};  // Input tensor shape is [2].
 String[][] output = new String[3][2];  // Output tensor shape is [3, 2].
 try (Interpreter interpreter = new Interpreter(file_of_a_tensorflowlite_model)) {
   interpreter.runForMultipleInputsOutputs(input, output);
 }
 

لاحظ أن هناك فرقًا بين الشكل [] والشكل[1]. لموصّل السلسلة العددية المخرجات:

String[] input = {"foo"};  // Input tensor shape is [1].
 ByteBuffer outputBuffer = ByteBuffer.allocate(OUTPUT_BYTES_SIZE);  // Output tensor shape is [].
 try (Interpreter interpreter = new Interpreter(file_of_a_tensorflowlite_model)) {
   interpreter.runForMultipleInputsOutputs(input, outputBuffer);
 }
 byte[] outputBytes = new byte[outputBuffer.remaining()];
 outputBuffer.get(outputBytes);
 // Below, the `charset` can be StandardCharsets.UTF_8.
 String output = new String(outputBytes, charset);
 

تحديد ترتيب المدخلات والمخرجات عند تحويل نموذج TensorFlow إلى TensorFlowLite نموذج مع توكو، وكذلك الأشكال الافتراضية للمدخلات.

عند توفير المُدخلات كصفائف (متعددة الأبعاد)، سيتم إدخال مؤشرات ضمنيًا وفقًا لشكل تلك الصفيفة. عند توفير مصادر الإدخال على أنّها Buffer فلن يتم إجراء أي تغيير ضمني؛ يجب أن يتأكد المتصل من أنّ حجم الملف Buffer بايت إما مطابقة للمتسابق المتناظر، أو أن تغير أولاً حجم التينور عبر resizeInput(int, int[]). يمكن الحصول على معلومات شكل الموتّر ونوعه من خلال الفئة Tensor المتاحة من خلال getInputTensor(int) وgetOutputTensor(int).

تحذير: مثيلات Interpreter غير آمنة لسلاسل المحادثات. Interpreter يمتلك موارد يجب تحريرها صراحةً من خلال استدعاء close()

تم إنشاء مكتبة TFLite وفقًا للإصدار 19 من واجهة برمجة التطبيقات NDK API. ويمكن أن يعمل مع مستويات واجهات برمجة تطبيقات Android الأقدم من 19. لكنه ليس مضمونًا.

الفصول الدراسية المتداخلة

صنف Interpreter.Options فئة خيارات للتحكّم في سلوك ميزة "الترجمة الفورية" في بيئة التشغيل.

الشركات المصنّعة العامة

المترجم الفوري(ملف modelFile)
يؤدي إلى إعداد Interpreter.
المترجم الفوري(خيارات File modelFile، وInterpreter.Options)
يؤدي هذا الإجراء إلى إعداد Interpreter وتحديد خيارات تخصيص سلوك ميزة "الترجمة الفورية".
الترجمة الفورية(ByteBuffer byteBuffer)
يتم إعداد Interpreter باستخدام ByteBuffer من ملف نموذج.
الترجمة الفورية(خيارات ByteBuffer byteBuffer، وInterpreter.Options)
يتم إعداد Interpreter باستخدام ByteBuffer من ملف نموذج ومجموعة من مخصص Interpreter.Options

الطرق العامة

فراغ
allocateTensors()
يتم تعديل عمليات التخصيص صراحةً لجميع وحدات قياس الأداء، إذا لزم الأمر.
فراغ
إغلاق()
إصدار الموارد المرتبطة بالمثيل InterpreterApi
int
getInputIndex(سلسلة opName)
الحصول على فهرس للمدخل حسب اسم العملية للمدخل
Tensor
getInputTensor(int enterIndex)
يحصل على Tensor المرتبط بفهرس الإدخال المتوفر.
int
getInputTensorCount()
للحصول على عدد مترابطات الإدخال.
Tensor
getInputTensorFromSignature(سلسلة enterName، مفتاح توقيع سلسلة)
يحصل على Tensor المرتبط باسم الإدخال الخاص واسم طريقة التوقيع.
طويل
getLastNativeInferenceDurationNanoseconds()
تعرض توقيت الاستنتاج الأصلي.
int
getOutputIndex(سلسلة opName)
الحصول على فهرس للناتج وفقًا لاسم عملية المخرجات.
Tensor
getOutputTensor(int objectIndex)
يحصل على Tensor المرتبط بفهرس الإخراج المقدَّم.
int
getOutputTensorCount()
الحصول على عدد Tensors للمخرجات.
Tensor
getOutputTensorFromSignature(سلسلة المخرجات Name, سلسلة توقيع)
الحصول على Tensor المرتبط باسم الإخراج المقدم بطريقة توقيع معينة.
String[]
getSignatureInputs(مفتاح توقيع سلسلة)
للحصول على قائمة مدخلات SignatureDefs للطريقة signatureKey.
String[]
getSignatureKeys()
للحصول على قائمة بأسماء طرق SignatureDef التي تم تصديرها والمتاحة في النموذج.
String[]
getSignatureOutputs(مفتاح توقيع سلسلة)
الحصول على قائمة مخرجات SignatureDefs للطريقة signatureKey
فراغ
resetVariableTensors()
إعدادات متقدّمة: لإعادة ضبط جميع قيم مترابطة المتغيّرات إلى القيمة التلقائية
فراغ
resizeInput(int idx, int[] dims, boolean strict)
لتغيير حجم إدخال idx-th للنموذج الأصلي إلى وحدات تعتيم محددة.
فراغ
resizeInput(int idx, int[] تتعلق بتعتيم الشاشة)
لتغيير حجم إدخال idx-th للنموذج الأصلي إلى وحدات تعتيم محددة.
فراغ
run(إدخال Object، إخراج Object)
تعمل على تشغيل استنتاج النموذج إذا كان النموذج يستخدم إدخالاً واحدًا فقط ويوفر ناتجًا واحدًا فقط.
فراغ
runForMultipleInputsOutputs(إدخالات Object[] وMap<عدد صحيح، Object>)
لتنفيذ استنتاج النموذج إذا كان النموذج يستخدم إدخالات متعددة أو يعرض مخرجات متعددة
فراغ
runSignature(إدخالات الخريطة<String, Object> والمخرجات الخريطة<السلسلة والكائنات>)
مثل runSignature(Map, Map, String) ولكنها لا تتطلب تمرير مفتاح توقيع، مع افتراض أن النموذج يحتوي على SignatureDef واحد.
فراغ
runSignature(إدخالات الخريطة<String, Object> المدخلات والخريطة<السلسلة ومخرجات الكائنات> والسلسلة بالتوقيع)
لتنفيذ استنتاج النموذج بناءً على SignatureDef المقدَّمة من خلال signatureKey.
فراغ
setCancelled(تم إلغاء القيمة المنطقية)
إعدادات متقدّمة: تمنع الاستنتاج في منتصف المكالمة الواردة إلى run(Object, Object).

الطرق المكتسبة

الشركات المصنّعة العامة

علنية الترجمة الفورية (ملف modelFile)

يؤدي إلى إعداد Interpreter.

المعلمات
modelFile ملف نموذج TF Lite المدرَّب مسبقًا.
الرميات
IllegalArgumentException إذا كان modelFile لا يشفّر ملف TensorFlow Lite صالح الأمثل.

علنية الترجمة الفورية (File modelFile، Interpreter.Options)

يؤدي هذا الإجراء إلى إعداد Interpreter وتحديد خيارات تخصيص سلوك ميزة "الترجمة الفورية".

المعلمات
modelFile ملف نموذج TF Lite المدرَّب مسبقًا
الخيارات مجموعة من الخيارات لتخصيص سلوك ميزة "الترجمة الفورية"
الرميات
IllegalArgumentException إذا كان modelFile لا يشفّر ملف TensorFlow Lite صالح الأمثل.

علنية الترجمة الفورية (ByteBuffer byteBuffer)

يتم إعداد Interpreter باستخدام ByteBuffer من ملف نموذج.

يجب عدم تعديل ByteBuffer بعد إنشاء Interpreter. تشير رسالة الأشكال البيانية يمكن أن تكون السمة ByteBuffer إما MappedByteBuffer الذي يربط بين ملف الذاكرة في ملف النموذج، أو توجيه ByteBuffer لـNativeOrder() الذي يحتوي على محتوى البايت من أحد النماذج.

المعلمات
byteBuffer
الرميات
IllegalArgumentException إذا لم تكن byteBuffer علامة MappedByteBuffer أو قيمة مباشرة ByteBuffer من originalOrder.

علنية الترجمة الفورية (خيارات ByteBuffer byteBuffer، Interpreter.Options)

يتم إعداد Interpreter باستخدام ByteBuffer من ملف نموذج ومجموعة من مخصص Interpreter.Options

يجب عدم تعديل ByteBuffer بعد إنشاء Interpreter. يمكن أن تكون قيمة ByteBuffer إما MappedByteBuffer التي تحدّده الذاكرة ملف نموذج أو ByteBuffer مباشر من nonOrder() يحتوي على محتوى وحدات البايت من نموذج ما.

المعلمات
byteBuffer
الخيارات
الرميات
IllegalArgumentException إذا لم تكن byteBuffer علامة MappedByteBuffer أو قيمة مباشرة ByteBuffer من originalOrder.

الطرق العامة

علنية فراغ allocateTensors ()

يتم تعديل عمليات التخصيص صراحةً لجميع وحدات قياس الأداء، إذا لزم الأمر.

سيؤدي ذلك إلى نشر الأشكال وعمليات تخصيص الذاكرة لأعداد المتوترات التابعة باستخدام المدخلات. شكل أو أشكال مترابطة(Tenor) كما هو موضح.

ملاحظة: هذه المكالمة *اختيارية تمامًا*. سيتم تخصيص Tensor تلقائيًا أثناء في حال تغيير حجم أي من مقادير الإدخال. تكون هذه المكالمة مفيدة للغاية في تحديد لأي أداة متجهة للمخرجات قبل تنفيذ الرسم البياني، على سبيل المثال،

 interpreter.resizeInput(0, new int[]{1, 4, 4, 3}));
 interpreter.allocateTensors();
 FloatBuffer input = FloatBuffer.allocate(interpreter.getInputTensor(0).numElements());
 // Populate inputs...
 FloatBuffer output = FloatBuffer.allocate(interpreter.getOutputTensor(0).numElements());
 interpreter.run(input, output)
 // Process outputs...

ملاحظة: تحتوي بعض الرسومات البيانية على مخرجات ذات شكل ديناميكي، وفي هذه الحالة قد لا يكون شكل الإخراج النشر بالكامل حتى يتم تنفيذ الاستنتاج.

علنية فراغ إغلاق ()

إصدار الموارد المرتبطة بالمثيل InterpreterApi

علنية تدخُّل دفاعي getInputIndex (سلسلة opName)

الحصول على فهرس للمدخل حسب اسم العملية للمدخل

المعلمات
opName

علنية Tensor getInputTensor (int enterIndex)

يحصل على Tensor المرتبط بفهرس الإدخال المتوفر.

المعلمات
inputIndex

علنية تدخُّل دفاعي getInputTensorCount ()

للحصول على عدد مترابطات الإدخال.

علنية Tensor getInputTensorFromSignature (سلسلة enterName, سلسلة مفتاح توقيع)

يحصل على Tensor المرتبط باسم الإدخال الخاص واسم طريقة التوقيع.

تحذير: هذه واجهة برمجة تطبيقات تجريبية وقابلة للتغيير.

المعلمات
inputName اسم الإدخال في التوقيع
signatureKey يمكن ترك مفتاح التوقيع الذي يحدد SignatureDef، فارغًا إذا كان النموذج يحتوي على توقيع واحد.
الرميات
IllegalArgumentException إذا كانت قيمة inputName أو signatureKey فارغة أو خالية، أو تم تقديم اسم غير صالح.

علنية طويل getLastNativeInferenceDurationNanoseconds ()

تعرض توقيت الاستنتاج الأصلي.

علنية تدخُّل دفاعي getOutputIndex (سلسلة opName)

الحصول على فهرس للناتج وفقًا لاسم عملية المخرجات.

المعلمات
opName

علنية Tensor getOutputTensor (int consentIndex)

يحصل على Tensor المرتبط بفهرس الإخراج المقدَّم.

ملاحظة: قد لا تتم تعبئة تفاصيل مترابط الإخراج (مثل الشكل) بالكامل إلا بعد الاستنتاج يتم تنفيذه. إذا كنت بحاجة إلى تفاصيل محدّثة *قبل* تنفيذ الاستنتاج (على سبيل المثال، بعد تغيير حجم إدخال متنسورة، والذي قد يلغي صلاحية أشكال متّجه الإخراج)، استخدم allocateTensors() من أجل تؤدي إلى إطلاق التخصيص ونشر الأشكال بشكل صريح. لاحظ أنه بالنسبة للرسومات البيانية ذات أشكال الإخراج التي تعتمد على *قيم* المدخلات، فقد لا يتم تحديد شكل الإخراج بشكل كامل حتى تشغيل الاستنتاج.

المعلمات
outputIndex

علنية تدخُّل دفاعي getOutputTensorCount ()

الحصول على عدد Tensors للمخرجات.

علنية Tensor getOutputTensorFromSignature (سلسلة اسم الإخراج سلسلة مفتاح التوقيع)

الحصول على Tensor المرتبط باسم الإخراج المقدم بطريقة توقيع معينة.

ملاحظة: قد لا تتم تعبئة تفاصيل مترابط الإخراج (مثل الشكل) بالكامل إلا بعد الاستنتاج يتم تنفيذه. إذا كنت بحاجة إلى تفاصيل محدّثة *قبل* تنفيذ الاستنتاج (على سبيل المثال، بعد تغيير حجم إدخال متنسورة، والذي قد يلغي صلاحية أشكال متّجه الإخراج)، استخدم allocateTensors() من أجل تؤدي إلى إطلاق التخصيص ونشر الأشكال بشكل صريح. لاحظ أنه بالنسبة للرسومات البيانية ذات أشكال الإخراج التي تعتمد على *قيم* المدخلات، فقد لا يتم تحديد شكل الإخراج بشكل كامل حتى تشغيل الاستنتاج.

تحذير: هذه واجهة برمجة تطبيقات تجريبية وقابلة للتغيير.

المعلمات
outputName اسم الإخراج في التوقيع
signatureKey يمكن ترك مفتاح التوقيع الذي يحدد SignatureDef، فارغًا إذا كان النموذج يحتوي على توقيع واحد.
الرميات
IllegalArgumentException إذا كانت قيمة outputName أو signatureKey لا قيمة أو تم إدخال اسم فارغ أو غير صالح.

علنية String[] getSignatureInputs (سلسلة مفتاح التوقيع)

للحصول على قائمة مدخلات SignatureDefs للطريقة signatureKey.

تحذير: هذه واجهة برمجة تطبيقات تجريبية وقابلة للتغيير.

المعلمات
signatureKey

علنية String[] getSignatureKeys ()

للحصول على قائمة بأسماء طرق SignatureDef التي تم تصديرها والمتاحة في النموذج.

تحذير: هذه واجهة برمجة تطبيقات تجريبية وقابلة للتغيير.

علنية String[] getSignatureOutputs (سلسلة مفتاح التوقيع)

الحصول على قائمة مخرجات SignatureDefs للطريقة signatureKey

تحذير: هذه واجهة برمجة تطبيقات تجريبية وقابلة للتغيير.

المعلمات
signatureKey

علنية فراغ resetVariableTensors ()

إعدادات متقدّمة: لإعادة ضبط جميع قيم مترابطة المتغيّرات إلى القيمة التلقائية

إذا لم يكن هناك مخزن مؤقت مرتبط بمتغير tensor، ستتم إعادة ضبطه على الصفر.

تحذير: هذه واجهة برمجة تطبيقات تجريبية وقابلة للتغيير.

علنية فراغ resizeInput (int idx, int[] تتعلق بالتعتيم، منطقي)

لتغيير حجم إدخال idx-th للنموذج الأصلي إلى وحدات تعتيم محددة.

عندما تكون القيمة "متشددة" على "صحيح"، لا يمكن تغيير حجم سوى الأبعاد غير المعروفة. السمات غير المعروفة هي يشار إليه باسم `-1` في الصفيف الذي يتم عرضه بواسطة `Tensor.shapeSignature()`.

المعلمات
idx.
إضاءة خافتة
متشدّد

علنية فراغ resizeInput (int idx, int[] تعتيم)

لتغيير حجم إدخال idx-th للنموذج الأصلي إلى وحدات تعتيم محددة.

المعلمات
idx.
إضاءة خافتة

علنية فراغ تشغيل (إدخال كائن، إخراج الكائن)

تعمل على تشغيل استنتاج النموذج إذا كان النموذج يستخدم إدخالاً واحدًا فقط ويوفر ناتجًا واحدًا فقط.

تحذير: تكون واجهة برمجة التطبيقات أكثر كفاءة إذا كان Buffer (يُفضل أن يكون مباشرًا، ولكن غير مطلوب) تُستخدم كنوع بيانات الإدخال/الإخراج. يُرجى استخدام Buffer للحصول على الخلاصات والجلب بيانات أولية لتحقيق أداء أفضل. تشمل أنواع Buffer الملموسة التالية: مدعوم:

  • ByteBuffer - متوافق مع أي نوع من أنواع Tensor الأساسية.
  • FloatBuffer - متوافق مع العشرات العائمة.
  • IntBuffer: متوافق مع int32 Tensors
  • LongBuffer - متوافق مع int64 Tensors.
يُرجى العلم أنّ الأنواع المنطقية لا يمكن استخدامها إلا كصفائف، وليس كقيم Buffer أو كمدخلات عددية.

المعلمات
مصدر الإدخال مصفوفة أو مصفوفة متعددة الأبعاد، أو Buffer من الأنواع الأساسية بما في ذلك int وfloat وlong وbyte. إنّ Buffer هي الطريقة المفضّلة لتمرير القيم الكبيرة. بيانات الإدخال للأنواع الأولية، بينما تتطلب أنواع السلاسل استخدام (متعدد الأبعاد) مسار إدخال الصفيفة. عند استخدام Buffer، يجب أن يظل محتواه بدون تغيير حتى يتم استنتاج النموذج، ويجب أن يتأكّد المتصل من أنّ قيمة Buffer موضع القراءة المناسب. يُسمَح بقيمة null فقط إذا كان المتصل يستخدم Delegate الذي يتيح إمكانية التشغيل التفاعلي لمؤشر المخزن المؤقت، وتم ربط هذا المخزن المؤقت الإدخال Tensor
output مصفوفة متعددة الأبعاد من بيانات المخرجات أو Buffer من الأنواع الأساسية بما في ذلك int وfloat وlong وbyte. عند استخدام Buffer، يجب أن يتأكد المتصل من أنّ المتصل من تعيين موضع الكتابة المناسب. يُسمح باستخدام القيمة الفارغة، وهي مفيدة حالات معيّنة، مثلًا إذا كان المتصل يستخدم Delegate تسمح بمؤشر المخزن المؤقت إمكانية التشغيل التفاعلي، وتم ربط مثل هذا المخزن المؤقت بالمخرجات Tensor (يُرجى الاطّلاع أيضًا على Interpreter.Options#setAllowBufferHandleOutput(boolean))، أو إذا كان الرسم البياني يحتوي على مخرجات ذات شكل ديناميكي وكان على المتصل الاستعلام عن شكل Tensor الناتج بعد استدعاء الاستنتاج، ما يؤدي إلى جلب البيانات مباشرةً من الناتج Tenor (عبر Tensor.asReadOnlyBuffer()).

علنية فراغ runForMultipleInputsOutputs (إدخالات Object[]، الخريطة<عدد صحيح والكائن> المخرجات)

لتنفيذ استنتاج النموذج إذا كان النموذج يستخدم إدخالات متعددة أو يعرض مخرجات متعددة

تحذير: تكون واجهة برمجة التطبيقات أكثر كفاءة إذا كانت Buffer (يُفضَّل أن تكون مباشرة، ولكن غير مطلوبة) تُستخدم كأنواع بيانات الإدخال/الإخراج. يُرجى استخدام Buffer للحصول على الخلاصات والجلب بيانات أولية لتحقيق أداء أفضل. تشمل أنواع Buffer الملموسة التالية: مدعوم:

  • ByteBuffer - متوافق مع أي نوع من أنواع Tensor الأساسية.
  • FloatBuffer - متوافق مع العشرات العائمة.
  • IntBuffer: متوافق مع int32 Tensors
  • LongBuffer - متوافق مع int64 Tensors.
يُرجى العلم أنّ الأنواع المنطقية لا يمكن استخدامها إلا كصفائف، وليس كقيم Buffer أو كمدخلات عددية.

ملاحظة: قيم null للعناصر الفردية لـ inputs وoutputs هي السماح بذلك فقط إذا كان المتصل يستخدم Delegate تسمح بإمكانية التشغيل المتداخل لمؤشر المخزن المؤقت تم ربط هذا المخزن المؤقت بالمدخلات أو المخرجات Tensor(المخرجات) المقابلة.

المعلمات
مصادر الإدخال صفيف من بيانات الإدخال. يجب أن تكون المدخلات بالترتيب نفسه كمدخلات الأمثل. يمكن أن يكون كل إدخال مصفوفة أو مصفوفة متعددة الأبعاد، أو يمكن أن يمثل Buffer الأنواع الأولية بما في ذلك int وfloat وlong وbyte. Buffer هي الطريقة المفضّلة. لتمرير بيانات المدخلات الكبيرة، بينما تتطلب أنواع السلاسل استخدام الصفيف (متعدد الأبعاد) مسار الإدخال. عند استخدام Buffer، يجب أن يظل المحتوى بدون تغيير إلى أن يتم استخدام النموذج يتم الاستنتاج، ويجب أن يتأكّد المتصل من أنّ "Buffer" في الوقت المناسب موضع القراءة.
النتائج مؤشرات ناتج تعيين الخريطة إلى صفائف متعددة الأبعاد لبيانات المخرجات أو Buffer من الأنواع الأساسية بما في ذلك int وfloat وlong وبايت. يحتاج فقط إلى جعل الإدخالات للمخرجات التي سيتم استخدامها. عند استخدام Buffer، يجب أن يتأكد المتصل من أنّ المتصل من تعيين موضع الكتابة المناسب. قد تكون الخريطة فارغة للحالات التي تُستخدَم مؤشرات المخزن المؤقت لبيانات مترابط الإخراج أو الحالات التي يتم فيها استخدام المُخرجات ديناميكيًا ويجب على المتصل الاستعلام عن شكل الناتج Tensor بعد الاستنتاج تم استدعاء، جلب البيانات مباشرةً من متوتر الإخراج (عبر Tensor.asReadOnlyBuffer()).

علنية فراغ runSignature (الخريطة<سلسلة, الكائنات> مدخلات, الخريطة<السلسلة والكائن> مخرجات)

مثل runSignature(Map, Map, String) ولكنها لا تتطلب تمرير مفتاح توقيع، مع افتراض أن النموذج يحتوي على SignatureDef واحد. إذا كان النموذج يحتوي على أكثر من SignatureDef، وطرح استثناء.

تحذير: هذه واجهة برمجة تطبيقات تجريبية وقابلة للتغيير.

المعلمات
مصادر الإدخال
النتائج

علنية فراغ runSignature (الخريطة<سلسلة, الكائن> مدخلات, الخريطة<السلسلة والكائن> مخرجات، السلسلة مفتاح التوقيع)

لتنفيذ استنتاج النموذج بناءً على SignatureDef المقدَّمة من خلال signatureKey.

راجِع run(Object, Object) للحصول على مزيد من التفاصيل حول مصادر الإدخال والإخراج المسموح بها. وأنواع البيانات المختلفة.

تحذير: هذه واجهة برمجة تطبيقات تجريبية وقابلة للتغيير.

المعلمات
مصادر الإدخال خريطة من اسم الإدخال في SignatureDef إلى كائن إدخال.
النتائج ربط من اسم الإخراج في SignatureDef إلى بيانات الإخراج قد يكون هذا فارغًا إذا يريد المتصل الاستعلام عن بيانات Tensor مباشرةً بعد الاستنتاج (على سبيل المثال، إذا كانت أو كان شكل الإخراج ديناميكيًا، أو يتم استخدام مؤشرات المخزن المؤقت للمخرجات).
signatureKey مفتاح التوقيع الذي يحدّد SignatureDef
الرميات
IllegalArgumentException إذا كانت السمة inputs فارغة أو خالية، أو إذا كانت السمة outputs أو لا قيمة signatureKey هي قيمة أو إذا حدث خطأ عند تشغيل الاستنتاج.

علنية فراغ setCancelled (تم إلغاء الإجراء المنطقي)

إعدادات متقدّمة: تمنع الاستنتاج في منتصف المكالمة الواردة إلى run(Object, Object).

سيتم ضبط علامة الإلغاء على "صحيح" عند استدعاء هذه الدالة. سوف يترجم المترجم الفوري تأكَّد من العلامة بين استدعاءات العمليات، وإذا كانت true، سيتوقّف المترجم الفوري والتنفيذ. سيظل المترجم الفوري في حالة الإلغاء إلى أن يتم "إلغاء الإلغاء" صراحةً. في setCancelled(false)

تحذير: هذه واجهة برمجة تطبيقات تجريبية وقابلة للتغيير.

المعلمات
تم الإلغاء true لإلغاء الاستنتاج بأفضل جهد من false إلى سيرته الذاتية.
الرميات
IllegalStateException إذا لم يتم إعداد المترجم الفوري باستخدام واجهة برمجة التطبيقات القابلة للإزالة والذي يتم إيقافه افتراضيًا.