tensorflow:: ops:: FractionalMaxPool

#include <nn_ops.h>

ইনপুটের উপর ফ্র্যাকশনাল ম্যাক্স পুলিং প্রয়োগ করে।

সারসংক্ষেপ

ফ্র্যাকশনাল ম্যাক্স পুলিং সাধারণ ম্যাক্স পুলিং থেকে কিছুটা ভিন্ন। সাধারণ ম্যাক্স পুলিং-এ, একটি ইনপুট সেটের ছোট N x N উপবিভাগের (প্রায়শই 2x2) সর্বোচ্চ মান নিয়ে সেটটিকে ছোট করা হয় এবং সেটটিকে N গুণ কমানোর চেষ্টা করা হয়, যেখানে N একটি পূর্ণসংখ্যা। ফ্র্যাকশনাল ম্যাক্স পুলিং-এর ক্ষেত্রে, যেমনটা "ফ্র্যাকশনাল" শব্দটি থেকে বোঝা যায়, সামগ্রিক হ্রাসের অনুপাত N-কে পূর্ণসংখ্যা হতে হয় না।

পুলিং অঞ্চলগুলোর আকার এলোমেলোভাবে তৈরি করা হলেও সেগুলো মোটামুটি অভিন্ন হয়। উদাহরণস্বরূপ, উচ্চতার মাত্রা এবং যে সারিগুলো পুলের সীমানা হবে, সেই তালিকার ওপর আরোপিত সীমাবদ্ধতাগুলো দেখা যাক।

প্রথমে আমরা নিম্নলিখিত বিষয়গুলো সংজ্ঞায়িত করব:

  1. input_row_length : ইনপুট সেট থেকে সারির সংখ্যা
  2. আউটপুট সারির দৈর্ঘ্য : যা ইনপুটের চেয়ে ছোট হবে
  3. আলফা = ইনপুট সারির দৈর্ঘ্য / আউটপুট সারির দৈর্ঘ্য : আমাদের হ্রাস অনুপাত
  4. K = ফ্লোর(আলফা)
  5. row_pooling_sequence : এটি হলো পুল বাউন্ডারি সারিগুলোর ফলাফল তালিকা

তাহলে, row_pooling_sequence-কে নিম্নলিখিত শর্তগুলো পূরণ করতে হবে:

  1. a[0] = 0 : অনুক্রমের প্রথম মান 0
  2. a[end] = input_row_length : অনুক্রমের শেষ মানটিই হলো আকার
  3. K <= (a[i+1] - a[i]) <= K+1 : সব ব্যবধানের আকার K বা K+1
  4. সারি_পুলিং_সিকোয়েন্সের দৈর্ঘ্য = আউটপুট_সারি_দৈর্ঘ্য+১

ফ্র্যাকশনাল ম্যাক্স পুলিং সম্পর্কে আরও বিস্তারিত জানতে এই গবেষণাপত্রটি দেখুন: বেঞ্জামিন গ্রাহাম, ফ্র্যাকশনাল ম্যাক্স-পুলিং

যুক্তি:

  • স্কোপ: একটি স্কোপ অবজেক্ট
  • মান: ৪-মাত্রিক, যার আকৃতি [batch, height, width, channels] ।
  • পুলিং_রেশিও: value -এর প্রতিটি ডাইমেনশনের জন্য পুলিং রেশিও, বর্তমানে এটি শুধুমাত্র রো (row) এবং কলাম (col) ডাইমেনশন সমর্থন করে এবং এর মান অবশ্যই >= 1.0 হতে হবে। উদাহরণস্বরূপ, একটি বৈধ পুলিং রেশিও দেখতে [1.0, 1.44, 1.73, 1.0]-এর মতো হবে। প্রথম এবং শেষ উপাদান অবশ্যই 1.0 হতে হবে, কারণ আমরা ব্যাচ (batch) এবং চ্যানেল (channels) ডাইমেনশনে পুলিং-এর অনুমতি দিই না। 1.44 এবং 1.73 হলো যথাক্রমে হাইট (height) এবং উইডথ (width) ডাইমেনশনের পুলিং রেশিও।

