মনে করুন আমি একটি কাস্টম অপ্টিমাইজার ক্লাস লিখতে চাই যা tf.kerasএপিআই (টেনসরফ্লো সংস্করণ> = 2.0 ব্যবহার করে) এর সাথে সঙ্গতিপূর্ণ। বাস্তবায়নে কী করা হয়েছে তার বিপরীতে এটি করার ডকুমেন্টেড উপায় সম্পর্কে আমি বিভ্রান্ত।
tf.keras.optimizers.Optimizer রাজ্যগুলির জন্য ডকুমেন্টেশন ,
### Write a customized optimizer.
If you intend to create your own optimization algorithm, simply inherit from
this class and override the following methods:
- resource_apply_dense (update variable given gradient tensor is dense)
- resource_apply_sparse (update variable given gradient tensor is sparse)
- create_slots (if your optimizer algorithm requires additional variables)
যাইহোক, বর্তমান tf.keras.optimizers.Optimizerবাস্তবায়ন কোনও resource_apply_denseপদ্ধতির সংজ্ঞা দেয় না , তবে এটি একটি ব্যক্তিগত- দেখানো পদ্ধতি স্টাবকে সংজ্ঞায়িত করে । একইভাবে, কোনও বা পদ্ধতি নেই, তবে একটি পদ্ধতি স্টাব এবং একটি পদ্ধতি কল রয়েছে ।_resource_apply_denseresource_apply_sparsecreate_slots_resource_apply_sparse_create_slots
সরকারী সালে tf.keras.optimizers.Optimizerউপশ্রেণী (ব্যবহার tf.keras.optimizers.Adamএকটি উদাহরণ হিসাবে), আছে _resource_apply_dense, _resource_apply_sparseএবং _create_slotsপদ্ধতি, এবং সেখানে নেতৃস্থানীয় আন্ডারস্কোর ছাড়া এমন কোন পদ্ধতি।
সেখানে সামান্য-কম সরকারী অনুরূপ নেতৃস্থানীয়-আন্ডারস্কোর পদ্ধতি tf.keras.optimizers.Optimizerউপশ্রেণী (যেমন, tfa.optimizers.MovingAverage: TensorFlow অ্যাডঅনস থেকে _resource_apply_dense, _resource_apply_sparse, _create_slots)।
আমার জন্য আর একটি বিভ্রান্তিমূলক বিষয় হ'ল টেনসরফ্লো অ্যাডনস অপটিমাইজারগুলির মধ্যে কিছুapply_gradients পদ্ধতিতে (যেমন, tfa.optimizers.MovingAverage) ওভাররাইডও করে , তবে tf.keras.optimizersঅপ্টিমাইজারগুলি তা করে না।
তদুপরি, আমি লক্ষ করেছি যে apply_gradientsপদ্ধতিটির tf.keras.optimizers.Optimizerপদ্ধতি কল করে_create_slots তবে বেস tf.keras.optimizers.Optimizerক্লাসের কোনও _create_slotsপদ্ধতি নেই। সুতরাং, মনে হচ্ছে কোনও উপকরণটি ওভাররাইড না করলে অপ্টিমাইজার সাবক্লাসে একটি _create_slotsপদ্ধতি অবশ্যই সংজ্ঞায়িত করা উচিতapply_gradients ।
প্রশ্নাবলি
সাবক্লাস এ এর সঠিক উপায় কী tf.keras.optimizers.Optimizer? বিশেষ করে,
- না
tf.keras.optimizers.Optimizerশীর্ষে তালিকাভুক্ত ডকুমেন্টেশন কেবল পদ্ধতি তারা উল্লেখ নেতৃস্থানীয়-আন্ডারস্কোর সংস্করণ ওভাররাইড করতে (যেমন, মানে_resource_apply_denseপরিবর্তেresource_apply_dense)? যদি তা হয় তবে টেনসরফ্লোয়ের ভবিষ্যতের সংস্করণগুলিতে এই ব্যক্তিগত-দেখায় পদ্ধতিগুলি তাদের আচরণ পরিবর্তন করে না এমন কোনও এপিআই গ্যারান্টি আছে? এই পদ্ধতির স্বাক্ষরগুলি কী কী? - পদ্ধতিগুলি
apply_gradientsছাড়াও কেউ কখন ওভাররাইড করবে_apply_resource_[dense|sparse]?
সম্পাদনা করুন। গিটহাবের উপর প্রকাশিত সমস্যা: # 36449
_resource_apply_denseবা এর ঘোষণার দিকে নজর রাখতে পারেন _resource_apply_sparseএবং প্রয়োগকৃত অপ্টিমাইজারগুলিতে তাদের ব্যবহার দেখতে পারেন। যদিও এটি নাও হতে পারে, আমি মনে করি, স্থিতিশীলতা গ্যারান্টি সহ পাবলিক এপিআই, আমি বলব এটি ব্যবহার করা বেশ নিরাপদ। তাদের কেবল এই দিকটিতে আরও ভাল দিকনির্দেশনা দেওয়া উচিত।
get_config) তবে সেগুলি এখনও পাবলিক ডকুমেন্টেশনে হাজির হওয়া উচিত নয় ।