পুলিং এবং কনভোলজিনাল অপস ইনপুট টেনসর জুড়ে একটি "উইন্ডো" স্লাইড করে। tf.nn.conv2d
উদাহরণ হিসাবে ব্যবহার করা: যদি ইনপুট টেনসরটির 4 টি মাত্রা থাকে: [batch, height, width, channels]
তবে কনভোলশনটি 2D উইন্ডোতে height, width
মাত্রাগুলিতে কাজ করে।
strides
প্রতিটি মাত্রায় উইন্ডোটি কতটা স্থানান্তরিত করে তা নির্ধারণ করে। সাধারণ ব্যবহার প্রথমটি (ব্যাচ) এবং সর্বশেষে (গভীরতা) 1 এ স্থির করে।
আসুন একটি খুব দৃ concrete় উদাহরণ ব্যবহার করুন: 32x32 গ্রেস্কেল ইনপুট চিত্রের উপর একটি 2-ডি কনভোলিউশন চালানো। আমি গ্রেস্কেল বলি কারণ এরপরে ইনপুট চিত্রটির গভীরতা = 1 রয়েছে যা এটি সহজ রাখতে সহায়তা করে। সেই চিত্রটি এর মতো দেখতে দিন:
00 01 02 03 04 ...
10 11 12 13 14 ...
20 21 22 23 24 ...
30 31 32 33 34 ...
...
আসুন একটি একক উদাহরণ (ব্যাচের আকার = 1) এর উপর দিয়ে 2x2 কনভ্যুলেশন উইন্ডোটি চালানো যাক। আমরা কনভোলশনটিকে 8 এর আউটপুট চ্যানেল গভীরতা দেব।
কনভোলশন ইনপুট আছে shape=[1, 32, 32, 1]
।
আপনি যদি নির্দিষ্ট strides=[1,1,1,1]
করে থাকেন padding=SAME
তবে ফিল্টারটির আউটপুট হবে [1, 32, 32, 8]।
ফিল্টারটি প্রথমে এর জন্য একটি আউটপুট তৈরি করবে:
F(00 01
10 11)
এবং তারপরে:
F(01 02
11 12)
ইত্যাদি। তারপরে এটি গণনা করে দ্বিতীয় সারিতে চলে যাবে:
F(10, 11
20, 21)
তারপর
F(11, 12
21, 22)
আপনি যদি [1, 2, 2, 1] এর একটি প্রান্ত নির্দিষ্ট করেন তবে এটি ওভারল্যাপিং উইন্ডোগুলি করবে না। এটি গণনা করা হবে:
F(00, 01
10, 11)
এবং তারপর
F(02, 03
12, 13)
পুলিং অপারেটরগুলির জন্য একইভাবে কাজ করে।
প্রশ্ন 2: কেন বন্দীদের জন্য [1, x, y, 1] পদক্ষেপ?
প্রথম 1 টি ব্যাচ: আপনি সাধারণত আপনার ব্যাচের উদাহরণগুলি এড়িয়ে যেতে চান না বা এগুলি প্রথম স্থানে অন্তর্ভুক্ত করা উচিত নয়। :)
শেষ 1টি সমঝোতার গভীরতা: আপনি সাধারণত একই কারণে ইনপুটগুলি এড়িয়ে যেতে চান না।
কনফ 2 ডি অপারেটরটি আরও সাধারণ, সুতরাং আপনি এমন কনভোলিউশন তৈরি করতে পারেন যা উইন্ডোটিকে অন্যান্য মাত্রার সাথে স্লাইড করে দেয়, তবে এটি কনভেন্টগুলিতে সাধারণ ব্যবহার নয়। সাধারণ ব্যবহারটি স্থানিকভাবে তাদের ব্যবহার করা।
কেন -1 -1 এ পুনরায় আকার দেওয়া হ'ল এমন একটি স্থানধারক যা "সম্পূর্ণ টেনসারের জন্য প্রয়োজনীয় আকারের সাথে মেলে প্রয়োজনীয়ভাবে সামঞ্জস্য করুন।" কোডটি ইনপুট ব্যাচের আকারের চেয়ে আলাদা করে তোলার এমন একটি উপায়, যাতে আপনি নিজের পাইপলাইন পরিবর্তন করতে পারেন এবং কোডের যে কোনও জায়গায় ব্যাচের আকারকে সামঞ্জস্য করতে হবে না।