Interpreter

पब्लिक फ़ाइनल क्लास अनुवादक

TensorFlow Lite की मदद से, मॉडल अनुमान लगाने के लिए ड्राइवर क्लास.

ध्यान दें: अगर आपको किसी भी "प्रयोग के तौर पर उपलब्ध" सुविधा के ऐक्सेस की ज़रूरत नहीं है एपीआई की सुविधाओं के बारे में नीचे बताया गया है. इनमें से किसी का भी इस्तेमाल करें सीधे अनुवादक का इस्तेमाल करने के बजाय InterpreterApi और interpreterफ़ैक्ट्री का इस्तेमाल करें.

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 में बदलने पर, इनपुट और आउटपुट के ऑर्डर तय किए जाते हैं साथ ही, Toco मॉडल में इनपुट के डिफ़ॉल्ट आकार होते हैं.

जब इनपुट को (मल्टी-डाइमेंशन) सरणियों के रूप में दिया जाता है, तो उनसे जुड़े इनपुट टेंसर उस सरणी के आकार के अनुसार निहित रूप से आकार बदल दिया जाए. जब इनपुट Buffer के रूप में दिए जाते हैं टाइप नहीं किया गया है, इंप्लिसिट साइज़ बदला नहीं गया है; कॉलर को यह पक्का करना होगा कि Buffer बाइट साइज़ या तो उससे जुड़े टेंसर से मेल खाता है या वह पहले resizeInput(int, int[]) से टेंसर का साइज़ बदलता है. टेन्सर के आकार और टाइप की जानकारी, Tensor क्लास की मदद से ली जा सकती है. यह जानकारी, getInputTensor(int) और getOutputTensor(int) की मदद से मिलती है.

चेतावनी:Interpreter इंस्टेंस थ्रेड से सुरक्षित नहीं हैं. Interpreter उन संसाधनों का मालिक है जिन्हें close() को शुरू करके साफ़ तौर पर मुक्त किया जाना चाहिए

TFLite लाइब्रेरी को NDK API 19 के हिसाब से बनाया गया है. यह 19 से नीचे के Android API लेवल के लिए काम कर सकता है, लेकिन इसकी कोई गारंटी नहीं है.

नेस्ट की गई क्लास

क्लास Interpreter.Options रनटाइम इंटरप्रेटर के व्यवहार को कंट्रोल करने के लिए विकल्प क्लास.

पब्लिक कंस्ट्रक्टर

अनुवादक(फ़ाइल ModelFile)
Interpreter शुरू करता है.
अनुवादक(फ़ाइल ModelFile, Interpreter.Options विकल्प)
Interpreter शुरू करता है और अनुवादक के व्यवहार को पसंद के मुताबिक बनाने के विकल्प तय करता है.
अनुवादक(ByteBuffer byteBuffer)
मॉडल फ़ाइल के ByteBuffer के साथ Interpreter को शुरू करता है.
अनुवादक(ByteBuffer byteBuffer, Interpreter.Options विकल्प)
मॉडल फ़ाइल के ByteBuffer और सेट के साथ Interpreter शुरू करता है कस्टम Interpreter.Options.

सार्वजनिक तरीके

