Keras দিয়ে Neural Network তৈরি করা

নিউরাল নেটওয়ার্ক এবং ডিপ লার্নিং (Neural Networks & Deep Learning) - পাইথন কৃত্রিম বুদ্ধিমত্তা (Artificial Intelligence with Python) - Machine Learning

437

Keras হলো একটি উচ্চ স্তরের নিউরাল নেটওয়ার্ক API, যা TensorFlow বা Theano এর ওপর ভিত্তি করে কাজ করে। এটি নিউরাল নেটওয়ার্ক তৈরির জন্য সহজ এবং দ্রুত পথ প্রদান করে, এবং বিভিন্ন ধরনের ডিপ লার্নিং মডেল তৈরির জন্য কার্যকরী।

এখানে Keras ব্যবহার করে একটি সাধারণ Neural Network তৈরি করার প্রক্রিয়া আলোচনা করা হলো:


১. Keras ইনস্টলেশন

প্রথমে, Keras ইনস্টল করতে হবে। যদি আপনার সিস্টেমে Keras ইনস্টল না থাকে, তাহলে নিচের কমান্ডটি ব্যবহার করে ইনস্টল করতে পারেন:

pip install keras

Keras সাধারণত TensorFlow এর সাথে আসে, তাই আপনি যদি TensorFlow ইনস্টল করেন, তবে Keras স্বয়ংক্রিয়ভাবে ইনস্টল হয়ে যাবে।


২. Neural Network তৈরির প্রক্রিয়া

এখানে একটি সাধারণ Feedforward Neural Network তৈরি করা হবে, যা একটি classification সমস্যা সমাধান করবে।

ধাপ ১: লাইব্রেরি ইম্পোর্ট করা

import numpy as np
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
from tensorflow.keras.datasets import mnist

ধাপ ২: ডেটা লোড এবং প্রক্রিয়া করা

এখানে MNIST ডেটাসেট ব্যবহার করা হবে, যা হাতের লেখা সংখ্যার চিত্র ধারণ করে। এই ডেটাসেটটি Keras এর মধ্যে বিল্ট-ইন রয়েছে, তাই আমরা এটি সরাসরি লোড করতে পারি।

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

# ডেটা প্রক্রিয়া (স্কেলিং)
X_train = X_train / 255.0  # 0-255 এর মধ্যে স্কেলিং
X_test = X_test / 255.0

# ডেটাকে একরকম আকারে আনার জন্য ফ্ল্যাট করা
X_train = X_train.reshape(-1, 28*28)  # 28x28 চিত্রকে একরৈখিক ভেক্টর আকারে পরিণত করা
X_test = X_test.reshape(-1, 28*28)

ধাপ ৩: Neural Network মডেল তৈরি করা

এখন Keras এর Sequential মডেল ব্যবহার করে নিউরাল নেটওয়ার্ক তৈরি করা হবে। এখানে Dense layers ব্যবহার করা হবে, যা প্রতিটি নিউরন পরবর্তী নিউরনে সংযুক্ত থাকে।

# মডেল তৈরি করা
model = Sequential()

# ইনপুট লেয়ার (784 ইনপুট নিউরন)
model.add(Dense(128, input_dim=28*28, activation='relu'))

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

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

ধাপ ৪: মডেল কম্পাইল করা

মডেল তৈরি করার পর, এটি compile করতে হবে। এখানে categorical crossentropy লস ফাংশন এবং Adam optimizer ব্যবহার করা হবে। Accuracy মেট্রিক দিয়ে মডেলটির কার্যকারিতা পরিমাপ করা হবে।

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

ধাপ ৫: মডেল প্রশিক্ষণ

এখন আমাদের মডেলটি প্রশিক্ষণ দেওয়া হবে X_train এবং y_train ডেটা ব্যবহার করে।

# মডেল প্রশিক্ষণ
model.fit(X_train, y_train, epochs=5, batch_size=32, validation_data=(X_test, y_test))
  • epochs=5: ৫ বার মডেল প্রশিক্ষণ দেওয়া হবে।
  • batch_size=32: প্রতি ব্যাচে ৩২টি স্যাম্পল থাকবে।

ধাপ ৬: মডেল মূল্যায়ন

মডেলটি প্রশিক্ষণ শেষে, আমরা এটি X_test ডেটা দিয়ে মূল্যায়ন করতে পারি।

# মডেল মূল্যায়ন
loss, accuracy = model.evaluate(X_test, y_test)
print(f"Test loss: {loss:.4f}")
print(f"Test accuracy: {accuracy*100:.2f}%")

৩. মডেল সংক্ষেপে দেখানো

মডেল তৈরি করার পর, আমরা এটি সহজে দেখতে পারি:

# মডেল সংক্ষিপ্ত বিবরণ
model.summary()

এই কোডটি মডেলটির লেয়ারগুলি, নিউরনের সংখ্যা এবং প্যারামিটারগুলির মোট সংখ্যা দেখাবে।


৪. নতুন ডেটা দিয়ে পূর্বাভাস করা

মডেল প্রশিক্ষণের পর, নতুন ডেটার জন্য পূর্বাভাস করা যেতে পারে। এখানে একটি নতুন চিত্রের জন্য পূর্বাভাস করা হচ্ছে:

# একটি নমুনা চিত্রের জন্য পূর্বাভাস
sample_image = X_test[0].reshape(1, 28*28)  # প্রথম চিত্র নির্বাচন করা

# পূর্বাভাস করা
prediction = model.predict(sample_image)

# পূর্বাভাস করা শ্রেণী (বৃহত্তম মান)
predicted_class = np.argmax(prediction, axis=1)
print(f"Predicted Class: {predicted_class[0]}")

সারাংশ

Keras দিয়ে Neural Network তৈরি করা অত্যন্ত সহজ এবং দ্রুত। Sequential model ব্যবহার করে বিভিন্ন লেয়ার যোগ করা যায় এবং মডেলটি কম্পাইল এবং প্রশিক্ষণ করা যায়। উপরোক্ত ধাপগুলির মাধ্যমে একটি সাদাসিধে নিউরাল নেটওয়ার্ক তৈরি এবং প্রশিক্ষণ করা হয় যা MNIST ডেটাসেটের জন্য কাজ করে। Keras এর সুবিধা হলো এটি উচ্চ স্তরের API যা দ্রুত প্রোটোটাইপ তৈরি এবং ডিপ লার্নিং মডেল তৈরি করতে সহায়ক।

Content added By
Promotion

Are you sure to start over?

Loading...