Interpreter

संग्रह की मदद से व्यवस्थित रहें अपनी प्राथमिकताओं के आधार पर, कॉन्टेंट को सेव करें और कैटगरी में बांटें.
सार्वजनिक अंतिम श्रेणी दुभाषिया

TensorFlow Lite के साथ मॉडल अनुमान चलाने के लिए ड्राइवर वर्ग।

नोट: यदि आपको नीचे दी गई किसी भी "प्रयोगात्मक" एपीआई सुविधाओं तक पहुंच की आवश्यकता नहीं है, तो सीधे इंटरप्रेटर का उपयोग करने के बजाय इंटरप्रेटरएपी और इंटरप्रेटर फैक्ट्री का उपयोग करना पसंद करें।

एक Interpreter एक पूर्व-प्रशिक्षित TensorFlow लाइट मॉडल को इनकैप्सुलेट करता है, जिसमें मॉडल अनुमान के लिए संचालन निष्पादित किया जाता है।

उदाहरण के लिए, यदि कोई मॉडल केवल एक इनपुट लेता है और केवल एक आउटपुट देता है:

 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);
 }

इनपुट और आउटपुट के क्रम निर्धारित किए जाते हैं जब TensorFlow मॉडल को Toco के साथ TensorFlowLite मॉडल में परिवर्तित किया जाता है, जैसा कि इनपुट के डिफ़ॉल्ट आकार होते हैं।

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

चेतावनी: Interpreter उदाहरण थ्रेड-सुरक्षित नहीं हैं। एक Interpreter के पास ऐसे संसाधन होते हैं जिन्हें स्पष्ट रूप से close() का आह्वान करके मुक्त किया जाना चाहिए

टीएफलाइट लाइब्रेरी एनडीके एपीआई 19 के खिलाफ बनाई गई है। यह 19 से नीचे के एंड्रॉइड एपीआई स्तरों के लिए काम कर सकती है, लेकिन इसकी गारंटी नहीं है।

नेस्टेड कक्षाएं

कक्षा दुभाषिया।विकल्प रनटाइम दुभाषिया व्यवहार को नियंत्रित करने के लिए एक विकल्प वर्ग।

सार्वजनिक निर्माता

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

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

