Patrocinado

কনভল্যুশন নিউরাল নেটওয়ার্ক ব্যবহার করে ইমেজ ক্লাসিফিকেশন

0
32

কনভল্যুশন নিউরাল নেটওয়ার্ক (CNN) অন্য সব সাধারণ নিউরাল নেটওয়ার্কের মতই। এখানে বাড়তি হিসেবে রয়েছে কনভল্যুশন। এই লেখাটা পড়ার আগে মেশিন লার্নিং এবং টেনসর ফ্লো নিয়ে জানা থাকতে হবে। সেগুলো পাওয়া যাবে মেশিন লার্নিং পেইজে।

কনভল্যুশন

কনভল্যুশন হচ্ছে ফিচার এক্সট্রাক্ট করার পদ্ধতি। ইনপুট হিসেবে থাকে ইমেজ ম্যাট্রিক্স এবং কার্নেল ম্যাট্রিক্স বা ফিল্টার, যা ব্যবহার করে ফিচার এক্সট্রাক্ট করা হবে। আউটপুট হিসেবে পাওয়া যাবে ফিচার ম্যাপ। এক এক ফিল্টার ব্যবহার করে এক এক ধরণের ফিচার এক্সট্রাক্ট করা যায়। যেমন এজ ডিটেকশন, ব্লার, শার্পেন ইত্যাদি।

পুলিং

কনভল্যুশন নিউরাল নেয়ার্কে কনভল্যুশন লেয়ার ছাড়াও আরেকটি লেয়ার থাকে। যা হচ্ছে পুলিং লেয়ার। পুলিং এর কাজ হচ্ছে ফিচার ম্যাপের মূল ফিচার ঠিক রেখে ডাউন স্যাম্পলিং করা। সাধারণত ইমেজ ম্যাট্রিক্স বড় হলে ফিচার ম্যাপও বড় হয়। তখন ট্রেইনিং এর সময় কমিয়ে আনার জন্য এই লেয়ার। বিভিন্ন ধরণের পুলিং রয়েছে। এর মধ্যে জনপ্রিয় হচ্ছে ম্যাক্স পুলিং। এখানেও একটা কার্ণেল বা ফিল্টার নেওয়া হয়। যেমন 2*2 অথবা 3*3 ইত্যাদি। এরপর ফিচার ম্যাপ ম্যাট্রিক্সের উপর বসিয়ে ঐ ফিল্টার ম্যাট্রিক্সের মধ্যে সবচেয়ে বড় পিক্সেল ভ্যালুটা নেওয়া হয়। এভাবে মূল ইমেজের সাইজ অনেক ছোট হয়ে আসে।

আমি এখানে বিস্তারিত আলোচনা করলাম না কনভল্যুশন নিয়ে। কনভল্যুশন কি, কিভাবে কাজ করে ইত্যাদি সম্পর্কে ব্যাসিক জ্ঞান থাকলে সব কিছু বুঝতে সুবিধে হবে। এখান থেকে ধারণা গুলো পাওয়া যাবে।

কিভাবে CNN ব্যবহার করে ইমেজ ক্লাসিফিকেশন করা যায়, তাই দেখি। আর এ জন্য আমরা ব্যবহার করব CIFAR10 dataset। যা আমরা টেনসরফ্লো API ব্যবহার করে ইম্পোর্ট করে নিতে পারব। এই ডেটাসেটে ১০ প্রকারের মোট ৬০ হাজার কালার ইমেজ রয়েছে। এই ডেটা সেট ৫০ হাজার রয়েছে ট্রেইন ইমেজ এবং ১০ হাজার টেস্টিং ইমেজে ভাগ করা রয়েছে। নিচের দশ প্রকারের ইমেজ রয়েছে এই ডেটা সেটেঃ

class_names = ['airplane', 'automobile', 'bird', 'cat', 'deer', 'dog', 'frog', 'horse', 'ship', 'truck']

প্রথমে ডেটা লোড করে নিব। তার জন্যঃ

import tensorflow as tf
from tensorflow.keras import datasets, layers, models
import matplotlib.pyplot as plt
import numpy as np

(train_images, train_labels), (test_images, test_labels) = datasets.cifar10.load_data()

