Interpreter

পাবলিক ফাইনাল ক্লাস ইন্টারপ্রেটার

TensorFlow Lite এর সাথে মডেল ইনফারেন্স চালানোর জন্য ড্রাইভার ক্লাস।

দ্রষ্টব্য: আপনার যদি নীচের "পরীক্ষামূলক" API বৈশিষ্ট্যগুলির কোনোটিতে অ্যাক্সেসের প্রয়োজন না হয়, তাহলে সরাসরি ইন্টারপ্রেটার ব্যবহার করার পরিবর্তে ইন্টারপ্রেটারএপি এবং ইন্টারপ্রেটারফ্যাক্টরি ব্যবহার করতে পছন্দ করুন।

একজন Interpreter একটি প্রাক-প্রশিক্ষিত টেনসরফ্লো লাইট মডেলকে এনক্যাপসুলেট করে, যেখানে মডেল অনুমানের জন্য অপারেশন চালানো হয়।

উদাহরণস্বরূপ, যদি একটি মডেল শুধুমাত্র একটি ইনপুট নেয় এবং শুধুমাত্র একটি আউটপুট প্রদান করে:

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

ইনপুটগুলির ডিফল্ট আকারের মতো টোকোর সাথে টেনসরফ্লো মডেলকে টেনসরফ্লোলাইট মডেলে রূপান্তর করার সময় ইনপুট এবং আউটপুটগুলির অর্ডার নির্ধারিত হয়।

যখন ইনপুটগুলি (মাল্টি-ডাইমেনশনাল) অ্যারে হিসাবে প্রদান করা হয়, তখন সংশ্লিষ্ট ইনপুট টেনসর(গুলি) সেই অ্যারের আকৃতি অনুসারে পরোক্ষভাবে আকার পরিবর্তন করা হবে। যখন ইনপুটগুলি Buffer প্রকার হিসাবে প্রদান করা হয়, কোন অন্তর্নিহিত আকার পরিবর্তন করা হয় না; কলকারীকে অবশ্যই নিশ্চিত করতে হবে যে Buffer বাইটের আকার হয় সংশ্লিষ্ট টেনসরের সাথে মিলে যায়, অথবা তারা প্রথমে resizeInput(int, int[]) এর মাধ্যমে টেনসরের আকার পরিবর্তন করে। টেনসরের আকার এবং প্রকারের তথ্য Tensor ক্লাসের মাধ্যমে প্রাপ্ত করা যেতে পারে, getInputTensor(int) এবং getOutputTensor(int) এর মাধ্যমে উপলব্ধ।

সতর্কতা: Interpreter উদাহরণ থ্রেড-নিরাপদ নয় । একজন Interpreter সম্পদের মালিকানা থাকে যা অবশ্যই close() আহ্বান করে মুক্ত করতে হবে

TFLite লাইব্রেরি NDK API 19 এর বিপরীতে তৈরি করা হয়েছে। এটি 19-এর নিচে Android API স্তরের জন্য কাজ করতে পারে, কিন্তু নিশ্চিত নয়।

নেস্টেড ক্লাস

ক্লাস দোভাষী। বিকল্প রানটাইম ইন্টারপ্রেটার আচরণ নিয়ন্ত্রণ করার জন্য একটি বিকল্প ক্লাস।

পাবলিক কনস্ট্রাক্টর

দোভাষী ( ফাইল মডেল ফাইল)
একজন Interpreter শুরু করে।
দোভাষী ( ফাইল মডেল ফাইল, ইন্টারপ্রেটার. বিকল্প বিকল্প)
একটি Interpreter শুরু করে এবং দোভাষীর আচরণ কাস্টমাইজ করার জন্য বিকল্পগুলি নির্দিষ্ট করে৷
দোভাষী ( বাইটবাফার বাইটবাফার)
একটি মডেল ফাইলের ByteBuffer সহ একটি Interpreter শুরু করে।
দোভাষী ( ByteBuffer byteBuffer, Interpreter.Options বিকল্প)
একটি মডেল ফাইলের একটি ByteBuffer এবং কাস্টম Interpreter.Options একটি সেট সহ একটি Interpreter শুরু করে।

পাবলিক পদ্ধতি