ঐচ্ছিক অ্যাট্রিবিউটসমূহ (দেখুন Attrs ):

  • pseudo_random: True-তে সেট করা হলে, এটি পুলিং সিকোয়েন্সটি ছদ্ম-এলোমেলোভাবে তৈরি করে, অন্যথায় এলোমেলোভাবে। ছদ্ম-এলোমেলো এবং এলোমেলোর মধ্যে পার্থক্য জানতে বেঞ্জামিন গ্রাহামের "Fractional Max-Pooling" পেপারটি দেখুন।
  • ওভারল্যাপিং: যখন এটি True-তে সেট করা হয়, এর মানে হলো পুলিং করার সময়, পাশাপাশি থাকা পুলিং সেলগুলোর সীমানায় থাকা মানগুলো উভয় সেলই ব্যবহার করে। উদাহরণস্বরূপ:

index 0 1 2 3 4

value 20 5 16 3 7

যদি পুলিং সিকোয়েন্সটি [0, 2, 4] হয়, তাহলে ইনডেক্স 2-এ থাকা 16 দুইবার ব্যবহৃত হবে। ফ্র্যাকশনাল ম্যাক্স পুলিং-এর ক্ষেত্রে ফলাফল হবে [20, 16]।

  • ডিটারমিনিস্টিক: যখন এটিকে True-তে সেট করা হয়, তখন কম্পিউটেশন গ্রাফে একটি FractionalMaxPool নোডের উপর ইটারেট করার সময় একটি নির্দিষ্ট পুলিং রিজিয়ন ব্যবহার করা হবে। FractionalMaxPool-কে ডিটারমিনিস্টিক করার জন্য এটি প্রধানত ইউনিট টেস্টে ব্যবহৃত হয়।
  • সিড: যদি সিড অথবা সিড২-এর যেকোনো একটির মান অশূন্য ধরা হয়, তবে র‍্যান্ডম নম্বর জেনারেটরটি প্রদত্ত সিড দ্বারা চালিত হয়। অন্যথায়, এটি একটি র‍্যান্ডম সিড দ্বারা চালিত হয়।
  • seed2: বীজের সংঘর্ষ এড়ানোর জন্য একটি দ্বিতীয় বীজ।

ফেরত:

  • Output : ফ্র্যাকশনাল ম্যাক্স পুলিং-এর পরের আউটপুট টেনসর।
  • Output row_pooling_sequence: রো পুলিং সিকোয়েন্স, যা গ্রেডিয়েন্ট গণনা করার জন্য প্রয়োজন।
  • Output col_pooling_sequence: কলাম পুলিং সিকোয়েন্স, যা গ্রেডিয়েন্ট গণনা করার জন্য প্রয়োজন।

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

FractionalMaxPool (const :: tensorflow::Scope & scope, :: tensorflow::Input value, const gtl::ArraySlice< float > & pooling_ratio)
FractionalMaxPool (const :: tensorflow::Scope & scope, :: tensorflow::Input value, const gtl::ArraySlice< float > & pooling_ratio, const FractionalMaxPool::Attrs & attrs)

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

col_pooling_sequence
operation
output
row_pooling_sequence

পাবলিক স্ট্যাটিক ফাংশন

Deterministic (bool x)
Overlapping (bool x)
PseudoRandom (bool x)
Seed (int64 x)
Seed2 (int64 x)

কাঠামো

tensorflow:: ops:: FractionalMaxPool:: Attrs

FractionalMaxPool-এর জন্য ঐচ্ছিক অ্যাট্রিবিউট সেটার।

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

col_pooling_sequence

::tensorflow::Output col_pooling_sequence

অপারেশন

Operation operation

আউটপুট

::tensorflow::Output output

সারি_পুলিং_ক্রম

::tensorflow::Output row_pooling_sequence

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

ফ্র্যাকশনালম্যাক্সপুল

 FractionalMaxPool(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input value,
  const gtl::ArraySlice< float > & pooling_ratio
)

ফ্র্যাকশনালম্যাক্সপুল

 FractionalMaxPool(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input value,
  const gtl::ArraySlice< float > & pooling_ratio,
  const FractionalMaxPool::Attrs & attrs
)

পাবলিক স্ট্যাটিক ফাংশন

নিয়তিবাদী

Attrs Deterministic(
  bool x
)

ওভারল্যাপিং

Attrs Overlapping(
  bool x
)

ছদ্ম-এলোমেলো

Attrs PseudoRandom(
  bool x
)

বীজ

Attrs Seed(
  int64 x
)

বীজ২

Attrs Seed2(
  int64 x
)