RNN মডেল Training এবং Testing

Recurrent Neural Networks (RNN) - টেন্সরফ্লো (TensorFlow) - Machine Learning

336

রিকরেন্ট নিউরাল নেটওয়ার্ক (RNN) একটি ডিপ লার্নিং মডেল যা সময়ভিত্তিক বা সিকোয়েন্সিয়াল ডেটার উপর কাজ করে। এটি এমন মডেল যা পূর্ববর্তী আউটপুটের উপর ভিত্তি করে ভবিষ্যত আউটপুট নির্ধারণ করতে সক্ষম, ফলে এটি টেক্সট, অডিও, ভিডিও বা সময়ভিত্তিক সিরিজ ডেটা (যেমন স্টক মার্কেট, আবহাওয়া পূর্বাভাস) প্রক্রিয়া করার জন্য আদর্শ।

RNN মডেল ট্রেনিং এবং টেস্টিং করতে, প্রথমে আমাদের মডেলটি তৈরি করতে হবে এবং তারপর ডেটা দিয়ে তা ট্রেনিং এবং টেস্টিং করতে হবে। নিচে RNN মডেল তৈরি, ট্রেনিং এবং টেস্টিং করার প্রক্রিয়া বর্ণনা করা হলো।


RNN মডেল তৈরি

  1. লাইব্রেরি ইম্পোর্ট করা: টেনসরফ্লো এবং কেরাস লাইব্রেরি ব্যবহার করে RNN মডেল তৈরি করা হয়।

    import tensorflow as tf
    from tensorflow.keras.models import Sequential
    from tensorflow.keras.layers import SimpleRNN, Dense
    
  2. ডেটা প্রস্তুতি: আপনার ডেটা সিকোয়েন্সিয়াল বা সময়ভিত্তিক হতে হবে। উদাহরণস্বরূপ, টেক্সট ডেটা বা টাইম সিরিজ ডেটা।

    আপনার ডেটা প্রস্তুত করার জন্য টেনসরফ্লো ব্যবহার করে:

    # উদাহরণ হিসেবে, টাইম সিরিজ ডেটা (একটি সিম্পল এক্সাম্পল)
    import numpy as np
    data = np.array([[i] for i in range(1, 101)])
    
    # X এবং Y ডেটা তৈরি করা (পূর্ববর্তী তথ্যের উপর ভিত্তি করে ভবিষ্যত ভবিষ্যদ্বাণী)
    X = data[:-1]
    Y = data[1:]
    

RNN মডেল তৈরি এবং কম্পাইল করা

  1. RNN মডেল তৈরি করা: কেরাসের Sequential মডেল ব্যবহার করে RNN লেয়ার তৈরি করা হয়। আমরা SimpleRNN লেয়ার ব্যবহার করব, যেটি একটি সাধারণ রিকারেন্ট লেয়ার।

    model = Sequential()
    
    # RNN লেয়ার যোগ করা
    model.add(SimpleRNN(units=50, activation='relu', input_shape=(X.shape[1], 1)))
    
    # আউটপুট লেয়ার (Dense) যোগ করা
    model.add(Dense(1))
    
  2. মডেল কম্পাইল করা: মডেল কম্পাইল করার জন্য অপটিমাইজার, লোকসান ফাংশন এবং মেট্রিক্স নির্ধারণ করা হয়।

    model.compile(optimizer='adam', loss='mean_squared_error')
    

মডেল ট্রেনিং

RNN মডেল ট্রেনিং করার জন্য, আমাদের ডেটাকে ইনপুট এবং আউটপুট হিসাবে প্রস্তুত করতে হবে এবং fit ফাংশন ব্যবহার করে মডেল ট্রেনিং করতে হবে।

  1. ডেটা রিসেপটর এবং শেপ পরিবর্তন: ইনপুট ডেটা সিকোয়েন্সিয়াল হওয়া উচিত এবং যথাযথ আকারে রিসেপটর করা উচিত (যেমন 3D আকারে)।

    # ডেটাকে রিসেপটর করা (3D আকারে) [নমুনা, টাইম স্টেপস, ফিচারস]
    X = X.reshape(X.shape[0], 1, 1)
    
    # ট্রেনিং শুরু
    model.fit(X, Y, epochs=100, batch_size=32)
    

মডেল টেস্টিং

একবার মডেল ট্রেনিং শেষ হলে, আমাদের মডেলটি টেস্ট করতে হবে। সাধারণত, মডেলটি নতুন বা অজানা ডেটা দিয়ে পরীক্ষা করা হয়।

  1. টেস্ট ডেটা তৈরি: আপনি নতুন ডেটা তৈরি করতে পারেন এবং মডেলটির পারফরম্যান্স পরীক্ষা করতে পারেন।

    test_data = np.array([[i] for i in range(101, 151)])
    test_X = test_data[:-1].reshape(test_data[:-1].shape[0], 1, 1)
    test_Y = test_data[1:]
    
    # মডেল টেস্ট করা
    predictions = model.predict(test_X)
    
  2. রেজাল্ট বিশ্লেষণ: আপনার মডেলের পূর্বাভাস (প্রেডিকশন) এবং বাস্তব আউটপুটের মধ্যে পার্থক্য বিশ্লেষণ করতে পারেন। আপনি মডেলটি উন্নত করতে আরও ডেটা বা বিভিন্ন মডিফিকেশন ব্যবহার করতে পারেন।

সম্পূর্ণ কোড উদাহরণ

import numpy as np
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import SimpleRNN, Dense

# ডেটা প্রস্তুতি
data = np.array([[i] for i in range(1, 101)])
X = data[:-1]
Y = data[1:]

# ডেটাকে রিসেপটর করা (3D আকারে)
X = X.reshape(X.shape[0], 1, 1)

# মডেল তৈরি করা
model = Sequential()
model.add(SimpleRNN(units=50, activation='relu', input_shape=(X.shape[1], 1)))
model.add(Dense(1))

# মডেল কম্পাইল করা
model.compile(optimizer='adam', loss='mean_squared_error')

# মডেল ট্রেনিং
model.fit(X, Y, epochs=100, batch_size=32)

# টেস্ট ডেটা তৈরি করা
test_data = np.array([[i] for i in range(101, 151)])
test_X = test_data[:-1].reshape(test_data[:-1].shape[0], 1, 1)
test_Y = test_data[1:]

# টেস্ট করা এবং প্রেডিকশন নেওয়া
predictions = model.predict(test_X)

# ফলাফল দেখানো
print(predictions)

সারাংশ

RNN মডেল ট্রেনিং এবং টেস্টিং করতে, আপনি প্রথমে মডেলটি তৈরি করবেন, তারপর ডেটা দিয়ে এটি ট্রেন করবেন এবং অবশেষে মডেলটির পারফরম্যান্স টেস্ট করবেন। SimpleRNN লেয়ারটি সিকোয়েন্সিয়াল ডেটা প্রক্রিয়া করার জন্য ব্যবহৃত হয়, এবং মডেলটি adam অপটিমাইজার এবং mean_squared_error লোকসান ফাংশন ব্যবহার করে কম্পাইল করা হয়।

Content added By
Promotion

Are you sure to start over?

Loading...