Keras ব্যবহার করে Simple Neural Network তৈরি

TensorFlow এবং Keras Integration - টেন্সরফ্লো (TensorFlow) - Machine Learning

327

Keras একটি জনপ্রিয় হাই-লেভেল মেশিন লার্নিং লাইব্রেরি যা TensorFlow এর উপর ভিত্তি করে কাজ করে। এটি ডিপ লার্নিং মডেল তৈরির জন্য সহজ, দ্রুত এবং কার্যকরী পদ্ধতি প্রদান করে। এখানে আমরা Keras ব্যবহার করে একটি Simple Neural Network তৈরি করার পদ্ধতি দেখাবো।


১. ডিপ লার্নিং মডেল তৈরি করা (Simple Neural Network)

ধরা যাক, আমরা একটি সাধারণ ফিডফরওয়ার্ড নিউরাল নেটওয়ার্ক (Feedforward Neural Network) তৈরি করবো, যা MNIST ডেটাসেট ব্যবহার করে হাতের লেখা ডিজিট চিহ্নিত করবে।

প্রয়োজনীয় লাইব্রেরি ইনস্টল করা:

pip install tensorflow

২. কোড উদাহরণ:

এখানে একটি সহজ নিউরাল নেটওয়ার্ক তৈরি করার উদাহরণ দেওয়া হলো:

import tensorflow as tf
from tensorflow.keras import layers, models
from tensorflow.keras.datasets import mnist
from tensorflow.keras.utils import to_categorical

# MNIST ডেটাসেট লোড করা
(x_train, y_train), (x_test, y_test) = mnist.load_data()

# ডেটা প্রিপ্রসেসিং (স্কেলিং)
x_train = x_train.reshape((x_train.shape[0], 28, 28, 1))
x_test = x_test.reshape((x_test.shape[0], 28, 28, 1))
x_train = x_train.astype('float32') / 255
x_test = x_test.astype('float32') / 255

# আউটপুট লেবেল (y_train এবং y_test) কে ক্যাটাগোরিক্যাল ডেটায় রূপান্তর করা
y_train = to_categorical(y_train, 10)
y_test = to_categorical(y_test, 10)

# নিউরাল নেটওয়ার্ক মডেল তৈরি করা
model = models.Sequential()

# কনভোলিউশনাল লেয়ার
model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)))
model.add(layers.MaxPooling2D((2, 2)))

# ফ্ল্যাটেনিং লেয়ার
model.add(layers.Flatten())

# হিডেন লেয়ার
model.add(layers.Dense(128, activation='relu'))

# আউটপুট লেয়ার
model.add(layers.Dense(10, activation='softmax'))

# মডেল কম্পাইল করা
model.compile(optimizer='adam',
              loss='categorical_crossentropy',
              metrics=['accuracy'])

# মডেল ট্রেনিং করা
model.fit(x_train, y_train, epochs=5, batch_size=64, validation_data=(x_test, y_test))

# মডেল মূল্যায়ন করা
test_loss, test_acc = model.evaluate(x_test, y_test)
print(f"Test accuracy: {test_acc}")

কোড ব্যাখ্যা:

  1. ডেটাসেট লোড ও প্রিপ্রসেসিং:
    • mnist.load_data() ফাংশন দিয়ে MNIST ডেটাসেট লোড করা হয়।
    • ডেটাকে [0, 1] রেঞ্জে স্কেল করা হয় এবং আউটপুট লেবেলগুলোকে one-hot encoding ফরম্যাটে রূপান্তর করা হয়।
  2. মডেল তৈরি করা:
    • Conv2D লেয়ার দিয়ে কনভোলিউশনাল লেয়ার তৈরি করা হয়েছে, যা ছবির বিভিন্ন ফিচার বের করতে সাহায্য করবে।
    • MaxPooling2D লেয়ার দিয়ে পুলিং অপারেশন করা হয়েছে।
    • Flatten লেয়ার দিয়ে মাল্টি-ডাইমেনশনাল ডেটা একক ভেক্টরে রূপান্তর করা হয়েছে।
    • Dense লেয়ার দিয়ে হিডেন এবং আউটপুট লেয়ার তৈরি করা হয়েছে।
  3. মডেল কম্পাইল এবং ট্রেনিং:
    • মডেলটি Adam অপটিমাইজার এবং categorical_crossentropy লস ফাংশন দিয়ে কম্পাইল করা হয়েছে।
    • মডেলটি ৫ ইপোকস (epochs) পর্যন্ত ট্রেন করা হয়েছে এবং প্রতি ব্যাচে ৬৪টি ডেটা পয়েন্ট ব্যবহার করা হয়েছে।
  4. মডেল মূল্যায়ন:
    • model.evaluate() ফাংশন ব্যবহার করে টেস্ট ডেটার উপর মডেলের পারফরম্যান্স মূল্যায়ন করা হয়েছে।

সারাংশ:

এই কোডে আমরা Keras ব্যবহার করে একটি সাধারণ Convolutional Neural Network (CNN) তৈরি করেছি যা MNIST ডেটাসেটের হাতের লেখা ডিজিট চিহ্নিত করে। আপনি চাইলে আরও উন্নত মডেল তৈরি করতে পারেন এবং বিভিন্ন হাইপারপ্যারামিটার পরিবর্তন করে মডেলের পারফরম্যান্স উন্নত করতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...