InterpreterApi

পাবলিক ইন্টারফেস ইন্টারপ্রেটারএপিআই
পরিচিত পরোক্ষ উপশ্রেণী

টেনসরফ্লো লাইট মডেল ইন্টারপ্রেটারে ইন্টারফেস, পরীক্ষামূলক পদ্ধতি বাদ দিয়ে।

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

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

try (InterpreterApi interpreter =
     new InterpreterApi.create(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 (InterpreterApi interpreter =
     new InterpreterApi.create(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 (InterpreterApi interpreter =
     new InterpreterApi.create(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) এর মাধ্যমে উপলব্ধ।

সতর্কতা: InterpreterApi দৃষ্টান্ত থ্রেড-নিরাপদ নয়

সতর্কতা: একটি InterpreterApi ইনস্ট্যান্সের মালিকানাধীন সংস্থানগুলিকে অবশ্যই close() আহ্বান করে স্পষ্টভাবে মুক্ত করতে হবে

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

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

ক্লাস InterpreterApi.Options রানটাইম ইন্টারপ্রেটার আচরণ নিয়ন্ত্রণ করার জন্য একটি বিকল্প ক্লাস।

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

বিমূর্ত শূন্যতা
বরাদ্দ টেনসর ()
প্রয়োজনে সমস্ত টেনসরের জন্য বরাদ্দ স্পষ্টভাবে আপডেট করে।
বিমূর্ত শূন্যতা
বন্ধ ()
InterpreterApi দৃষ্টান্তের সাথে সম্পর্কিত সংস্থানগুলি প্রকাশ করুন।
স্ট্যাটিক ইন্টারপ্রেটারএপিআই
তৈরি করুন ( ফাইল মডেলফাইল, ইন্টারপ্রেটারএপিআই. বিকল্প বিকল্প)
নির্দিষ্ট মডেল এবং বিকল্পগুলি ব্যবহার করে একটি InterpreterApi উদাহরণ তৈরি করে।
স্ট্যাটিক ইন্টারপ্রেটারএপিআই
তৈরি করুন ( ByteBuffer byteBuffer, InterpreterApi.Options বিকল্প)
নির্দিষ্ট মডেল এবং বিকল্পগুলি ব্যবহার করে একটি InterpreterApi উদাহরণ তৈরি করে।
বিমূর্ত int
getInputIndex ( স্ট্রিং opName)
ইনপুটের অপ নাম দেওয়া একটি ইনপুটের সূচক পায়।
বিমূর্ত টেনসর
getInputTensor (int inputIndex)
প্রদত্ত ইনপুট সূচকের সাথে যুক্ত টেনসর পায়।
বিমূর্ত int
getInputTensorCount ()
ইনপুট টেনসর সংখ্যা পায়।
বিমূর্ত দীর্ঘ
GetLastNativeInferenceDurationNanoseconds ()
নেটিভ ইনফারেন্স টাইমিং প্রদান করে।
বিমূর্ত int
getOutputIndex ( স্ট্রিং opName)
আউটপুটের op নাম দেওয়া একটি আউটপুটের সূচক পায়।
বিমূর্ত টেনসর
getOutputTensor (int outputIndex)
প্রদত্ত আউটপুট সূচকের সাথে যুক্ত টেনসর পায়।
বিমূর্ত int
getOutputTensorCount ()
আউটপুট টেনসরের সংখ্যা পায়।
বিমূর্ত শূন্যতা
resizeInput (int idx, int[] dims, বুলিয়ান কঠোর)
নেটিভ মডেলের idx-th ইনপুটকে প্রদত্ত ডিমগুলিতে পুনরায় আকার দেয়।
বিমূর্ত শূন্যতা
resizeInput (int idx, int[] dims)
নেটিভ মডেলের idx-th ইনপুটকে প্রদত্ত ডিমগুলিতে পুনরায় আকার দেয়।
বিমূর্ত শূন্যতা
চালান ( অবজেক্ট ইনপুট, অবজেক্ট আউটপুট)
মডেল অনুমান চালায় যদি মডেল শুধুমাত্র একটি ইনপুট নেয়, এবং শুধুমাত্র একটি আউটপুট প্রদান করে।
বিমূর্ত শূন্যতা
runForMultipleInputsOutputs ( অবজেক্ট [] ইনপুট, মানচিত্র < পূর্ণসংখ্যা , অবজেক্ট > আউটপুট)
মডেল অনুমান চালায় যদি মডেল একাধিক ইনপুট নেয়, বা একাধিক আউটপুট প্রদান করে।

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

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

পাবলিক বিমূর্ত অকার্যকর বরাদ্দ টেনসর ()

প্রয়োজনে সমস্ত টেনসরের জন্য বরাদ্দ স্পষ্টভাবে আপডেট করে।

এটি প্রদত্ত ইনপুট টেনসর আকার(গুলি) ব্যবহার করে নির্ভরশীল টেনসরগুলির জন্য আকার এবং মেমরি বরাদ্দ প্রচার করবে।

দ্রষ্টব্য: এই কলটি *বিশুদ্ধরূপে ঐচ্ছিক*। কোনো ইনপুট টেনসরের আকার পরিবর্তন করা হলে টেনসর বরাদ্দ স্বয়ংক্রিয়ভাবে কার্যকর করার সময় ঘটবে। এই কলটি গ্রাফটি চালানোর আগে যেকোনো আউটপুট টেনসরের আকৃতি নির্ধারণে সবচেয়ে কার্যকর, যেমন,

 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 দৃষ্টান্তের সাথে সম্পর্কিত সংস্থানগুলি প্রকাশ করুন।

পাবলিক স্ট্যাটিক ইন্টারপ্রেটারএপি তৈরি করুন ( ফাইল মডেলফাইল, ইন্টারপ্রেটারএপিআই। বিকল্পগুলি)

নির্দিষ্ট মডেল এবং বিকল্পগুলি ব্যবহার করে একটি InterpreterApi উদাহরণ তৈরি করে। মডেল একটি ফাইল থেকে লোড করা হবে.

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

পাবলিক স্ট্যাটিক ইন্টারপ্রেটারএপি তৈরি করুন ( বাইটবাফার বাইটবাফার, ইন্টারপ্রেটারএপি. বিকল্প বিকল্প)

নির্দিষ্ট মডেল এবং বিকল্পগুলি ব্যবহার করে একটি InterpreterApi উদাহরণ তৈরি করে। মডেলটি একটি ByteBuffer থেকে পড়া হবে।

পরামিতি
বাইটবাফার একটি প্রাক-প্রশিক্ষিত TF লাইট মডেল, বাইনারি ক্রমিক আকারে। একটি InterpreterApi উদাহরণ নির্মাণের পরে ByteBuffer সংশোধন করা উচিত নয়। ByteBuffer হয় একটি MappedByteBuffer হতে পারে যা একটি মডেল ফাইলকে মেমরি-ম্যাপ করে, অথবা নেটিভঅর্ডার() এর একটি সরাসরি ByteBuffer যা একটি মডেলের বাইট সামগ্রী ধারণ করে।
বিকল্প দোভাষীর আচরণ কাস্টমাইজ করার জন্য বিকল্পগুলির একটি সেট।
নিক্ষেপ করে
অবৈধ আর্গুমেন্ট ব্যতিক্রম যদি byteBuffer একটি MappedByteBuffer বা নেটিভঅর্ডারের সরাসরি ByteBuffer না হয়।

পাবলিক বিমূর্ত int getInputIndex ( স্ট্রিং opName)

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

পরামিতি
opName
নিক্ষেপ করে
অবৈধ আর্গুমেন্ট ব্যতিক্রম যদি opName দোভাষী আরম্ভ করার জন্য ব্যবহৃত মডেলের কোনো ইনপুটের সাথে মেলে না।

সর্বজনীন বিমূর্ত টেনসর getInputTensor (int inputIndex)

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

পরামিতি
inputIndex
নিক্ষেপ করে
অবৈধ আর্গুমেন্ট ব্যতিক্রম যদি inputIndex নেতিবাচক হয় বা মডেল ইনপুট সংখ্যার চেয়ে ছোট না হয়।

পাবলিক বিমূর্ত int getInputTensorCount ()

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

সর্বজনীন বিমূর্ত লং getLastNativeInferenceDurationNanoseconds ()

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

নিক্ষেপ করে
অবৈধ আর্গুমেন্ট ব্যতিক্রম যদি মডেলটি দোভাষী দ্বারা আরম্ভ না করা হয়।

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

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

পরামিতি
opName
নিক্ষেপ করে
অবৈধ আর্গুমেন্ট ব্যতিক্রম যদি opName দোভাষী আরম্ভ করার জন্য ব্যবহৃত মডেলের কোনো আউটপুটের সাথে মেলে না।

সর্বজনীন বিমূর্ত টেনসর getOutputTensor (int outputIndex)

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

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

পরামিতি
আউটপুট ইনডেক্স
নিক্ষেপ করে
অবৈধ আর্গুমেন্ট ব্যতিক্রম যদি outputIndex নেতিবাচক হয় বা মডেল আউটপুট সংখ্যার চেয়ে ছোট না হয়।

পাবলিক বিমূর্ত int getOutputTensorCount ()

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

সর্বজনীন বিমূর্ত ভয়েড রিসাইজইনপুট (int idx, int[] dims, বুলিয়ান কঠোর)

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

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

পরামিতি
idx
অনুজ্জ্বল
কঠোর
নিক্ষেপ করে
অবৈধ আর্গুমেন্ট ব্যতিক্রম যদি idx নেতিবাচক হয় বা মডেল ইনপুট সংখ্যার চেয়ে ছোট না হয়; অথবা যদি idx-th ইনপুটের আকার পরিবর্তন করার সময় ত্রুটি ঘটে। উপরন্তু, স্থির মাত্রা সহ একটি টেনসরের আকার পরিবর্তন করার চেষ্টা করার সময় ত্রুটি ঘটে যখন `কঠোর` সত্য হয়।

সর্বজনীন বিমূর্ত ভয়েড রিসাইজইনপুট (int idx, int[] dims)

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

পরামিতি
idx
অনুজ্জ্বল
নিক্ষেপ করে
অবৈধ আর্গুমেন্ট ব্যতিক্রম যদি idx নেতিবাচক হয় বা মডেল ইনপুট সংখ্যার চেয়ে ছোট না হয়; অথবা যদি idx-th ইনপুটের আকার পরিবর্তন করার সময় ত্রুটি ঘটে।

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

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

সতর্কতা: এপিআই আরও দক্ষ হয় যদি ইনপুট/আউটপুট ডেটা টাইপ হিসাবে একটি 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() এর মাধ্যমে)।
নিক্ষেপ করে
অবৈধ আর্গুমেন্ট ব্যতিক্রম যদি input শূন্য বা খালি হয়, অথবা যদি অনুমান চালানোর সময় একটি ত্রুটি ঘটে।
অবৈধ আর্গুমেন্ট ব্যতিক্রম (পরীক্ষামূলক, পরিবর্তন সাপেক্ষে) যদি অনুমান setCancelled(true) দ্বারা বাধাপ্রাপ্ত হয়।

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

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

সতর্কতা: এপিআই আরও দক্ষ হয় যদি 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() ) এর মাধ্যমে।
নিক্ষেপ করে
অবৈধ আর্গুমেন্ট ব্যতিক্রম যদি inputs নাল বা খালি হয়, যদি outputs শূন্য হয়, অথবা যদি অনুমান চালানোর সময় একটি ত্রুটি ঘটে।