একটি কনভোল্যুশনাল নিউরাল নেটওয়ার্ক সাধারণত নিম্নলিখিত স্তরগুলির সংমিশ্রণ নিয়ে গঠিত:কনভোল্যুশনাল স্তর, পুলিং স্তর এবং ঘন স্তর৷
আরো পড়ুন: টেনসরফ্লো কী এবং নিউরাল নেটওয়ার্ক তৈরি করতে টেনসরফ্লো-এর সাথে কেরাস কীভাবে কাজ করে?
কনভোল্যুশনাল নিউরাল নেটওয়ার্কগুলি একটি নির্দিষ্ট ধরণের সমস্যার জন্য দুর্দান্ত ফলাফল তৈরি করতে ব্যবহার করা হয়েছে, যেমন চিত্র সনাক্তকরণ। এটি 'মডেল' ক্লাসে উপস্থিত 'ক্রমিক' পদ্ধতি ব্যবহার করে তৈরি করা যেতে পারে। 'অ্যাড' পদ্ধতি ব্যবহার করে এই কনভোলিউশনাল নেটওয়ার্কে স্তরগুলি যোগ করা যেতে পারে।
আমরা কেরাস সিকোয়েন্সিয়াল এপিআই ব্যবহার করব, যা একটি অনুক্রমিক মডেল তৈরি করতে সহায়ক যা স্তরগুলির একটি প্লেইন স্ট্যাকের সাথে কাজ করতে ব্যবহৃত হয়, যেখানে প্রতিটি স্তরে একটি ইনপুট টেনসর এবং একটি আউটপুট টেনসর রয়েছে৷
নিচের কোডটি চালানোর জন্য আমরা Google Colaboratory ব্যবহার করছি। Google Colab বা Colaboratory ব্রাউজারে Python কোড চালাতে সাহায্য করে এবং এর জন্য শূন্য কনফিগারেশন এবং GPUs (গ্রাফিক্যাল প্রসেসিং ইউনিট) তে বিনামূল্যে অ্যাক্সেস প্রয়োজন। জুপিটার নোটবুকের উপরে কোলাবোরেটরি তৈরি করা হয়েছে।
মুদ্রণ("কনভোল্যুশনাল বেস তৈরি করা")মডেল =মডেল। অনুক্রমিক()মডেল.অ্যাড(স্তর।Conv2D(32, (3, 3), activation='relu', input_shape=(32, 32, 3) ))model.add(layers.MaxPooling2D((2, 2)))model.add(layers.Conv2D(64, (3, 3), activation='relu'))model.add(layers.MaxPooling2D((2) , 2)))model.add(layers.Conv2D(64, (3, 3), activation='relu'))print("আর্কিটেকচারের বর্ণনা হল")model.summary()
কোড ক্রেডিট:https://www.tensorflow.org/tutorials/images/cnn
আউটপুট
আর্কিটেকচারের কনভোল্যুশনাল বেস তৈরি করা হচ্ছে মডেল:"অনুক্রমিক"_________________________________________________________________ লেয়ার (টাইপ) আউটপুট শেপ পরম # ================================================================conv2d (Conv2D) (কোনটি নয়, 30, 30, 32) 896 _________________________________________________________________max_pooling2d (MaxPooling2D) (কোনটি, 15, 15, 32) 0 _________________________________________________________________conv2d_1 (Conv2D) (কেউ না, 13, 13, 64) 18496 _________________________________________________________________max_pooling2d_1 (MaxPooling2 (একটিও, 6, 6, 64) 0 _________________________________________________________________conv2d_2 (Conv2D) (কোনটি, 4 , 4, 64) 36928 ============================================>ব্যাখ্যা
-
উপরের লাইনগুলি একটি সাধারণ প্যাটার্ন ব্যবহার করে কনভোলিউশনাল বেসকে সংজ্ঞায়িত করতে সাহায্য করে।
-
এই প্যাটার্নটি Conv2D এবং MaxPooling2D স্তরগুলির একটি স্ট্যাক৷
-
ইনপুট হিসাবে, যা একটি CNN আকারের টেনসর (ছবির_উচ্চতা, চিত্র_প্রস্থ, রঙ_চ্যানেল) নেয়।
-
CNN আকৃতির ইনপুটগুলি প্রক্রিয়া করার জন্য কনফিগার করা হয়েছে (32, 32, 3), যা CIFAR চিত্রগুলির বিন্যাস৷
-
এটি আমাদের প্রথম স্তরে যুক্তি input_shape পাস করে করা যেতে পারে।
-
প্রতিটি Conv2D এবং MaxPooling2D স্তরের আউটপুট হল আকৃতির একটি 3D টেনসর (উচ্চতা, প্রস্থ, চ্যানেল)।
-
নেটওয়ার্ক গভীর হওয়ার সাথে সাথে প্রস্থ এবং উচ্চতার মাত্রা সঙ্কুচিত হয়।
-
প্রতিটি Conv2D স্তরের জন্য আউটপুট চ্যানেলের সংখ্যা প্রথম আর্গুমেন্ট দ্বারা নিয়ন্ত্রিত হয় (যেমন, 32 বা 64)।