tensorflow :: ভজনা:: লোডার

এটি একটি বিমূর্ত ক্লাস।

#include <loader.h>

একটি বস্তুর জন্য একটি প্রমিত বিমূর্ততা যা একটি পরিবেশনযোগ্য এর জীবনচক্র পরিচালনা করে, এটি লোড করা এবং আনলোড করা সহ।

সারসংক্ষেপ

Servables হল স্বেচ্ছাচারী বস্তু যা অ্যালগরিদম বা ডেটা পরিবেশন করে যা প্রায়শই, যদিও অগত্যা নয়, একটি মেশিন-শিক্ষিত মডেল ব্যবহার করে।

একটি লোডার একটি পরিবেশনযোগ্য বস্তুর জন্য পরিবেশনযোগ্য সংস্করণ সমস্ত একটি সাধারণ নাম (যেমন "my_servable") ভাগ এবং বৃদ্ধি সংস্করণ সংখ্যা, সাধারণত তাজা প্রশিক্ষণ তথ্য থেকে শিখেছি আপডেট মডেল পরামিতি প্রতিনিধিত্ব একটি স্ট্রিম এক উদাহরণ হিসেবে বলা যায় প্রতিনিধিত্ব করে।

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

উপশ্রেণী ঐচ্ছিকভাবে একটি পয়েন্টার সংরক্ষণ করতে পারে উত্স এটি সম্ভূত, একটি প্রদত্ত পরিবেশনযোগ্য প্রবাহে রাষ্ট্র একাধিক পরিবেশনযোগ্য বস্তু জুড়ে ভাগ ব্যবহার করার জন্য।

প্রয়োগগুলি নিশ্চিত করতে হবে যে তারা যে পদ্ধতিগুলি প্রকাশ করে তা থ্রেড-নিরাপদ, বা সাবধানে নথিভুক্ত করে এবং/অথবা সঠিকতা নিশ্চিত করতে তাদের ক্লায়েন্টদের সাথে তাদের থ্রেড-নিরাপত্তা বৈশিষ্ট্যগুলি সমন্বয় করে। Servables এর সমবর্তী মৃত্যুদন্ড সম্পর্কে চিন্তা করতে প্রয়োজন হবে না () লোড যেমন আহ্বানকারী নিশ্চিত করবে যে ঘটবে না / আন-()।

উত্তরাধিকার

জ্ঞাত উপশ্রেণী নির্দেশ: tensorflow :: ভজনা :: ResourceUnsafeLoader

কনস্ট্রাক্টর এবং ডেস্ট্রাক্টর

~Loader ()
বিনাশকারী একটি উপর কখনো বলা হবে লোডার যার পরিবেশনযোগ্য বর্তমানে লোড হয়, অর্থাত্

পাবলিক ফাংশন

EstimateResources (ResourceAllocation *estimate) const =0
virtual Status
একটি পরিবেশনযোগ্য সম্পদ ব্যবহার করবে অনুমান.
Load ()
virtual Status
যে কোনো ডেটা চাহিদা পরিবেশনযোগ্য দ্বারা ফিরে ব্যবহার করার পূর্বে লোড করা নিয়ে আসে () পরিবেশনযোগ্য
LoadWithMetadata (const Metadata & metadata)
virtual Status
উপরে পদ্ধতি অনুরূপ, কিন্তু লাগে মেটাডেটা একটি PARAM, যা উপযুক্তভাবে লোডার বাস্তবায়ন দ্বারা ব্যবহার করা যেতে পারে।
Unload ()=0
virtual void
মুক্ত সম্পদ সময় বরাদ্দ লোড () (সম্পদ servables এখনও অন্য একজন সক্রিয় বেশী জন্য প্রয়োজন হয় জুড়ে ভাগ জন্য সম্ভবত ব্যতীত)।
servable ()=0
virtual AnyPtr
অন্তর্নিহিত পরিবেশনযোগ্য বস্তুতে একটি অস্বচ্ছ ইন্টারফেস ফেরত দেয়।

কাঠামো

tensorflow :: ভজনা :: লোডার :: মেটাডেটা

মেটাডেটা ServableId নিয়ে গঠিত।

পাবলিক ফাংশন

অনুমান সম্পদ

virtual Status EstimateResources(
  ResourceAllocation *estimate
) const =0

একটি পরিবেশনযোগ্য সম্পদ ব্যবহার করবে অনুমান.