ডেটাসেট ঠিক মত ইম্পোর্ট হয়েছে কিনা, তা দেখতে পারি একটা ইমেজ প্লট করেঃ

img_index = 1
plt.imshow(train_images[img_index])
plt.xlabel(class_names[train_labels[img_index][0]])
plt.show()

ডেটা নরমালাইজ করাঃ

train_images, test_images = train_images / 255.0, test_images / 255.0

মডেল তৈরিঃ

model = tf.keras.Sequential([
layers.Conv2D(32, (3, 3), activation='relu', input_shape=(32, 32, 3)),
layers.MaxPooling2D((2, 2)),
layers.Conv2D(64, (3, 3), activation='relu'),
layers.MaxPooling2D((2, 2)),
layers.Conv2D(64, (3, 3), activation='relu'),
layers.Flatten(),
layers.Dense(64, activation='relu'),
layers.Dense(10)
])

আমাদের মডেলে দুইটা কনভ্যুলেশন লেয়ার এবং দুইটা পুলিং লেয়ার রয়েছে।

মডেল কম্পাইল এবং ট্রেইনিংঃ

model.compile(optimizer='adam',
              loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
              metrics=['accuracy'])


model.fit(train_images, train_labels, epochs=10, 
                    validation_data=(test_images, test_labels))

মডেল ইভ্যালুয়েশনঃ

model.evaluate(test_images,  test_labels)

আমরা দেখব আমাদের মডেল টেস্ট ডেটার উপর ৭০% অ্যাকুরেসি দিচ্ছে। কনভল্যুশন নিউরাল নেটওয়ার্ক ব্যবহার করাই হচ্ছে বেটার অ্যাকুরেসির জন্য। আর এই জন্য আমাদের মডেলকে আরেকটূ ইম্প্রুভ করতে হবে। নেক্সট টাইম আমরা জানব কিভাবে ইম্প্রুভ করা যায়।

কোড গুলো।  এখানে গিয়ে গুগল কোল্যাবে কোড গুলো রান করে দেখা যাবে।

টেনসরফ্লো নিয়ে আরো কিছু লেখাঃ

 

Patrocinado
Pesquisar
Categorias
Leia Mais
Nulled
মধ্যরাতেও সূর্য অস্ত যায় না যে দেশে | Techtunes | টেকটিউনস
“THE BLACK-WEB” : মায়াজালে ঘেরা ইন্টারনেটের রহস্যময় অন্ধকার জগৎ EK
Por Nettumi 2026-09-21 05:28:47 0 42
Tech
Windows 11 এর সিক্রেট End Task বাটন! Taskbar এর হিডেন ফিচার! যা আপনার পিসি লাইফকে করবে আরও সহজ এবং প্রোডাক্টিভ! | Techtunes | টেকটিউনস
যেসব পদ্বতিতে মেইল, ফেইসবুক হ্যাকিং করতে যাবেন না!! হ্যাকিং সতর্কতা!!- প্রাথমিক পর্যায় arif
Por Nettumi 2026-09-25 03:41:07 0 36
Nulled
MeetAir v1.2.2 - iOS and Android Video Conference App for Live Class, Meeting, Webinar, Online Training Source Code
MeetAir v1.2.2 – iOS and Android Video Conference App for Live Class, Meeting, Webinar,...
Por Nettumi 2026-09-17 18:16:44 0 152
Tech
সুলভ দামের ভিভো Y21T এলো আকর্ষণীয় ডিজাইন নিয়ে - Banglatech24.com
বাংলাদেশে একের পর এক নতুন স্মার্টফোন নিয়ে আসছে ভিভো। ভিভো’র অসাধারণ ডিজাইন ও সুলভ মূল্যের...
Por Nettumi 2026-09-25 10:16:16 0 51
Hacking Course
কীভাবে Google Play Points অ্যাকাউন্ট খুলবেন সম্পূর্ণ ফ্রিতে? কোনো ডলার লাগবে না 2026
আসসালামু আলাইকুম ওয়া রহমাতুল্লাহি ওয়া বারাকাতুহু। আশা করি সবাই আল্লাহর রহমতে ভালো আছেন। আজকে...
Por Nettumi 2026-09-25 16:44:54 0 40
Patrocinado
‎ ‎ ‎
Nettumi https://nettumi.com