মনে করুন আমি একটি কাস্টম অপ্টিমাইজার ক্লাস লিখতে চাই যা 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_dense
resource_apply_sparse
create_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
) তবে সেগুলি এখনও পাবলিক ডকুমেন্টেশনে হাজির হওয়া উচিত নয় ।