কম্পিউটার টিউটোরিয়াল

পাইথনে টেনসরফ্লো ব্যবহার করে কনভোলিউশনাল বেস তৈরি করার পদ্ধতি


একটি কনভোলিউশনাল নিউরাল নেটওয়ার্ক সাধারণত নিম্নলিখিত লেয়ারগুলির সংমিশ্রণ নিয়ে গঠিত হয়: কনভোলিউশনাল লেয়ার, পুলিং লেয়ার এবং ডেন্স লেয়ার।

আরও পড়ুন: টেনসরফ্লো কী এবং কেরাস কীভাবে টেনসরফ্লোর সাথে কাজ করে নিউরাল নেটওয়ার্ক তৈরি করতে?

কনভোলিউশনাল নিউরাল নেটওয়ার্ক নির্দিষ্ট ধরনের সমস্যাগুলোর জন্য চমৎকার ফলাফল দেওয়ার কারণে বিখ্যাত, বিশেষ করে চিত্র সনাক্তকরণে। এটি models ক্লাসে থাকা Sequential পদ্ধতিতে তৈরি করা যায়। এই কনভোলিউশনাল নেটওয়ার্কে add পদ্ধতিতে লেয়ার যোগ করা যায়।

আমরা কেরাস Sequential API ব্যবহার করব, যা সিকোয়েনশিয়াল মডেল তৈরিতে সহায়ক যেখানে প্রতিটি লেয়ারের ঠিক একটি ইনপুট টেনসর এবং একটি আউটপুট টেনসর থাকে।

নিচের কোড চালাতে আমরা Google Colaboratory ব্যবহার করছি। Google Colab বা Colaboratory ব্রাউজারে পাইথন কোড চালাতে সাহায্য করে এবং শূন্য কনফিগারেশনের সাথে ফ্রি GPU (গ্রাফিক্যাল প্রসেসিং ইউনিট) অ্যাক্সেস দেয়। Colaboratory Jupyter Notebook-এর উপরে তৈরি।

print("Creating the convolutional base")
model = models.Sequential()
model.add(layers.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("Description of architecture is")
model.summary()

কোড ক্রেডিট: https://www.tensorflow.org/tutorials/images/cnn

আউটপুট

Creating the convolutional base Description of arhcitecture is Model: "sequential" _________________________________________________________________ Layer (type)                 Output Shape              Param #   ================================================================= conv2d (Conv2D)              (None, 30, 30, 32)        896       _________________________________________________________________ max_pooling2d (MaxPooling2D) (None, 15, 15, 32)        0         _________________________________________________________________ conv2d_1 (Conv2D)            (None, 13, 13, 64)        18496   _________________________________________________________________ max_pooling2d_1 (MaxPooling2 (None, 6, 6, 64)          0         _________________________________________________________________ conv2d_2 (Conv2D)            (None, 4, 4, 64)          36928   ================================================================= Total params: 56,320 Trainable params: 56,320 Non-trainable params: 0

ব্যাখ্যা

  • উপরোক্ত লাইনগুলো একটি সাধারণ প্যাটার্ন ব্যবহার করে কনভোলিউশনাল বেস সংজ্ঞায়িত করে।
  • এই প্যাটার্ন হলো Conv2D এবং MaxPooling2D লেয়ারগুলোর একটি স্ট্যাক।
  • ইনপুট হিসেবে, যা একটি CNN (image_height, image_width, color_channels) আকারের টেনসর গ্রহণ করে, নেওয়া হয়।
  • CNN কে (32, 32, 3) আকারের ইনপুট প্রসেস করার জন্য কনফিগার করা হয়, যা CIFAR চিত্রগুলির ফরম্যাট।
  • এটি প্রথম লেয়ারের input_shape আর্গুমেন্ট পাস করে করা যায়।
  • প্রতিটি Conv2D এবং MaxPooling2D লেয়ারের আউটপুট হলো (height, width, channels) আকারের একটি 3D টেনসর।
  • নেটওয়ার্ক যত গভীর হয়, চওড়া ও উচ্চতা ডাইমেনশন তত ছোট হয়।
  • প্রতিটি Conv2D লেয়ারের আউটপুট চ্যানেলের সংখ্যা প্রথম আর্গুমেন্ট দ্বারা নিয়ন্ত্রিত হয় (যেমন 32 বা 64)।

  1. পাইথনে টেনসরফ্লো ব্যবহার করে দুটি ম্যাট্রিক্স গুণ করার পদ্ধতি

  2. পাইথনে টেনসরফ্লো ব্যবহার করে টেনসর তৈরি করা এবং মেসেজ প্রদর্শন করার পদ্ধতি

  3. Python-এ Matplotlib ব্যবহার করে হিস্টোগ্রাম কীভাবে তৈরি করা যায়?

  4. Python-এ Keras ফাংশনাল API ব্যবহার করে লেয়ার তৈরি করার পদ্ধতি