अमान्य
allocateTensors()
अगर ज़रूरी हो, तो सभी टेंसर के लिए, ऐलोकेशन को साफ़ तौर पर अपडेट करता है.
अमान्य
बंद करें()
InterpreterApi इंस्टेंस से जुड़े संसाधन रिलीज़ करें.
int
getInputIndex(स्ट्रिंग opName)
इनपुट के ऑप का नाम दिए गए किसी इनपुट का इंडेक्स फ़ेच करता है.
Tensor
getInputTensor(int इनपुटIndex)
दिए गए इनपुट इंडेक्स से जुड़े Tensor को फ़ेच करता है.
int
getInputTensorCount()
इनपुट टेंसर की संख्या हासिल करता है.
Tensor
getInputTensorFromSignature(StringinputName, StringSignatureKey)
यह नीति, दिए गए इनपुट के नाम और हस्ताक्षर के तरीके के नाम से जुड़े Tensor को हासिल करती है.
लंबी
getLastNativeInferenceDurationNanoseconds()
नेटिव अनुमान का समय दिखाता है.
int
getOutputIndex(स्ट्रिंग opName)
आउटपुट के सेशन का नाम दिए जाने पर आउटपुट का इंडेक्स मिलता है.
Tensor
getOutputTensor(इंट आउटपुट इंडेक्स)
यह फ़ंक्शन, दिए गए आउटपुट इंडेक्स से जुड़े Tensor को फ़ेच करता है.
int
getOutputTensorCount()
आउटपुट टेन्सर की संख्या बताता है.
Tensor
getOutputTensorFromSignature(String आउटपुटName, String सिग्नेचर की)
यह फ़ंक्शन, दिए गए आउटपुट नाम से जुड़े Tensor को सिग्नेचर वाले तरीके से हासिल करता है.
String[]
getSignatureInputs(स्ट्रिंग सिग्नेचरKey)
यह विकल्प, signatureKey तरीके के लिए SignatureDefs के इनपुट की सूची हासिल करता है.
String[]
getSignatureKeys()
इस कार्ड में, SignatureDef के एक्सपोर्ट किए गए तरीकों के नामों की सूची देखी जा सकती है. यह उन तरीकों के लिए उपलब्ध है जो मॉडल में उपलब्ध हैं.
String[]
getSignatureOutputs(स्ट्रिंग सिग्नेचरKey)
यह विकल्प, signatureKey तरीके के लिए SignatureDefs आउटपुट की सूची हासिल करता है.
अमान्य
resetVariableTensors()
बेहतर: सभी वैरिएबल टेंसर को डिफ़ॉल्ट वैल्यू पर रीसेट करता है.
अमान्य
resizeInput(int idx, int[] dims, boolean strict)
यह नेटिव मॉडल के idx-वें इनपुट का साइज़, दिए गए डाइमेंशन में बदलता है.
अमान्य
resizeInput(int idx, int[] डिम)
यह नेटिव मॉडल के idx-वें इनपुट का साइज़, दिए गए डाइमेंशन में बदलता है.
अमान्य
दौड़ना(ऑब्जेक्ट इनपुट, ऑब्जेक्ट आउटपुट)
अगर मॉडल सिर्फ़ एक इनपुट लेता है और सिर्फ़ एक आउटपुट देता है, तो मॉडल अनुमान लागू करता है.
अमान्य
runForMultipleInputsOutputs(Object[] इनपुट, Maps<Integerऑब्जेक्ट> आउटपुट)
अगर मॉडल एक से ज़्यादा इनपुट लेता है या एक से ज़्यादा आउटपुट दिखाता है, तो मॉडल अनुमान चलाता है.
अमान्य
runSignature(मैप<स्ट्रिंगऑब्जेक्ट> इनपुट, मैप<स्ट्रिंगऑब्जेक्ट> आउटपुट)
runSignature(Map, Map, String) की तरह ही, लेकिन इसके लिए हस्ताक्षर की पासकोड पास करने की ज़रूरत नहीं होती है, यह मानते हुए कि मॉडल में एक SignatureDef है.
अमान्य
runSignature(मैप<स्ट्रिंगऑब्जेक्ट> इनपुट, मैप<स्ट्रिंगऑब्जेक्ट> आउटपुट, स्ट्रिंग सिग्नेचरKey)
signatureKey से मिले SignatureDef के आधार पर मॉडल का अनुमान चलाता है.
अमान्य
setCancelled(बूलियन रद्द किया गया)
बेहतर सेटिंग: run(Object, Object) को कॉल करते समय, अनुमान को बंद कर देती है.

इनहेरिट किए गए तरीके

पब्लिक कंस्ट्रक्टर

सार्वजनिक अनुवादक (फ़ाइल मॉडल फ़ाइल)

Interpreter शुरू करता है.

पैरामीटर
modelFile पहले से ट्रेन किए गए TF Lite मॉडल की फ़ाइल.
थ्रो
IllegalArgumentException अगर modelFile मान्य TensorFlow Lite को कोड में नहीं बदलता है मॉडल.

सार्वजनिक अनुवादक (फ़ाइल मॉडल फ़ाइल, Interpreter.Options विकल्प)

Interpreter शुरू करता है और अनुवादक के व्यवहार को पसंद के मुताबिक बनाने के विकल्प तय करता है.