शून्य
आवंटित टेंसर ()
यदि आवश्यक हो, तो सभी टेंसरों के लिए आवंटन को स्पष्ट रूप से अपडेट करें।
शून्य
बंद करें ()
InterpreterApi इंस्टेंस से जुड़े संसाधन जारी करें।
पूर्णांक
getInputIndex ( स्ट्रिंग opName)
इनपुट के op नाम दिए गए इनपुट की अनुक्रमणिका प्राप्त करता है।
टेन्सर
getInputTensor (इंट इनपुट इंडेक्स)
प्रदान किए गए इनपुट इंडेक्स से जुड़े टेंसर को प्राप्त करें।
पूर्णांक
getInputTensorCount ()
इनपुट टेंसर की संख्या प्राप्त करें।
टेन्सर
getInputTensorFromSignature ( स्ट्रिंग इनपुटनाम, स्ट्रिंग सिग्नेचरकी)
दिए गए इनपुट नाम और सिग्नेचर मेथड के नाम से जुड़े Tensor को प्राप्त करें।
लंबा
getLastNativeInferenceDurationNanoseconds ()
मूल अनुमान समय लौटाता है।
पूर्णांक
getOutputIndex ( स्ट्रिंग opName)
आउटपुट के op नाम दिए गए आउटपुट का इंडेक्स प्राप्त करता है।
टेन्सर
getOutputTensor (इंट आउटपुट इंडेक्स)
प्रदान किए गए आउटपुट इंडेक्स से जुड़े टेंसर को प्राप्त करें।
पूर्णांक
getOutputTensorCount ()
आउटपुट टेंसर की संख्या प्राप्त करें।
टेन्सर
getOutputTensorFromSignature ( स्ट्रिंग आउटपुटनाम, स्ट्रिंग सिग्नेचरकी)
विशिष्ट हस्ताक्षर विधि में प्रदान किए गए आउटपुट नाम से जुड़े टेंसर को प्राप्त करें।
डोरी[]
getSignatureInputs ( स्ट्रिंग सिग्नेचरकी)
signatureKey विधि के लिए सिग्नेचरडिफ्स इनपुट की सूची प्राप्त करता है।
डोरी[]
getSignatureKeys ()
मॉडल में उपलब्ध सिग्नेचरडिफ एक्सपोर्टेड मेथड नामों की सूची प्राप्त करें।
डोरी[]
getSignatureOutputs ( स्ट्रिंग सिग्नेचरकी)
सिग्नेचरडिफ्स के आउटपुट की सूची signatureKey विधि के लिए प्राप्त होती है।
शून्य
रीसेट वैरिएबल टेंसर ()
उन्नत: सभी चर टेंसर को डिफ़ॉल्ट मान पर रीसेट करता है।
शून्य
आकार बदलें इनपुट (int idx, int [] मंद, बूलियन सख्त)
दिए गए डिम में नेटिव मॉडल के idx-वें इनपुट का आकार बदलता है।
शून्य
आकार बदलें इनपुट (int idx, int [] dims)
दिए गए डिम में नेटिव मॉडल के idx-वें इनपुट का आकार बदलता है।
शून्य
रन ( ऑब्जेक्ट इनपुट, ऑब्जेक्ट आउटपुट)
मॉडल अनुमान चलाता है यदि मॉडल केवल एक इनपुट लेता है, और केवल एक आउटपुट प्रदान करता है।
शून्य
runForMultipleInputsOutputs ( ऑब्जेक्ट [] इनपुट, मैप < इंटीजर , ऑब्जेक्ट > आउटपुट)
यदि मॉडल एकाधिक इनपुट लेता है, या एकाधिक आउटपुट देता है तो मॉडल अनुमान चलाता है।
शून्य
रन सिग्नेचर ( मैप < स्ट्रिंग , ऑब्जेक्ट > इनपुट, मैप < स्ट्रिंग , ऑब्जेक्ट > आउटपुट)
runSignature(Map, Map, String) के समान, लेकिन सिग्नेचरकी पास करने की आवश्यकता नहीं है, यह मानते हुए कि मॉडल में एक सिग्नेचरडिफ है।
शून्य
रन सिग्नेचर ( मैप < स्ट्रिंग , ऑब्जेक्ट > इनपुट, मैप < स्ट्रिंग , ऑब्जेक्ट > आउटपुट, स्ट्रिंग सिग्नेचरकी)
सिग्नेचरके के माध्यम से प्रदान किए गए signatureKey के आधार पर मॉडल अनुमान चलाता है।
शून्य
सेट रद्द किया गया (बूलियन रद्द किया गया)
उन्नत: run(Object, Object) के लिए कॉल के बीच में अनुमान को बाधित करता है।

विरासत में मिली विधियां

सार्वजनिक निर्माता

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

एक Interpreter प्रारंभ करता है।

मापदंडों
मॉडलफ़ाइल पूर्व-प्रशिक्षित TF लाइट मॉडल की एक फ़ाइल।
फेंकता
अवैध तर्क अपवाद यदि modelFile एक वैध TensorFlow लाइट मॉडल को एन्कोड नहीं करता है।

सार्वजनिक दुभाषिया ( फ़ाइल मॉडलफ़ाइल, दुभाषिया । विकल्प विकल्प)

एक Interpreter को प्रारंभ करता है और दुभाषिया व्यवहार को अनुकूलित करने के लिए विकल्प निर्दिष्ट करता है।

मापदंडों
मॉडलफ़ाइल पूर्व-प्रशिक्षित TF लाइट मॉडल की एक फ़ाइल
विकल्प दुभाषिया व्यवहार को अनुकूलित करने के लिए विकल्पों का एक सेट
फेंकता
अवैध तर्क अपवाद यदि modelFile एक वैध TensorFlow लाइट मॉडल को एन्कोड नहीं करता है।

सार्वजनिक दुभाषिया ( बाइटबफर बाइटबफर)

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

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

मापदंडों
बाइटबफर
फेंकता
अवैध तर्क अपवाद यदि byteBuffer MappedByteBuffer है और न ही देशी ऑर्डर का प्रत्यक्ष ByteBuffer है।

सार्वजनिक दुभाषिया ( बाइटबफ़र बाइटबफ़र, दुभाषिया । विकल्प विकल्प)

एक मॉडल फ़ाइल के ByteBuffer और कस्टम Interpreter.Options के एक सेट के साथ एक Interpreter को प्रारंभ करता है। विकल्प।

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

मापदंडों
बाइटबफर
विकल्प
फेंकता
अवैध तर्क अपवाद यदि byteBuffer MappedByteBuffer है और न ही देशी ऑर्डर का प्रत्यक्ष ByteBuffer है।

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

सार्वजनिक शून्य आवंटन टेंसर ()

यदि आवश्यक हो, तो सभी टेंसरों के लिए आवंटन को स्पष्ट रूप से अपडेट करें।