অকার্যকর
বরাদ্দ টেনসর ()
প্রয়োজনে সমস্ত টেনসরের জন্য বরাদ্দ স্পষ্টভাবে আপডেট করে।
অকার্যকর
বন্ধ ()
InterpreterApi দৃষ্টান্তের সাথে সম্পর্কিত সংস্থানগুলি প্রকাশ করুন।
int
getInputIndex ( স্ট্রিং opName)
ইনপুটের অপ নাম দেওয়া একটি ইনপুটের সূচক পায়।
টেনসর
getInputTensor (int inputIndex)
প্রদত্ত ইনপুট সূচকের সাথে যুক্ত টেনসর পায়।
int
getInputTensorCount ()
ইনপুট টেনসর সংখ্যা পায়।
টেনসর
GetInputTensorFromSignature ( স্ট্রিং ইনপুটনাম, স্ট্রিং স্বাক্ষর কী)
প্রদত্ত ইনপুট নাম এবং স্বাক্ষর পদ্ধতি নামের সাথে যুক্ত টেনসর পায়।
লম্বা
GetLastNativeInferenceDurationNanoseconds ()
নেটিভ ইনফারেন্স টাইমিং প্রদান করে।
int
getOutputIndex ( স্ট্রিং opName)
আউটপুটের op নাম দেওয়া একটি আউটপুটের সূচক পায়।
টেনসর
getOutputTensor (int outputIndex)
প্রদত্ত আউটপুট সূচকের সাথে যুক্ত টেনসর পায়।
int
getOutputTensorCount ()
আউটপুট টেনসরের সংখ্যা পায়।
টেনসর
GetOutputTensorFromSignature ( স্ট্রিং আউটপুট নাম, স্ট্রিং স্বাক্ষর কী)
নির্দিষ্ট স্বাক্ষর পদ্ধতিতে প্রদত্ত আউটপুট নামের সাথে যুক্ত টেনসর পায়।
স্ট্রিং[]
getSignatureInputs ( স্ট্রিং signatureKey)
signatureKey পদ্ধতির জন্য SignatureDefs ইনপুটগুলির তালিকা পায়।
স্ট্রিং[]
GetSignatureKeys ()
মডেলে উপলব্ধ SignatureDef রপ্তানিকৃত পদ্ধতির নামের তালিকা পায়।
স্ট্রিং[]
getSignatureOutputs ( স্ট্রিং signatureKey)
signatureKey পদ্ধতির জন্য SignatureDefs আউটপুটগুলির তালিকা পায়।
অকার্যকর
রিসেট ভ্যারিয়েবল টেনসর ()
উন্নত: সমস্ত পরিবর্তনশীল টেনসর ডিফল্ট মানতে পুনরায় সেট করে।
অকার্যকর
resizeInput (int idx, int[] dims, বুলিয়ান কঠোর)
নেটিভ মডেলের idx-th ইনপুটকে প্রদত্ত ডিমগুলিতে পুনরায় আকার দেয়।
অকার্যকর
resizeInput (int idx, int[] dims)
নেটিভ মডেলের idx-th ইনপুটকে প্রদত্ত ডিমগুলিতে পুনরায় আকার দেয়।
অকার্যকর
চালান ( অবজেক্ট ইনপুট, অবজেক্ট আউটপুট)
মডেল অনুমান চালায় যদি মডেল শুধুমাত্র একটি ইনপুট নেয়, এবং শুধুমাত্র একটি আউটপুট প্রদান করে।
অকার্যকর
runForMultipleInputsOutputs ( অবজেক্ট [] ইনপুট, মানচিত্র < পূর্ণসংখ্যা , অবজেক্ট > আউটপুট)
মডেল অনুমান চালায় যদি মডেল একাধিক ইনপুট নেয়, বা একাধিক আউটপুট প্রদান করে।
অকার্যকর
runSignature ( মানচিত্র < স্ট্রিং , অবজেক্ট > ইনপুট, মানচিত্র < স্ট্রিং , অবজেক্ট > আউটপুট)
runSignature(Map, Map, String) এর মতোই কিন্তু মডেলটিতে একটি সিগনেচারডিফ রয়েছে বলে ধরে নিয়ে একটি স্বাক্ষরকি পাস করার প্রয়োজন নেই।
অকার্যকর
runSignature ( মানচিত্র < স্ট্রিং , অবজেক্ট > ইনপুট, মানচিত্র < স্ট্রিং , অবজেক্ট > আউটপুট, স্ট্রিং স্বাক্ষর কী)
signatureKey এর মাধ্যমে প্রদত্ত SignatureDef-এর উপর ভিত্তি করে মডেল অনুমান চালায়।
অকার্যকর
সেট বাতিল (বুলিয়ান বাতিল)
উন্নত: run(Object, Object)

