tensorflow:: ops:: TensorArrayGrad

#include <data_flow_ops.h>

প্রদত্ত হ্যান্ডেলের মানগুলির গ্রেডিয়েন্ট সংরক্ষণের জন্য একটি টেনসর অ্যারে তৈরি করে।

সারসংক্ষেপ

প্রদত্ত TensorArray gradient-টি যদি আগে থেকেই বিদ্যমান থাকে, তবে সেটির একটি রেফারেন্স ফেরত দেওয়া হয়।

মূল TensorArray- এর ডাইনামিক সাইজ ফ্ল্যাগটি নিষ্ক্রিয় করে এর আকার লক করে দেয়।

ইনপুট flow_in সম্পর্কে একটি নোট:

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

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

সোর্স অ্যাট্রিবিউট সম্পর্কে একটি নোট:

TensorArray গ্রেডিয়েন্ট কলগুলো একটি অ্যাকুমুলেটর TensorArray অবজেক্ট ব্যবহার করে। যদি একই সেশনে একাধিক গ্রেডিয়েন্ট গণনা ও চালানো হয়, তবে একাধিক গ্রেডিয়েন্ট নোড ভুলবশত একই অ্যাকুমুলেটর TensorArray-এর মধ্য দিয়ে প্রবাহিত হতে পারে। এর ফলে দ্বিগুণ গণনা হয় এবং সাধারণত TensorArray-এর গ্রেডিয়েন্ট প্রবাহ ব্যাহত হয়।

এর সমাধান হলো, এই নির্দিষ্ট TensorArray গ্রেডিয়েন্টটি কোন গ্রেডিয়েন্ট কলে ব্যবহৃত হচ্ছে তা শনাক্ত করা। এটি করা হয় ইনপুট গ্রেডিয়েন্ট টেনসরের নাম থেকে একটি অনন্য স্ট্রিং (যেমন "gradients", "gradients_1", ...) শনাক্ত করার মাধ্যমে। এখানে TensorArray গ্রেডিয়েন্ট অবজেক্ট তৈরি করার সময় এই স্ট্রিংটি একটি সাফিক্স হিসেবে ব্যবহৃত হয় (অ্যাট্রিবিউট source )।

ফরওয়ার্ড টেনসরঅ্যারে তৈরি বা খোঁজার সময় এর নামের শেষে ‘ source অ্যাট্রিবিউটটি সাফিক্স হিসেবে যোগ করা হয়, যাতে প্রতিটি আলাদা গ্রেডিয়েন্ট ক্যালকুলেশনের জন্য নিজস্ব টেনসরঅ্যারে অ্যাকুমুলেটর পাওয়া যায়।

যুক্তি:

  • স্কোপ: একটি স্কোপ অবজেক্ট
  • handle: ফরোয়ার্ড TensorArray- এর হ্যান্ডেল।
  • flow_in: একটি ফ্লোট স্কেলার যা অপারেশনগুলোর সঠিক ক্রম নিশ্চিত করে।
  • source: গ্রেডিয়েন্ট সোর্স স্ট্রিং, যা নির্ধারণ করে কোন গ্রেডিয়েন্ট টেনসরঅ্যারেটি রিটার্ন করা হবে।

ফেরত:

নির্মাতা এবং ধ্বংসকারী

TensorArrayGrad (const :: tensorflow::Scope & scope, :: tensorflow::Input handle, :: tensorflow::Input flow_in, StringPiece source)

জনসাধারণের বৈশিষ্ট্য

flow_out
grad_handle
operation

জনসাধারণের বৈশিষ্ট্য

প্রবাহ_আউট

::tensorflow::Output flow_out

গ্রেড_হ্যান্ডেল

::tensorflow::Output grad_handle

অপারেশন

Operation operation

জনসাধারণের কার্যাবলী

TensorArrayGrad

 TensorArrayGrad(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input handle,
  ::tensorflow::Input flow_in,
  StringPiece source
)