গুরুত্বপূর্ণ: এই পদ্ধতির বাস্তবায়নকে অবশ্যই নিম্নলিখিত প্রয়োজনীয়তাগুলি মেনে চলতে হবে, যা পরিবেশন ব্যবস্থাকে সঠিকভাবে যুক্তি দিতে সক্ষম করে যে কোন সার্ভেবলগুলি নিরাপদে লোড করা যেতে পারে:

  1. অনুমানটি প্রকৃত মানের উপর একটি ঊর্ধ্ব সীমার প্রতিনিধিত্ব করতে হবে।
  2. লোড করার আগে, অনুমানে এমন সংস্থান অন্তর্ভুক্ত থাকতে পারে যা কোনও নির্দিষ্ট ডিভাইসের উদাহরণে আবদ্ধ নয়, যেমন দুটি GPU-এর একটিতে RAM।
  3. লোড করার সময়, একাধিক দৃষ্টান্ত সহ যেকোন ডিভাইসের জন্য (উদাহরণস্বরূপ দুটি জিপিইউ), অনুমানটি অবশ্যই উল্লেখ করবে যে প্রতিটি সংস্থান আবদ্ধ।
  4. অনুমানটি একঘেয়েভাবে অ-বর্ধমান হওয়া আবশ্যক, অর্থাৎ এটি সময়ের সাথে বাড়তে পারে না। এটি সম্ভাব্য সময়ের সাথে কম হওয়ার কারণ রিটার্নস
    একবার লোড করার পরে পরিবেশনযোগ্য সম্পদের একটি অনুমান। যদি servable ইতিমধ্যেই লোড করা হয়ে থাকে, তাহলে প্রকৃত সম্পদ ব্যবহারের একটি অনুমান প্রদান করে।

ভার

virtual Status Load()

যে কোনো ডেটা চাহিদা পরিবেশনযোগ্য দ্বারা ফিরে ব্যবহার করার পূর্বে লোড করা নিয়ে আসে () পরিবেশনযোগ্য

আর সম্পদ ব্যবহার মে মাসের তুলনায় অনুমান দ্বারা রিপোর্ট EstimateResources () ।

যদি বাস্তবায়ন (লোড) , আপনি ওভাররাইড করতে হবে না LoadWithMetadata ()

লোড উইথ মেটাডেটা

virtual Status LoadWithMetadata(
  const Metadata & metadata
)

উপরে পদ্ধতি অনুরূপ, কিন্তু লাগে মেটাডেটা একটি PARAM, যা উপযুক্তভাবে লোডার বাস্তবায়ন দ্বারা ব্যবহার করা যেতে পারে।

আপনি অগ্রাহ্য করেন তাহলে LoadWithMetadata () , কারণ আপনি মেটাডাটা উপযুক্তভাবে ব্যবহার করার আগে আপনার অগ্রাহ্য এড়িয়ে যেতে পারেন লোড ()

আনলোড

virtual void Unload()=0

মুক্ত সম্পদ সময় বরাদ্দ লোড () (সম্পদ servables এখনও অন্য একজন সক্রিয় বেশী জন্য প্রয়োজন হয় জুড়ে ভাগ জন্য সম্ভবত ব্যতীত)।

লোডার "নতুন" রাষ্ট্র ফিরে যাওয়ার দরকার নেই (অর্থাত লোড () পরে বলা যায় না আন () )।

পরিবেশনযোগ্য

virtual AnyPtr servable()=0

অন্তর্নিহিত পরিবেশনযোগ্য বস্তুতে একটি অস্বচ্ছ ইন্টারফেস ফেরত দেয়।

ইন্টারফেসের প্রকৃত ব্যবহার করার জন্য কলকারীর সুনির্দিষ্ট প্রকার জানতে হবে। উদাহরণ স্বরূপ:

CustomLoader বাস্তবায়ন:

class CustomLoader : public Loader {
 public:
  ...
  Status Load() override {
    servable_ = ...;
  }

  AnyPtr servable() override { return servable_; }

 private:
  CustomServable* servable_ = nullptr;
};

ব্যবহারকারী অনুরোধ পরিবেশন করছে:

ServableHandle<CustomServable> handle = ...
CustomServable* servable = handle.get();
servable->...

তাহলে পরিবেশনযোগ্য () সফল পর বলা হয় ) লোড ( আগে ও আন () , এটি একটি বৈধ, অ নাল AnyPtr বস্তুর ফেরৎ। যদি একটি সফল আগে ফোন দিয়েছিলাম লোড () কল বা পরে আন () , এটা নাল AnyPtr ফেরৎ।

~লোডার

virtual  ~Loader()=default

বিনাশকারী একটি উপর কখনো বলা হবে লোডার যার পরিবেশনযোগ্য বর্তমানে লোড হয়, অর্থাত্

মধ্যে (সফল) কল লোড () এবং আন ()