উত্তরাধিকারসূত্রে প্রাপ্ত পদ্ধতি

পাবলিক কনস্ট্রাক্টর

পাবলিক ইন্টারপ্রেটার ( ফাইল মডেল ফাইল)

একজন Interpreter শুরু করে।

পরামিতি
মডেল ফাইল একটি প্রাক-প্রশিক্ষিত TF লাইট মডেলের একটি ফাইল।
নিক্ষেপ করে
অবৈধ আর্গুমেন্ট ব্যতিক্রম যদি modelFile একটি বৈধ টেনসরফ্লো লাইট মডেল এনকোড না করে।

পাবলিক ইন্টারপ্রেটার ( ফাইল মডেল ফাইল, ইন্টারপ্রেটার. বিকল্প বিকল্প)

একটি Interpreter শুরু করে এবং দোভাষীর আচরণ কাস্টমাইজ করার জন্য বিকল্পগুলি নির্দিষ্ট করে৷

পরামিতি
মডেল ফাইল একটি প্রাক-প্রশিক্ষিত TF লাইট মডেলের একটি ফাইল
বিকল্প দোভাষীর আচরণ কাস্টমাইজ করার জন্য বিকল্পগুলির একটি সেট
নিক্ষেপ করে
অবৈধ আর্গুমেন্ট ব্যতিক্রম যদি modelFile একটি বৈধ টেনসরফ্লো লাইট মডেল এনকোড না করে।

পাবলিক ইন্টারপ্রেটার ( বাইটবাফার বাইটবাফার)

একটি মডেল ফাইলের 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)

ইনপুটের অপ নাম দেওয়া একটি ইনপুটের সূচক পায়।

পরামিতি
opName

পাবলিক টেনসর getInputTensor (int inputIndex)

প্রদত্ত ইনপুট সূচকের সাথে যুক্ত টেনসর পায়।

পরামিতি
inputIndex

পাবলিক int getInputTensorCount ()

ইনপুট টেনসর সংখ্যা পায়।

পাবলিক টেনসর getInputTensorFromSignature ( স্ট্রিং ইনপুট নাম, স্ট্রিং স্বাক্ষর কী)

প্রদত্ত ইনপুট নাম এবং স্বাক্ষর পদ্ধতি নামের সাথে যুক্ত টেনসর পায়।

সতর্কতা: এটি একটি পরীক্ষামূলক API এবং পরিবর্তন সাপেক্ষে।

পরামিতি
ইনপুট নাম স্বাক্ষরে নাম লিখুন।
স্বাক্ষর কী SignatureDef সনাক্তকারী স্বাক্ষর কী, মডেলটিতে একটি স্বাক্ষর থাকলে শূন্য হতে পারে।
নিক্ষেপ করে
অবৈধ আর্গুমেন্ট ব্যতিক্রম যদি inputName বা signatureKey নাল বা খালি হয়, অথবা অবৈধ নাম দেওয়া হয়।

পাবলিক লং গেট LastNativeInferenceDurationNanoseconds ()

নেটিভ ইনফারেন্স টাইমিং প্রদান করে।

পাবলিক int getOutputIndex ( স্ট্রিং opName)

আউটপুটের op নাম দেওয়া একটি আউটপুটের সূচক পায়।

পরামিতি
opName

পাবলিক টেনসর getOutputTensor (int outputIndex)

প্রদত্ত আউটপুট সূচকের সাথে যুক্ত টেনসর পায়।

দ্রষ্টব্য: আউটপুট টেনসরের বিশদ বিবরণ (যেমন, আকৃতি) অনুমান কার্যকর না হওয়া পর্যন্ত সম্পূর্ণরূপে জনবহুল নাও হতে পারে। অনুমান চালানোর *আগে* আপনার যদি আপডেট করা বিশদ প্রয়োজন হয় (যেমন, একটি ইনপুট টেনসরের আকার পরিবর্তন করার পরে, যা আউটপুট টেনসরের আকারগুলিকে বাতিল করতে পারে), স্পষ্টভাবে বরাদ্দ এবং আকৃতি প্রচার ট্রিগার করতে allocateTensors() ব্যবহার করুন। উল্লেখ্য, ইনপুট *মান* এর উপর নির্ভরশীল আউটপুট আকৃতি সহ গ্রাফগুলির জন্য, অনুমান চালানো না হওয়া পর্যন্ত আউটপুট আকৃতি সম্পূর্ণরূপে নির্ধারিত নাও হতে পারে।