पैरामीटर
modelFile पहले से ट्रेन किए गए TF Lite मॉडल की फ़ाइल
विकल्प अनुवादक के व्यवहार को पसंद के मुताबिक बनाने के लिए विकल्पों का सेट
थ्रो
IllegalArgumentException अगर modelFile मान्य TensorFlow Lite को कोड में नहीं बदलता है मॉडल.

सार्वजनिक अनुवादक (ByteBuffer बाइटबफ़र)

मॉडल फ़ाइल के ByteBuffer के साथ Interpreter को शुरू करता है.

Interpreter बनाने के बाद, बाइटबफ़र में बदलाव नहीं किया जाना चाहिए. कॉन्टेंट बनाने ByteBuffer, MappedByteBuffer हो सकता है जो मॉडल फ़ाइल को मेमोरी मैप करता हो या localOrder() का सीधे ByteBuffer जिसमें मॉडल का बाइट कॉन्टेंट शामिल होता है.

पैरामीटर
byteBuffer
थ्रो
IllegalArgumentException अगर byteBuffer न तो MappedByteBuffer है, न ही स्थानीय ऑर्डर का ByteBuffer डायरेक्ट करें.

सार्वजनिक अनुवादक (ByteBuffer byteBuffer, Interpreter.Options के विकल्प)

मॉडल फ़ाइल के ByteBuffer और सेट के साथ Interpreter शुरू करता है कस्टम Interpreter.Options.

Interpreter बनाने के बाद, ByteBuffer में बदलाव नहीं किया जाना चाहिए. ByteBuffer या तो MappedByteBuffer हो सकता है. यह मेमोरी-मैप मॉडल फ़ाइल या localOrder() का डायरेक्ट ByteBuffer जिसमें बाइट कॉन्टेंट होता है काम करती हैं.

पैरामीटर
byteBuffer
विकल्प
थ्रो
IllegalArgumentException अगर byteBuffer न तो MappedByteBuffer है, न ही स्थानीय ऑर्डर का ByteBuffer डायरेक्ट करें.

सार्वजनिक तरीके

सार्वजनिक अमान्य allocateTensors ()

अगर ज़रूरी हो, तो सभी टेंसर के लिए, ऐलोकेशन को साफ़ तौर पर अपडेट करता है.

यह इनपुट का इस्तेमाल करके, डिपेंडेंट टेंसर के लिए आकार और मेमोरी का बंटवारा लागू करेगा टेंसर आकार दिए गए हैं.

ध्यान दें: यह कॉल *पूरी तरह से ज़रूरी नहीं है*. टेन्सर इस दौरान अपने-आप असाइन हो जाएगा इनपुट टेंसर का साइज़ बदलने पर, एक्ज़ीक्यूशन करेगा. इस कॉल की मदद से, यह तय किया जा सकता है कि ग्राफ़ को एक्ज़ीक्यूट करने से पहले, किसी आउटपुट टेंसर की अलग-अलग आकृतियां, जैसे कि

 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 (इंट इनपुटइंडेक्स)

दिए गए इनपुट इंडेक्स से जुड़े Tensor को फ़ेच करता है.

पैरामीटर
inputIndex

सार्वजनिक आईएनटी getInputTensorCount ()

इनपुट टेंसर की संख्या हासिल करता है.

सार्वजनिक Tensor getInputTensorFromSignature (स्ट्रिंग InputName, स्ट्रिंग सिग्नेचर की)

यह नीति, दिए गए इनपुट के नाम और हस्ताक्षर के तरीके के नाम से जुड़े Tensor को हासिल करती है.

चेतावनी: यह एक प्रयोग के तौर पर शुरू किया गया एपीआई है और इसमें बदलाव हो सकता है.

पैरामीटर
inputName हस्ताक्षर में नाम डालें.
signatureKey SignatureDef की पहचान करने वाली हस्ताक्षर कुंजी शून्य हो सकती है. ऐसा तभी होता है, जब मॉडल एक हस्ताक्षर.
थ्रो
IllegalArgumentException अगर inputName या signatureKey खाली या खाली है, या नाम अमान्य है.

सार्वजनिक लंबी getLastNativeInferenceDurationNanoseconds ()

नेटिव अनुमान का समय दिखाता है.

सार्वजनिक आईएनटी getOutputIndex (स्ट्रिंग opName)

आउटपुट के सेशन का नाम दिए जाने पर आउटपुट का इंडेक्स मिलता है.

