This page was translated by the Cloud Translation API.
Switch to English

টেনসরফ্লো হাবের সাথে টিএফ 1 থেকে টিএফ 2 এ স্থানান্তরিত হচ্ছে

এই পৃষ্ঠায় ব্যাখ্যা করা হয়েছে যে টেনসরফ্লো 1 থেকে টেনসরফ্লো 2 তে আপনার টেনসরফ্লো কোডটি স্থানান্তর করার সময় টেনসরফ্লো হাবটি কীভাবে ব্যবহার করা যায় এটি টেনসরফ্লো এর সাধারণ মাইগ্রেশন গাইডকে পরিপূরক করে।

টিএফ 2-এর জন্য, টিএফ hub.Module লিগ্যাসি hub.Module থেকে সরে গেছে tf.compat.v1.Graph tf.contrib.v1.layers . tf.compat.v1.Graph তৈরি করার জন্য tf.contrib.v1.layers tf.compat.v1.Graph tf.contrib.v1.layers । পরিবর্তে, এখন একটি hub.KerasLayer (সাধারণত tf.keras.Model এর নতুন hub.load() পরিবেশে ) hub.KerasLayer জন্য অন্যান্য কেরাস স্তরগুলির পাশাপাশি একটি tf.keras.Model এবং নিম্ন-স্তরের টেনসরফ্লো কোডের জন্য এর অন্তর্নিহিত hub.load() পদ্ধতি রয়েছে।

টিএফ 1 এবং টিএফ 2 এর টিএফ 1 সামঞ্জস্যতা মোডে hub.Module এপিআই tensorflow_hub লাইব্রেরিতে উপলব্ধ। এটি কেবলমাত্র টিএফ 1 হাব ফর্ম্যাটে মডেলগুলি লোড করতে পারে।

এর নতুন API hub.load() এবং hub.KerasLayer TensorFlow 1.15 জন্য কাজ এই নতুন API (উৎসুক এবং গ্রাফ মোডে) এবং TensorFlow 2. নতুন লোড করতে পারেন TF2 SavedModel সঙ্গে বিধিনিষেধ পরিপূর্ণ সম্পদ, এবং, মডেল সামঞ্জস্যতা গাইড , টিএফ 1 হাব বিন্যাসে উত্তরাধিকার মডেল।

সাধারণভাবে, যেখানেই সম্ভব নতুন এপিআই ব্যবহার করার পরামর্শ দেওয়া হচ্ছে।

নতুন এপিআই এর সংক্ষিপ্তসার

hub.load() হাব (বা সামঞ্জস্যপূর্ণ পরিষেবাদি) থেকে একটি সেভডমডেল লোড করার জন্য hub.load() নতুন নিম্ন-স্তরের ফাংশন। এটি tf.saved_model.load() এর tf.saved_model.load() কে tf.saved_model.load() ; টেনসরফ্লো এর সেভডমডেল গাইড আপনাকে ফলাফলটি দিয়ে কী করতে পারে তা বর্ণনা করে।

 m = hub.load(handle)
outputs = m(inputs)
 

hub.KerasLayer বর্গ hub.load() কল করে এবং hub.load() অন্যান্য কেরাস স্তরগুলির সাথে ব্যবহারের জন্য ফলাফলটি গ্রহণ করে। (এটি অন্যান্য উপায়ে ব্যবহৃত লোভিত সেভডমডেলগুলির জন্য একটি সুবিধাজনক মোড়কও হতে পারে))

 model = tf.keras.Sequential([
    hub.KerasLayer(handle),
    ...])
 

অনেক টিউটোরিয়াল ক্রিয়াকলাপে এই API গুলি দেখায়। বিশেষভাবে দেখুন

অনুমান প্রশিক্ষণে নতুন এপিআই ব্যবহার করা