পরামিতি
আউটপুট ইনডেক্স

পাবলিক int getOutputTensorCount ()

আউটপুট টেনসরের সংখ্যা পায়।

পাবলিক টেনসর getOutputTensorFromSignature ( String outputName, String signatureKey)

নির্দিষ্ট স্বাক্ষর পদ্ধতিতে প্রদত্ত আউটপুট নামের সাথে যুক্ত টেনসর পায়।

দ্রষ্টব্য: আউটপুট টেনসরের বিশদ বিবরণ (যেমন, আকৃতি) অনুমান কার্যকর না হওয়া পর্যন্ত সম্পূর্ণরূপে জনবহুল নাও হতে পারে। অনুমান চালানোর *আগে* আপনার যদি আপডেট করা বিশদ প্রয়োজন হয় (যেমন, একটি ইনপুট টেনসরের আকার পরিবর্তন করার পরে, যা আউটপুট টেনসরের আকারগুলিকে বাতিল করতে পারে), স্পষ্টভাবে বরাদ্দ এবং আকৃতি প্রচার ট্রিগার করতে allocateTensors() ব্যবহার করুন। উল্লেখ্য, ইনপুট *মান* এর উপর নির্ভরশীল আউটপুট আকৃতি সহ গ্রাফগুলির জন্য, অনুমান চালানো না হওয়া পর্যন্ত আউটপুট আকৃতি সম্পূর্ণরূপে নির্ধারিত নাও হতে পারে।

সতর্কতা: এটি একটি পরীক্ষামূলক API এবং পরিবর্তন সাপেক্ষে।

পরামিতি
আউটপুট নাম স্বাক্ষরে আউটপুট নাম।
স্বাক্ষর কী SignatureDef সনাক্তকারী স্বাক্ষর কী, মডেলটিতে একটি স্বাক্ষর থাকলে শূন্য হতে পারে।
নিক্ষেপ করে
অবৈধ আর্গুমেন্ট ব্যতিক্রম যদি outputName বা signatureKey নাল বা খালি হয়, অথবা অবৈধ নাম দেওয়া হয়।

সর্বজনীন স্ট্রিং[] getSignatureInputs ( স্ট্রিং স্বাক্ষর কী)

signatureKey পদ্ধতির জন্য SignatureDefs ইনপুটগুলির তালিকা পায়।

সতর্কতা: এটি একটি পরীক্ষামূলক API এবং পরিবর্তন সাপেক্ষে।

পরামিতি
স্বাক্ষর কী

সর্বজনীন স্ট্রিং[] getSignatureKeys ()

মডেলে উপলব্ধ SignatureDef রপ্তানিকৃত পদ্ধতির নামের তালিকা পায়।

সতর্কতা: এটি একটি পরীক্ষামূলক API এবং পরিবর্তন সাপেক্ষে।

সর্বজনীন স্ট্রিং[] getSignatureOutputs ( স্ট্রিং স্বাক্ষর কী)

signatureKey পদ্ধতির জন্য SignatureDefs আউটপুটগুলির তালিকা পায়।

সতর্কতা: এটি একটি পরীক্ষামূলক API এবং পরিবর্তন সাপেক্ষে।

পরামিতি
স্বাক্ষর কী

সর্বজনীন অকার্যকর রিসেট ভ্যারিয়েবল টেনসর ()

উন্নত: সমস্ত পরিবর্তনশীল টেনসর ডিফল্ট মানতে পুনরায় সেট করে।

যদি একটি পরিবর্তনশীল টেনসরের সাথে সম্পর্কিত বাফার না থাকে তবে এটি শূন্যে পুনরায় সেট করা হবে।

সতর্কতা: এটি একটি পরীক্ষামূলক API এবং পরিবর্তন সাপেক্ষে।

পাবলিক ভ্যাইড রিসাইজইনপুট (int idx, int[] dims, বুলিয়ান স্ট্রিক্ট)

নেটিভ মডেলের idx-th ইনপুটকে প্রদত্ত ডিমগুলিতে পুনরায় আকার দেয়।