पैरामीटर
opName

सार्वजनिक Tensor getOutputTensor (इंट आउटपुट इंडेक्स)

यह फ़ंक्शन, दिए गए आउटपुट इंडेक्स से जुड़े Tensor को फ़ेच करता है.

ध्यान दें: आउटपुट टेंसर की जानकारी (जैसे, आकार) तब तक पूरी तरह से भरी नहीं होगी, जब तक अनुमान नहीं लगाया जाता एक-एक करके ट्रिगर किया जाता है. अगर आपको अनुमान चलाने से *पहले* अपडेट की गई जानकारी की ज़रूरत है (उदाहरण के लिए, साइज़ बदलने के बाद इनपुट टेंसर, जो आउटपुट टेंसर आकार को अमान्य कर सकता है, allocateTensors() का इस्तेमाल करके यह साफ़ तौर पर ऐलोकेशन और आकार के प्रमोशन को ट्रिगर करता है. ध्यान दें कि, आउटपुट आकारों वाले ग्राफ़ के लिए जो इनपुट *वैल्यू* पर निर्भर होते हैं. इसलिए, हो सकता है कि आउटपुट का आकार तब तक पूरी तरह तय न हो, जब तक रनिंग अनुमान.

पैरामीटर
outputIndex

सार्वजनिक आईएनटी getOutputTensorCount ()

आउटपुट टेन्सर की संख्या बताता है.

सार्वजनिक Tensor getOutputTensorFromSignature (StringOutputName, स्ट्रिंगSignatureKey)

यह फ़ंक्शन, दिए गए आउटपुट नाम से जुड़े Tensor को सिग्नेचर वाले तरीके से हासिल करता है.

ध्यान दें: आउटपुट टेंसर की जानकारी (जैसे, आकार) तब तक पूरी तरह से भरी नहीं होगी, जब तक अनुमान नहीं लगाया जाता एक-एक करके ट्रिगर किया जाता है. अगर आपको अनुमान चलाने से *पहले* अपडेट की गई जानकारी की ज़रूरत है (उदाहरण के लिए, साइज़ बदलने के बाद इनपुट टेंसर, जो आउटपुट टेंसर आकार को अमान्य कर सकता है, allocateTensors() का इस्तेमाल करके यह साफ़ तौर पर ऐलोकेशन और आकार के प्रमोशन को ट्रिगर करता है. ध्यान दें कि, आउटपुट आकारों वाले ग्राफ़ के लिए जो इनपुट *वैल्यू* पर निर्भर होते हैं. इसलिए, हो सकता है कि आउटपुट का आकार तब तक पूरी तरह तय न हो, जब तक रनिंग अनुमान.

चेतावनी: यह एक प्रयोग के तौर पर शुरू किया गया एपीआई है और इसमें बदलाव हो सकता है.

पैरामीटर
outputName हस्ताक्षर में आउटपुट नाम.
signatureKey SignatureDef की पहचान करने वाली हस्ताक्षर कुंजी शून्य हो सकती है. ऐसा तभी होता है, जब मॉडल एक हस्ताक्षर.
थ्रो
IllegalArgumentException अगर outputName या signatureKey खाली है या खाली या अमान्य नाम दिया गया है.

सार्वजनिक String[] getSignatureInputs (स्ट्रिंग सिग्नेचर की)

यह विकल्प, signatureKey तरीके के लिए SignatureDefs के इनपुट की सूची हासिल करता है.

चेतावनी: यह एक प्रयोग के तौर पर शुरू किया गया एपीआई है और इसमें बदलाव हो सकता है.

पैरामीटर
signatureKey

सार्वजनिक String[] getSignatureKeys ()

इस कार्ड में, SignatureDef के एक्सपोर्ट किए गए तरीकों के नामों की सूची देखी जा सकती है. यह उन तरीकों के लिए उपलब्ध है जो मॉडल में उपलब्ध हैं.

चेतावनी: यह एक प्रयोग के तौर पर शुरू किया गया एपीआई है और इसमें बदलाव हो सकता है.

सार्वजनिक String[] getSignatureOutputs (स्ट्रिंग सिग्नेचर की)

यह विकल्प, signatureKey तरीके के लिए SignatureDefs आउटपुट की सूची हासिल करता है.

चेतावनी: यह एक प्रयोग के तौर पर शुरू किया गया एपीआई है और इसमें बदलाव हो सकता है.

पैरामीटर
signatureKey

सार्वजनिक अमान्य resetVariableTensors ()

बेहतर: सभी वैरिएबल टेंसर को डिफ़ॉल्ट वैल्यू पर रीसेट करता है.

अगर किसी वैरिएबल टेंसर से जुड़ा बफ़र मौजूद नहीं है, तो उसे शून्य पर रीसेट कर दिया जाएगा.

चेतावनी: यह एक प्रयोग के तौर पर शुरू किया गया एपीआई है और इसमें बदलाव हो सकता है.

सार्वजनिक अमान्य resizeInput (int idx, int[] डिम, बूलियन स्ट्रिक्ट)

यह नेटिव मॉडल के idx-वें इनपुट का साइज़, दिए गए डाइमेंशन में बदलता है.

जब `स्ट्रिक्ट` 'सही' पर सेट होता है, तो सिर्फ़ अनजान डाइमेंशन का साइज़ बदला जा सकता है. अज्ञात डाइमेंशन ये हैं `Tensor.shapeSignature()` से मिले कलेक्शन में `-1` के तौर पर दिखाया जाता है.

पैरामीटर
idx
डिम
कठोर

सार्वजनिक अमान्य resizeInput (int idx, int[] डिम)

यह नेटिव मॉडल के idx-वें इनपुट का साइज़, दिए गए डाइमेंशन में बदलता है.

पैरामीटर
idx
डिम

सार्वजनिक अमान्य रन (ऑब्जेक्ट इनपुट, ऑब्जेक्ट आउटपुट)

अगर मॉडल सिर्फ़ एक इनपुट लेता है और सिर्फ़ एक आउटपुट देता है, तो मॉडल अनुमान लागू करता है.

चेतावनी: अगर Buffer (सीधे तौर पर, लेकिन ज़रूरी नहीं है) तो एपीआई बेहतर तरीके से काम करेगा का इस्तेमाल इनपुट/आउटपुट डेटा टाइप के तौर पर किया जाता है. फ़ीड करने और फ़ेच करने के लिए, कृपया Buffer का इस्तेमाल करें बेहतर परफ़ॉर्मेंस के लिए शुरुआती डेटा. कॉन्क्रीट के ये Buffer टाइप हैं समर्थित:

  • ByteBuffer - किसी भी पहले से मौजूद Tensor टाइप के साथ काम करता है.
  • FloatBuffer - फ़्लोट टेन्सर के साथ काम करता है.
  • IntBuffer - int32 Tensors के साथ काम करता है.
  • LongBuffer - int64 Tensors के साथ काम करता है.
ध्यान दें कि बूलियन टाइप सिर्फ़ अरे के तौर पर काम करते हैं, Buffers या स्केलर इनपुट के तौर पर नहीं.

पैरामीटर
इनपुट कोई अरे या मल्टीडाइमेंशन वाला अरे, या प्रिमिटिव टाइप का Buffer जिसमें पूर्णांक, फ़्लोट, लंबा, और बाइट शामिल हैं. बड़ी स्क्रीन पास करने के लिए Buffer प्रिमिटिव टाइप के लिए इनपुट डेटा, जबकि स्ट्रिंग टाइप के लिए (मल्टी-डाइमेंशन) अरे इनपुट पाथ. Buffer का इस्तेमाल किए जाने पर, उसके कॉन्टेंट में तब तक कोई बदलाव नहीं होगा, जब तक कि मॉडल का अनुमान लगाया जाता है. कॉल करने वाले व्यक्ति को यह पक्का करना होगा कि Buffer पढ़ने की सही जगह. null वैल्यू सिर्फ़ तब इस्तेमाल की जा सकती है, जब कॉलर किसी Delegate जो बफ़र हैंडल इंटरऑप की अनुमति देता है और ऐसे बफ़र को Tensor इनपुट करें.
आउटपुट आउटपुट डेटा का कई डाइमेंशन वाला अरे या प्रिमिटिव टाइप का Buffer जिसमें पूर्णांक, फ़्लोट, लंबा, और बाइट शामिल हैं. जब Buffer का इस्तेमाल किया जाता है, तो कॉल करने वाले (कॉलर) को यह पक्का करना होता है कि कि यह लिखने के लिए सही जगह सेट कर रहा है. शून्य वैल्यू की अनुमति है और यह इनके लिए काम का है कुछ मामलों में, जैसे कि अगर कॉल करने वाला (कॉलर) Delegate का इस्तेमाल कर रहा हो, जो बफ़र हैंडल की अनुमति देता है इंटरऑपरेट किया जाता है और इस तरह के बफ़र को आउटपुट Tensor से जोड़ा जाता है (Interpreter.Options#setAllowBufferHandleOutput(boolean) को भी देखें), इसके अलावा, अगर ग्राफ़ में डाइनैमिक तरीके से बनाए गए आउटपुट हैं और कॉलर को अनुमान शुरू किए जाने के बाद, आउटपुट Tensor के आकार के लिए क्वेरी करनी है, तो सीधे आउटपुट से डेटा फ़ेच किया जा सकता है tensor (Tensor.asReadOnlyBuffer() के ज़रिए).

सार्वजनिक अमान्य runForMultipleInputsOutputs (ऑब्जेक्ट[] इनपुट, मैप<पूरी संख्याऑब्जेक्ट> आउटपुट)

अगर मॉडल एक से ज़्यादा इनपुट लेता है या एक से ज़्यादा आउटपुट दिखाता है, तो मॉडल अनुमान चलाता है.

चेतावनी: अगर Buffers (सीधे तौर पर, लेकिन ज़रूरी नहीं है) तो एपीआई बेहतर तरीके से काम करेगा इनका इस्तेमाल इनपुट/आउटपुट डेटा टाइप के तौर पर किया जाता है. फ़ीड करने और फ़ेच करने के लिए, कृपया Buffer का इस्तेमाल करें बेहतर परफ़ॉर्मेंस के लिए शुरुआती डेटा. कॉन्क्रीट के ये Buffer टाइप हैं समर्थित:

  • ByteBuffer - किसी भी पहले से मौजूद Tensor टाइप के साथ काम करता है.
  • FloatBuffer - फ़्लोट टेन्सर के साथ काम करता है.
  • IntBuffer - int32 Tensors के साथ काम करता है.
  • LongBuffer - int64 Tensors के साथ काम करता है.
ध्यान दें कि बूलियन टाइप सिर्फ़ अरे के तौर पर काम करते हैं, Buffers या स्केलर इनपुट के तौर पर नहीं.

ध्यान दें: inputs और outputs के व्यक्तिगत एलिमेंट के लिए null की वैल्यू सिर्फ़ तभी अनुमति दी जाती है जब कॉलर ऐसे Delegate का इस्तेमाल कर रहा हो जो बफ़र हैंडल इंटरऑप की अनुमति देता है, और ऐसा बफ़र, उससे जुड़े इनपुट या आउटपुट Tensor के हिसाब से होना चाहिए.

पैरामीटर
इनपुट इनपुट डेटा का कलेक्शन. इनपुट उसी क्रम में होने चाहिए जिस क्रम में इसके इनपुट मौजूद हैं मॉडल. हर इनपुट, अरे या मल्टीडाइमेंशनल अरे हो सकता है. इसके अलावा, इनका Buffer भी हो सकता है प्रिमिटिव टाइप, जैसे कि int, फ़्लोट, लंबा, और बाइट. Buffer पसंदीदा तरीका है बड़ा इनपुट डेटा पास करने के लिए, जबकि स्ट्रिंग टाइप को (मल्टी-डाइमेंशन) अरे का इस्तेमाल करना पड़ता है इनपुट पाथ. Buffer का इस्तेमाल करने पर, इसके कॉन्टेंट में कोई बदलाव नहीं किया जाना चाहिए. अनुमान लगाया जाता है. कॉलर को यह पक्का करना होगा कि Buffer सही है पढ़ने की जगह.
आउटपुट मैप मैपिंग आउटपुट, आउटपुट डेटा या Buffers प्रिमिटिव टाइप के मल्टीडाइमेंशन वाले कलेक्शन को इंडेक्स करता है. इनमें int, फ़्लोट, लॉन्ग, और बाइट शामिल हैं. इसे सिर्फ़ रखना ज़रूरी है इस्तेमाल किए जाने वाले आउटपुट के लिए एंट्री. जब Buffer का इस्तेमाल किया जाता है, तो कॉल करने वाले (कॉलर) को यह पक्का करना होता है कि कि यह लिखने के लिए सही जगह सेट कर रहा है. उन मामलों में मैप खाली हो सकता है जहां या बफ़र हैंडल का इस्तेमाल, आउटपुट टेंसर डेटा के लिए किया जाता है. इसके अलावा, ऐसे मामलों में जहां आउटपुट डाइनैमिक रूप से मिलते हैं आकार दिया गया है और कॉलर को अनुमान लगाने के बाद आउटपुट Tensor आकार की क्वेरी करनी चाहिए शुरू किया, जिससे सीधे आउटपुट टेंसर से (Tensor.asReadOnlyBuffer() के ज़रिए) डेटा फ़ेच किया जा रहा है.

सार्वजनिक अमान्य runSignature (मैप<स्ट्रिंगऑब्जेक्ट> इनपुट, मैप<स्ट्रिंगऑब्जेक्ट> आउटपुट)

runSignature(Map, Map, String) की तरह ही, लेकिन इसके लिए हस्ताक्षर की पासकोड पास करने की ज़रूरत नहीं होती है, यह मानते हुए कि मॉडल में एक SignatureDef है. अगर मॉडल में एक से ज़्यादा SignatureDef हैं तो यह अपवाद बनाओ.

चेतावनी: यह एक प्रयोग के तौर पर शुरू किया गया एपीआई है और इसमें बदलाव हो सकता है.

पैरामीटर
इनपुट
आउटपुट

सार्वजनिक अमान्य runSignature (मैप<स्ट्रिंगऑब्जेक्ट> इनपुट, मैप<स्ट्रिंगऑब्जेक्ट> आउटपुट, स्ट्रिंग सिग्नेचर की)

signatureKey से मिले SignatureDef के आधार पर मॉडल का अनुमान चलाता है.

अनुमति वाले इनपुट और आउटपुट के बारे में ज़्यादा जानकारी के लिए, run(Object, Object) पर जाएं डेटा टाइप.

चेतावनी: यह एक प्रयोग के तौर पर शुरू किया गया एपीआई है और इसमें बदलाव हो सकता है.

पैरामीटर
इनपुट SignatureDef में इनपुट के नाम से इनपुट ऑब्जेक्ट पर लिया गया मैप.
आउटपुट SignatureDef में आउटपुट नाम से आउटपुट डेटा में इस्तेमाल किया गया मैप. यह खाली हो सकता है अगर कॉलर सीधे अनुमान के बाद Tensor डेटा के लिए क्वेरी करना चाहता है (उदाहरण के लिए, अगर आउटपुट का आकार डाइनैमिक होता है या आउटपुट बफ़र हैंडल का इस्तेमाल किया जाता है.
signatureKey SignatureDef की पहचान करने वाली हस्ताक्षर कुंजी.
थ्रो
IllegalArgumentException अगर inputs शून्य या खाली है, अगर outputs या signatureKey शून्य है या अनुमान लगाते समय कोई गड़बड़ी होती है.

सार्वजनिक अमान्य setCancelled (बूलियन रद्द किया गया)

बेहतर सेटिंग: run(Object, Object) को कॉल करते समय, अनुमान को बंद कर देती है.

इस फ़ंक्शन को कॉल करने पर, रद्द करने की प्रक्रिया का फ़्लैग 'सही' पर सेट कर दिया जाएगा. अनुवादक को Op के बोले जाने वाले वाक्यों के बीच में फ़्लैग को चेक करें. अगर यह true है, तो अनुवादक बंद हो जाएगा लागू करता है. अनुवाद करने की सुविधा तब तक रद्द रहेगी, जब तक उसे "रद्द करने की कार्रवाई रद्द" न की गई हो लेखक setCancelled(false).

चेतावनी: यह एक प्रयोग के तौर पर शुरू किया गया एपीआई है और इसमें बदलाव हो सकता है.

पैरामीटर
रद्द किया गया सबसे सही तरीके से अनुमान रद्द करने के लिए true; false से फिर से शुरू करें.
थ्रो
IllegalStateException अगर अनुवादक को रद्द किए जा सकने वाले एलिमेंट के साथ शुरू नहीं किया गया है विकल्प, जो डिफ़ॉल्ट रूप से बंद होता है.
यह भी देखें