यह दिए गए इनपुट टेंसर आकार (आकारों) का उपयोग करके आश्रित टेंसरों के लिए आकार और स्मृति आवंटन का प्रचार करेगा।

नोट: यह कॉल *विशुद्ध रूप से वैकल्पिक* है। यदि किसी इनपुट टेंसर का आकार बदल दिया गया है, तो निष्पादन के दौरान टेंसर आवंटन स्वचालित रूप से हो जाएगा। यह कॉल ग्राफ़ को निष्पादित करने से पहले किसी भी आउटपुट टेंसर के आकार को निर्धारित करने में सबसे उपयोगी है, उदाहरण के लिए,

 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 इंस्टेंस से जुड़े संसाधन जारी करें।

सार्वजनिक int getInputIndex ( स्ट्रिंग opName)

इनपुट के op नाम दिए गए इनपुट की अनुक्रमणिका प्राप्त करता है।

मापदंडों
opName

सार्वजनिक टेंसर getInputTensor (int inputIndex)

प्रदान किए गए इनपुट इंडेक्स से जुड़े टेंसर को प्राप्त करें।

मापदंडों
इनपुट इंडेक्स

सार्वजनिक int getInputTensorCount ()

इनपुट टेंसर की संख्या प्राप्त करें।

सार्वजनिक टेंसर getInputTensorFromSignature ( स्ट्रिंग इनपुटनाम, स्ट्रिंग सिग्नेचरकी)

दिए गए इनपुट नाम और सिग्नेचर मेथड के नाम से जुड़े Tensor को प्राप्त करें।

चेतावनी: यह एक प्रयोगात्मक एपीआई है और परिवर्तन के अधीन है।

मापदंडों
इनपुटनाम हस्ताक्षर में इनपुट नाम।
हस्ताक्षरकुंजी सिग्नेचरडिफ की पहचान करने वाली सिग्नेचर कुंजी, यदि मॉडल में एक सिग्नेचर है, तो शून्य हो सकती है।
फेंकता
अवैध तर्क अपवाद अगर inputName या signatureKey शून्य या खाली है, या अमान्य नाम दिया गया है।

पब्लिक लॉन्ग getLastNativeInferenceDurationDurationNanoseconds ()

मूल अनुमान समय लौटाता है।

सार्वजनिक int getOutputIndex ( स्ट्रिंग opName)

आउटपुट के op नाम दिए गए आउटपुट का इंडेक्स प्राप्त करता है।

मापदंडों
opName

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

प्रदान किए गए आउटपुट इंडेक्स से जुड़े टेंसर को प्राप्त करें।

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

मापदंडों
आउटपुट इंडेक्स

सार्वजनिक int getOutputTensorCount ()

आउटपुट टेंसर की संख्या प्राप्त करें।

सार्वजनिक टेंसर getOutputTensorFromSignature ( स्ट्रिंग आउटपुटनाम, स्ट्रिंग सिग्नेचरकी)

विशिष्ट हस्ताक्षर विधि में प्रदान किए गए आउटपुट नाम से जुड़े टेंसर को प्राप्त करें।

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

चेतावनी: यह एक प्रयोगात्मक एपीआई है और परिवर्तन के अधीन है।

मापदंडों
आउटपुटनाम हस्ताक्षर में आउटपुट का नाम।
हस्ताक्षरकुंजी सिग्नेचरडिफ की पहचान करने वाली सिग्नेचर कुंजी, यदि मॉडल में एक सिग्नेचर है, तो शून्य हो सकती है।
फेंकता
अवैध तर्क अपवाद यदि outputName या signatureKey शून्य या खाली है, या अमान्य नाम प्रदान किया गया है।

सार्वजनिक स्ट्रिंग [] getSignatureInputs ( स्ट्रिंग हस्ताक्षरकी)

signatureKey विधि के लिए सिग्नेचरडिफ्स इनपुट की सूची प्राप्त करता है।

चेतावनी: यह एक प्रयोगात्मक एपीआई है और परिवर्तन के अधीन है।

मापदंडों
हस्ताक्षरकुंजी

सार्वजनिक स्ट्रिंग [] getSignatureKeys ()

मॉडल में उपलब्ध सिग्नेचरडिफ एक्सपोर्टेड मेथड नामों की सूची प्राप्त करें।

चेतावनी: यह एक प्रयोगात्मक एपीआई है और परिवर्तन के अधीन है।

सार्वजनिक स्ट्रिंग [] getSignatureOutputs ( स्ट्रिंग हस्ताक्षरकी)