যখন 'কঠোর' সত্য হয়, শুধুমাত্র অজানা মাত্রাগুলিকে পুনরায় আকার দেওয়া যেতে পারে৷ অজানা মাত্রাগুলি `Tensor.shapeSignature()` দ্বারা প্রত্যাবর্তিত অ্যারেতে `-1` হিসাবে নির্দেশিত হয়৷

পরামিতি
idx
অনুজ্জ্বল
কঠোর

পাবলিক ভ্যাইড রিসাইজইনপুট (int idx, int[] dims)

নেটিভ মডেলের idx-th ইনপুটকে প্রদত্ত ডিমগুলিতে পুনরায় আকার দেয়।

পরামিতি
idx
অনুজ্জ্বল

সর্বজনীন অকার্যকর রান ( অবজেক্ট ইনপুট, অবজেক্ট আউটপুট)

মডেল অনুমান চালায় যদি মডেল শুধুমাত্র একটি ইনপুট নেয়, এবং শুধুমাত্র একটি আউটপুট প্রদান করে।

সতর্কতা: এপিআই আরও দক্ষ হয় যদি ইনপুট/আউটপুট ডেটা টাইপ হিসাবে একটি Buffer (প্রত্যক্ষভাবে সরাসরি, কিন্তু প্রয়োজন হয় না) ব্যবহার করা হয়। অনুগ্রহ করে ভাল পারফরম্যান্সের জন্য আদিম ডেটা ফিড করতে Buffer ব্যবহার করার কথা বিবেচনা করুন। নিম্নলিখিত কংক্রিট Buffer প্রকারগুলি সমর্থিত:

  • ByteBuffer - যে কোন অন্তর্নিহিত আদিম টেনসর প্রকারের সাথে সামঞ্জস্যপূর্ণ।
  • FloatBuffer - ফ্লোট টেনসরের সাথে সামঞ্জস্যপূর্ণ।
  • IntBuffer - int32 টেনসরের সাথে সামঞ্জস্যপূর্ণ।
  • LongBuffer - int64 টেনসরের সাথে সামঞ্জস্যপূর্ণ।
মনে রাখবেন যে বুলিয়ান প্রকারগুলি শুধুমাত্র অ্যারে হিসাবে সমর্থিত, Buffer s নয় বা স্কেলার ইনপুট হিসাবে।

