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.Options विकल्प)
Interpreter शुरू करता है और अनुवादक के व्यवहार को पसंद के मुताबिक बनाने के विकल्प तय करता है. |
|
सार्वजनिक तरीके
अमान्य |
allocateTensors()
अगर ज़रूरी हो, तो सभी टेंसर के लिए, ऐलोकेशन को साफ़ तौर पर अपडेट करता है.
|
अमान्य |
बंद करें()
InterpreterApi इंस्टेंस से जुड़े संसाधन रिलीज़ करें. |
int | |
Tensor |
getInputTensor(int इनपुटIndex)
दिए गए इनपुट इंडेक्स से जुड़े Tensor को फ़ेच करता है.
|
int |
getInputTensorCount()
इनपुट टेंसर की संख्या हासिल करता है.
|
Tensor |
getInputTensorFromSignature(StringinputName, StringSignatureKey)
यह नीति, दिए गए इनपुट के नाम और हस्ताक्षर के तरीके के नाम से जुड़े Tensor को हासिल करती है.
|
लंबी |
getLastNativeInferenceDurationNanoseconds()
नेटिव अनुमान का समय दिखाता है.
|
int | |
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 है. |
अमान्य | |
अमान्य |
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 खाली या खाली है,
या नाम अमान्य है.
|
---|
सार्वजनिक आईएनटी 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 के साथ काम करता है.
Buffer
s या स्केलर इनपुट के तौर पर नहीं.पैरामीटर
इनपुट | कोई अरे या मल्टीडाइमेंशन वाला अरे, या प्रिमिटिव टाइप का Buffer
जिसमें पूर्णांक, फ़्लोट, लंबा, और बाइट शामिल हैं. बड़ी स्क्रीन पास करने के लिए Buffer
प्रिमिटिव टाइप के लिए इनपुट डेटा, जबकि स्ट्रिंग टाइप के लिए (मल्टी-डाइमेंशन)
अरे इनपुट पाथ. Buffer का इस्तेमाल किए जाने पर, उसके कॉन्टेंट में तब तक कोई बदलाव नहीं होगा, जब तक कि
मॉडल का अनुमान लगाया जाता है. कॉल करने वाले व्यक्ति को यह पक्का करना होगा कि Buffer
पढ़ने की सही जगह. null वैल्यू सिर्फ़ तब इस्तेमाल की जा सकती है, जब कॉलर किसी
Delegate जो बफ़र हैंडल इंटरऑप की अनुमति देता है और ऐसे बफ़र को
Tensor इनपुट करें. |
---|---|
आउटपुट | आउटपुट डेटा का कई डाइमेंशन वाला अरे या प्रिमिटिव टाइप का Buffer
जिसमें पूर्णांक, फ़्लोट, लंबा, और बाइट शामिल हैं. जब Buffer का इस्तेमाल किया जाता है, तो कॉल करने वाले (कॉलर) को यह पक्का करना होता है कि
कि यह लिखने के लिए सही जगह सेट कर रहा है. शून्य वैल्यू की अनुमति है और यह इनके लिए काम का है
कुछ मामलों में, जैसे कि अगर कॉल करने वाला (कॉलर) Delegate का इस्तेमाल कर रहा हो, जो बफ़र हैंडल की अनुमति देता है
इंटरऑपरेट किया जाता है और इस तरह के बफ़र को आउटपुट Tensor से जोड़ा जाता है (Interpreter.Options#setAllowBufferHandleOutput(boolean) को भी देखें),
इसके अलावा, अगर ग्राफ़ में डाइनैमिक तरीके से बनाए गए आउटपुट हैं और कॉलर को अनुमान शुरू किए जाने के बाद, आउटपुट Tensor के आकार के लिए क्वेरी करनी है, तो सीधे आउटपुट से डेटा फ़ेच किया जा सकता है
tensor (Tensor.asReadOnlyBuffer() के ज़रिए). |
सार्वजनिक अमान्य runForMultipleInputsOutputs (ऑब्जेक्ट[] इनपुट, मैप<पूरी संख्या, ऑब्जेक्ट> आउटपुट)
अगर मॉडल एक से ज़्यादा इनपुट लेता है या एक से ज़्यादा आउटपुट दिखाता है, तो मॉडल अनुमान चलाता है.
चेतावनी: अगर Buffer
s (सीधे तौर पर, लेकिन ज़रूरी नहीं है) तो एपीआई बेहतर तरीके से काम करेगा
इनका इस्तेमाल इनपुट/आउटपुट डेटा टाइप के तौर पर किया जाता है. फ़ीड करने और फ़ेच करने के लिए, कृपया Buffer
का इस्तेमाल करें
बेहतर परफ़ॉर्मेंस के लिए शुरुआती डेटा. कॉन्क्रीट के ये Buffer
टाइप हैं
समर्थित:
ByteBuffer
- किसी भी पहले से मौजूद Tensor टाइप के साथ काम करता है.FloatBuffer
- फ़्लोट टेन्सर के साथ काम करता है.IntBuffer
- int32 Tensors के साथ काम करता है.LongBuffer
- int64 Tensors के साथ काम करता है.
Buffer
s या स्केलर इनपुट के तौर पर नहीं.
ध्यान दें: inputs
और outputs
के व्यक्तिगत एलिमेंट के लिए null
की वैल्यू
सिर्फ़ तभी अनुमति दी जाती है जब कॉलर ऐसे Delegate
का इस्तेमाल कर रहा हो जो बफ़र हैंडल इंटरऑप की अनुमति देता है, और
ऐसा बफ़र, उससे जुड़े इनपुट या आउटपुट Tensor
के हिसाब से होना चाहिए.
पैरामीटर
इनपुट | इनपुट डेटा का कलेक्शन. इनपुट उसी क्रम में होने चाहिए जिस क्रम में इसके इनपुट मौजूद हैं
मॉडल. हर इनपुट, अरे या मल्टीडाइमेंशनल अरे हो सकता है. इसके अलावा, इनका Buffer भी हो सकता है
प्रिमिटिव टाइप, जैसे कि int, फ़्लोट, लंबा, और बाइट. Buffer पसंदीदा तरीका है
बड़ा इनपुट डेटा पास करने के लिए, जबकि स्ट्रिंग टाइप को (मल्टी-डाइमेंशन) अरे का इस्तेमाल करना पड़ता है
इनपुट पाथ. Buffer का इस्तेमाल करने पर, इसके कॉन्टेंट में कोई बदलाव नहीं किया जाना चाहिए.
अनुमान लगाया जाता है. कॉलर को यह पक्का करना होगा कि Buffer सही है
पढ़ने की जगह. |
---|---|
आउटपुट | मैप मैपिंग आउटपुट, आउटपुट डेटा या Buffer s प्रिमिटिव टाइप के मल्टीडाइमेंशन वाले कलेक्शन को इंडेक्स करता है. इनमें 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 | अगर अनुवादक को रद्द किए जा सकने वाले एलिमेंट के साथ शुरू नहीं किया गया है विकल्प, जो डिफ़ॉल्ट रूप से बंद होता है. |
---|