सिग्नेचरडिफ्स के आउटपुट की सूची signatureKey विधि के लिए प्राप्त होती है।

चेतावनी: यह एक प्रयोगात्मक एपीआई है और परिवर्तन के अधीन है।

मापदंडों
हस्ताक्षरकुंजी

सार्वजनिक शून्य रीसेट वेरिएबल टेंसर ()

उन्नत: सभी चर टेंसर को डिफ़ॉल्ट मान पर रीसेट करता है।

यदि एक चर टेंसर में कोई संबद्ध बफ़र नहीं है, तो इसे शून्य पर रीसेट कर दिया जाएगा।

चेतावनी: यह एक प्रयोगात्मक एपीआई है और परिवर्तन के अधीन है।

सार्वजनिक शून्य आकार बदलें इनपुट (int idx, int [] मंद, बूलियन सख्त)

दिए गए डिम में नेटिव मॉडल के idx-वें इनपुट का आकार बदलता है।

जब `सख्त` सत्य है, तो केवल अज्ञात आयामों का आकार बदला जा सकता है। अज्ञात आयामों को `टेन्सर.shapeSignature()` द्वारा लौटाए गए सरणी में `-1` के रूप में दर्शाया गया है।

मापदंडों
आईडीएक्स
मंद
कठोर

सार्वजनिक शून्य आकार बदलें इनपुट (int idx, int [] dims)

दिए गए डिम में नेटिव मॉडल के idx-वें इनपुट का आकार बदलता है।

मापदंडों
आईडीएक्स
मंद

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

मॉडल अनुमान चलाता है यदि मॉडल केवल एक इनपुट लेता है, और केवल एक आउटपुट प्रदान करता है।

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

  • ByteBuffer - किसी भी अंतर्निहित आदिम टेंसर प्रकार के साथ संगत।
  • FloatBuffer - फ्लोट टेंसर के साथ संगत।
  • IntBuffer - int32 Tensors के साथ संगत।
  • LongBuffer - int64 Tensors के साथ संगत।
ध्यान दें कि बूलियन प्रकार केवल सरणियों के रूप में समर्थित हैं, Buffer एस या स्केलर इनपुट के रूप में नहीं।

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

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

यदि मॉडल एकाधिक इनपुट लेता है, या एकाधिक आउटपुट देता है तो मॉडल अनुमान चलाता है।

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

  • ByteBuffer - किसी भी अंतर्निहित आदिम टेंसर प्रकार के साथ संगत।
  • FloatBuffer - फ्लोट टेंसर के साथ संगत।
  • IntBuffer - int32 Tensors के साथ संगत।
  • LongBuffer - int64 Tensors के साथ संगत।
ध्यान दें कि बूलियन प्रकार केवल सरणियों के रूप में समर्थित हैं, Buffer एस या स्केलर इनपुट के रूप में नहीं।

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

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

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

runSignature(Map, Map, String) के समान, लेकिन सिग्नेचरकी पास करने की आवश्यकता नहीं है, यह मानते हुए कि मॉडल में एक सिग्नेचरडिफ है। यदि मॉडल में एक से अधिक SignatureDef हैं तो यह एक अपवाद को फेंक देगा।

चेतावनी: यह एक प्रयोगात्मक एपीआई है और परिवर्तन के अधीन है।

मापदंडों
आदानों
आउटपुट

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

सिग्नेचरके के माध्यम से प्रदान किए गए signatureKey के आधार पर मॉडल अनुमान चलाता है।

अनुमत इनपुट और आउटपुट डेटा प्रकारों के बारे में अधिक जानकारी के लिए run(Object, Object) देखें।

चेतावनी: यह एक प्रयोगात्मक एपीआई है और परिवर्तन के अधीन है।

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

सार्वजनिक शून्य सेट रद्द (बूलियन रद्द)

उन्नत: run(Object, Object) के लिए कॉल के बीच में अनुमान को बाधित करता है।

इस फ़ंक्शन को कॉल करने पर रद्दीकरण ध्वज सत्य पर सेट हो जाएगा। दुभाषिया Op आमंत्रणों के बीच ध्वज की जाँच करेगा, और यदि यह true , तो दुभाषिया निष्पादन रोक देगा। दुभाषिया setCancelled(false) द्वारा स्पष्ट रूप से "अनियंत्रित" होने तक एक रद्द स्थिति बना रहेगा।

चेतावनी: यह एक प्रयोगात्मक एपीआई है और परिवर्तन के अधीन है।

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