পরামিতি
ইনপুট একটি অ্যারে বা বহুমাত্রিক অ্যারে, বা int, ফ্লোট, লং এবং বাইট সহ আদিম ধরণের একটি BufferBuffer হল আদিম প্রকারের জন্য বড় ইনপুট ডেটা পাস করার পছন্দের উপায়, যেখানে স্ট্রিং প্রকারের জন্য (মাল্টি-ডাইমেনশনাল) অ্যারে ইনপুট পাথ ব্যবহার করা প্রয়োজন। যখন একটি Buffer ব্যবহার করা হয়, মডেল অনুমান করা না হওয়া পর্যন্ত এর বিষয়বস্তু অপরিবর্তিত থাকা উচিত, এবং কলকারীকে অবশ্যই নিশ্চিত করতে হবে যে Buffer উপযুক্ত পঠন অবস্থানে রয়েছে। একটি null মান অনুমোদিত হয় শুধুমাত্র যদি কলকারী একটি Delegate ব্যবহার করে যা বাফার হ্যান্ডেল ইন্টারপকে অনুমতি দেয় এবং এই ধরনের একটি বাফার ইনপুট Tensor সাথে আবদ্ধ থাকে।
আউটপুট আউটপুট ডেটার একটি বহুমাত্রিক অ্যারে, বা int, ফ্লোট, লং এবং বাইট সহ আদিম প্রকারের একটি Buffer । যখন একটি Buffer ব্যবহার করা হয়, কলকারীকে অবশ্যই নিশ্চিত করতে হবে যে এটি উপযুক্ত লেখার অবস্থান সেট করেছে। একটি নাল মান অনুমোদিত, এবং কিছু ক্ষেত্রে উপযোগী, যেমন, যদি কলার এমন একটি Delegate ব্যবহার করে যা বাফার হ্যান্ডেল ইন্টারপকে অনুমতি দেয় এবং এই ধরনের একটি বাফার আউটপুট Tensor সাথে আবদ্ধ থাকে (এছাড়াও দেখুন ইন্টারপ্রেটার। বিকল্পগুলি#setAllowBufferHandleOutput(বুলিয়ান) ), অথবা যদি গ্রাফে গতিশীল আকৃতির আউটপুট থাকে এবং কলকারীকে অবশ্যই আউটপুট Tensor আকৃতিটি জিজ্ঞাসা করতে হবে অনুমান আহ্বান করার পরে, সরাসরি আউটপুট টেনসর থেকে ডেটা আনতে হবে ( Tensor.asReadOnlyBuffer() এর মাধ্যমে)।

সর্বজনীন অকার্যকর রানফরমাল্টিপল ইনপুটআউটপুট ( অবজেক্ট [] ইনপুট, মানচিত্র < পূর্ণসংখ্যা , অবজেক্ট > আউটপুট)

মডেল অনুমান চালায় যদি মডেল একাধিক ইনপুট নেয়, বা একাধিক আউটপুট প্রদান করে।

সতর্কতা: এপিআই আরও দক্ষ হয় যদি Buffer s (সাধারণত সরাসরি, তবে প্রয়োজনীয় নয়) ইনপুট/আউটপুট ডেটা প্রকার হিসাবে ব্যবহার করা হয়। অনুগ্রহ করে ভাল পারফরম্যান্সের জন্য আদিম ডেটা ফিড করতে Buffer ব্যবহার করার কথা বিবেচনা করুন। নিম্নলিখিত কংক্রিট Buffer প্রকারগুলি সমর্থিত:

  • ByteBuffer - যে কোন অন্তর্নিহিত আদিম টেনসর প্রকারের সাথে সামঞ্জস্যপূর্ণ।
  • FloatBuffer - ফ্লোট টেনসরের সাথে সামঞ্জস্যপূর্ণ।
  • IntBuffer - int32 টেনসরের সাথে সামঞ্জস্যপূর্ণ।
  • LongBuffer - int64 টেনসরের সাথে সামঞ্জস্যপূর্ণ।
মনে রাখবেন যে বুলিয়ান প্রকারগুলি শুধুমাত্র অ্যারে হিসাবে সমর্থিত, Buffer s নয় বা স্কেলার ইনপুট হিসাবে।

দ্রষ্টব্য: inputs এবং outputs স্বতন্ত্র উপাদানগুলির জন্য null মান শুধুমাত্র তখনই অনুমোদিত হয় যখন কলকারী একটি Delegate ব্যবহার করে যা বাফার হ্যান্ডেল ইন্টারপকে অনুমতি দেয় এবং এই ধরনের একটি বাফার সংশ্লিষ্ট ইনপুট বা আউটপুট Tensor (গুলি) এর সাথে আবদ্ধ থাকে৷

পরামিতি
ইনপুট ইনপুট ডেটার একটি অ্যারে। ইনপুটগুলি মডেলের ইনপুটগুলির মতো একই ক্রমে হওয়া উচিত৷ প্রতিটি ইনপুট একটি অ্যারে বা বহুমাত্রিক অ্যারে, বা int, ফ্লোট, লং এবং বাইট সহ আদিম ধরণের Buffer হতে পারে। বড় ইনপুট ডেটা পাস করার জন্য Buffer হল পছন্দের উপায়, যেখানে স্ট্রিং প্রকারের জন্য (মাল্টি-ডাইমেনশনাল) অ্যারে ইনপুট পাথ ব্যবহার করা প্রয়োজন। যখন Buffer ব্যবহার করা হয়, মডেল অনুমান করা না হওয়া পর্যন্ত এর বিষয়বস্তু অপরিবর্তিত থাকা উচিত, এবং কলকারীকে অবশ্যই নিশ্চিত করতে হবে যে Buffer উপযুক্ত পঠিত অবস্থানে রয়েছে।
আউটপুট আউটপুট ডেটার বহুমাত্রিক অ্যারেতে একটি মানচিত্র ম্যাপিং আউটপুট সূচক বা int, ফ্লোট, লং এবং বাইট সহ আদিম প্রকারের Buffer । এটি শুধুমাত্র আউটপুট ব্যবহার করার জন্য এন্ট্রি রাখা প্রয়োজন. যখন একটি Buffer ব্যবহার করা হয়, কলকারীকে অবশ্যই নিশ্চিত করতে হবে যে এটি উপযুক্ত লেখার অবস্থান সেট করেছে। আউটপুট টেনসর ডেটার জন্য যেখানে বাফার হ্যান্ডেলগুলি ব্যবহার করা হয় বা যেখানে আউটপুটগুলি গতিশীল আকারের হয় এবং কলকারীকে অবশ্যই আউটপুট Tensor আকৃতি সম্পর্কে জিজ্ঞাসা করতে হবে, অনুমান আহ্বান করার পরে, আউটপুট টেনসর থেকে সরাসরি ডেটা আনার জন্য মানচিত্রটি খালি হতে পারে ( Tensor.asReadOnlyBuffer() ) এর মাধ্যমে।

সর্বজনীন অকার্যকর রান স্বাক্ষর ( মানচিত্র < স্ট্রিং , অবজেক্ট > ইনপুট, মানচিত্র < স্ট্রিং , অবজেক্ট > আউটপুট)

runSignature(Map, Map, String) এর মতোই কিন্তু মডেলটিতে একটি সিগনেচারডিফ রয়েছে বলে ধরে নিয়ে একটি স্বাক্ষরকি পাস করার প্রয়োজন নেই। মডেলটিতে একাধিক SignatureDef থাকলে এটি একটি ব্যতিক্রম নিক্ষেপ করবে।

সতর্কতা: এটি একটি পরীক্ষামূলক API এবং পরিবর্তন সাপেক্ষে।

পরামিতি
ইনপুট
আউটপুট

সর্বজনীন অকার্যকর রান স্বাক্ষর ( মানচিত্র < স্ট্রিং , অবজেক্ট > ইনপুট, মানচিত্র < স্ট্রিং , অবজেক্ট > আউটপুট, স্ট্রিং স্বাক্ষর কী)

signatureKey এর মাধ্যমে প্রদত্ত SignatureDef-এর উপর ভিত্তি করে মডেল অনুমান চালায়।

অনুমোদিত ইনপুট এবং আউটপুট ডেটা প্রকারের আরও বিস্তারিত জানার জন্য run(Object, Object) দেখুন।

সতর্কতা: এটি একটি পরীক্ষামূলক API এবং পরিবর্তন সাপেক্ষে।

পরামিতি
ইনপুট SignatureDef-এ ইনপুট নাম থেকে একটি ইনপুট অবজেক্টে একটি মানচিত্র।
আউটপুট SignatureDef-এ আউটপুট নাম থেকে আউটপুট ডেটাতে একটি মানচিত্র। যদি কলকারী অনুমান করার পরে সরাসরি Tensor ডেটা জিজ্ঞাসা করতে চান তবে এটি খালি হতে পারে (যেমন, যদি আউটপুট আকারটি গতিশীল হয়, বা আউটপুট বাফার হ্যান্ডেলগুলি ব্যবহার করা হয়)।
স্বাক্ষর কী স্বাক্ষর কী সিগনেচার ডিফ সনাক্ত করে।
নিক্ষেপ করে
অবৈধ আর্গুমেন্ট ব্যতিক্রম যদি inputs নাল বা খালি হয়, যদি outputs বা signatureKey নাল থাকে, অথবা যদি অনুমান চালানোর সময় একটি ত্রুটি ঘটে।

সর্বজনীন অকার্যকর সেট বাতিল (বুলিয়ান বাতিল)

উন্নত: run(Object, Object)

এই ফাংশন কল করা হলে একটি বাতিল পতাকা সত্য সেট করা হবে. দোভাষী Op invocations এর মধ্যে পতাকা পরীক্ষা করবে, এবং যদি এটি true হয়, দোভাষী মৃত্যুদন্ড বন্ধ করে দেবে। দোভাষী একটি বাতিল অবস্থায় থাকবে যতক্ষণ পর্যন্ত setCancelled(false) দ্বারা স্পষ্টভাবে "বাতিল করা হয়নি"।

সতর্কতা: এটি একটি পরীক্ষামূলক API এবং পরিবর্তন সাপেক্ষে।

পরামিতি
বাতিল একটি সর্বোত্তম প্রচেষ্টা উপায়ে অনুমান বাতিল করতে true ; পুনরায় শুরু করা false
নিক্ষেপ করে
অবৈধ রাজ্য ব্যতিক্রম যদি দোভাষী বাতিলযোগ্য বিকল্পের সাথে আরম্ভ না করা হয়, যা ডিফল্টরূপে বন্ধ থাকে।