Sponsored

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

0
15

কনভল্যুশন নিউরাল নেটওয়ার্ক (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)

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

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

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

 

Search
Categories
Read More
Nulled
Mono v10.0.1 - Multi-Purpose HTML5 Template
Mono v10.0.1 – Multi-Purpose HTML5 Template Free Download. Mono is a Modern, Fully...
By Nettumi 2026-09-17 18:31:21 0 54
Tech
যেভাবে আপনার রাউটারের VPN ইন্সটল করবেন | Techtunes | টেকটিউনস
মজিলার নির্বাচিত সাতটি বেস্ট ফায়ারফক্স 3 অ্যাডঅন দুঃসাহসী টিনটিন
By Nettumi 2026-09-25 04:02:21 0 26
Hacking Course
অ্যান্ড্রয়েডে ফাইল ZIP ও Unzip করার সহজ ও নিরাপদ উপায় - Tech Tips Desk – বাংলা প্রযুক্তি সংবাদ, মোবাইল রিভিউ ও টিপস
স্মার্টফোনে প্রতিদিনই নানা ধরনের ফাইল জমে। অফিসের নথি, শিক্ষাপ্রতিষ্ঠানের কাগজপত্র, ভ্রমণের ছবি...
By Nettumi 2026-09-28 07:30:26 0 24
Nulled
এবার হাতের মুঠোয় দুনিয়ার সব টিভি চ্যানেল! অ্যান্ড্রয়েড, আইফোন ও স্মার্ট টিভির জন্য সেরা লাইভ টিভি সল্যুশন | Techtunes | টেকটিউনস
প্রাণীদের ঘুম: সৃষ্টিজগতের বিচিত্র এক রহস্য!!!! (Updated) TareqMahbub
By Nettumi 2026-09-21 05:28:25 0 34
Nulled
Ultimate Dashboard Pro v3.11.2 - WordPress Plugin
Ultimate Dashboard Pro v3.11.2 – WordPress Plugin Free Download. Customize and Simplify...
By Nettumi 2026-09-17 18:07:12 0 54
‎ ‎ ‎
Nettumi https://nettumi.com