আপনি যদি প্যারামিটার সার্ভারগুলির সাথে প্রশিক্ষণের জন্য কোনও अनुमानকটিতে টিএফ 2 সেভডমডেল ব্যবহার করেন (বা অন্যথায় রিমোট ডিভাইসগুলিতে রাখা ভেরিয়েবলগুলির সাথে টিএফ 1 সেশনে), আপনাকে টিএফ.সেশনের কনফিগারপ্রোটায় experimental.share_cluster_devices_in_session সেট করতে হবে, অন্যথায় আপনি একটি ত্রুটি পাবেন "নির্ধারিত ডিভাইস '/ কাজ: পিএস / প্রতিলিপি: 0 / টাস্ক: 0 / ডিভাইস: সিপিইউ: 0' কোনও ডিভাইসের সাথে মেলে না।"

প্রয়োজনীয় বিকল্পটি সেট করা যেতে পারে

 session_config = tf.compat.v1.ConfigProto()
session_config.experimental.share_cluster_devices_in_session = True
run_config = tf.estimator.RunConfig(..., session_config=session_config)
estimator = tf.estimator.Estimator(..., config=run_config)
 

TF2.2 দিয়ে শুরু করে, এই বিকল্পটি এখন আর পরীক্ষামূলক নয় এবং .experimental টুকরোটি বাদ দেওয়া যাবে।

টিএফ 1 হাব ফর্ম্যাটে উত্তরাধিকারের মডেলগুলি লোড করা হচ্ছে

এটি ঘটতে পারে যে কোনও নতুন টিএফ 2 সেভডমডেল আপনার ব্যবহারের ক্ষেত্রে এখনও উপলভ্য নয় এবং আপনাকে টিএফ 1 হাব ফর্ম্যাটে কোনও উত্তরাধিকার মডেল লোড করতে হবে। tensorflow_hub রিলিজ 0.7 থেকে শুরু করে, আপনি টিএফ 1 হাব ফর্ম্যাটে হাবের সাথে একত্রে উত্তরাধিকার মডেলটি ব্যবহার করতে পারেন hub.KerasLayer নীচে প্রদর্শিত হিসাবে:

 m = hub.KerasLayer(handle)
tensor_out = m(tensor_in)
 

অতিরিক্তভাবে KerasLayer টিএফ 1 হাব ফর্ম্যাট এবং লিগ্যাসি স্যাভডমোডেলসে লেগ্যাসি মডেলের আরও নির্দিষ্ট ব্যবহারের জন্য tags , signature , output_key এবং signature_outputs_as_dict নির্দিষ্ট করার ক্ষমতা প্রকাশ করে।

টিএফ 1 হাব বিন্যাসের সামঞ্জস্যের বিষয়ে আরও তথ্যের জন্য মডেলটির সামঞ্জস্যতা গাইডটি দেখুন

নিম্ন স্তরের এপিআই ব্যবহার করে

লিগ্যাসি টিএফ 1 হাব বিন্যাসের মডেলগুলি tf.saved_model.load মাধ্যমে লোড করা tf.saved_model.load । পরিবর্তে

 # DEPRECATED: TensorFlow 1
m = hub.Module(handle, tags={"foo", "bar"})
tensors_out_dict = m(dict(x1=..., x2=...), signature="sig", as_dict=True)
 

এটি ব্যবহার করার পরামর্শ দেওয়া হয়:

 # TensorFlow 2
m = hub.load(path, tags={"foo", "bar"})
tensors_out_dict = m.signatures["sig"](x1=..., x2=...)
 

এই উদাহরণগুলিতে m.signatures হ'ল স্বাক্ষরের নাম অনুসারে টেনসরফ্লো কংক্রিট ফাংশনগুলির একটি ডিক। এই জাতীয় ফাংশন কল করা যদি অব্যবহৃত না হয়, তার সমস্ত আউটপুটগুলি গণনা করে। (এটি টিএফ 1 এর গ্রাফ মোডের অলস মূল্যায়নের চেয়ে আলাদা))