Sequential মডেল তৈরি করা

CNTK তে বেসিক মডেল তৈরি - মাইক্রোসফট কগনিটিভ টুলকিট (Microsoft Cognitive Toolkit) - Machine Learning

257

Sequential মডেল হল একটি নিউরাল নেটওয়ার্ক আর্কিটেকচার যা লেয়ারগুলির একটি সোজা সিরিজ অনুসরণ করে। এটি বিশেষভাবে উপযুক্ত যখন আপনার মডেল কেবল একের পর এক লেয়ার ব্যবহার করে ডেটা প্রক্রিয়া করে এবং কোথাও শাখা বা জটিল সংযোগের প্রয়োজন হয় না। CNTK তে Sequential মডেল তৈরি করতে, আপনি Sequential ক্লাস ব্যবহার করতে পারেন।


CNTK তে Sequential মডেল তৈরি করা

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

প্রথমে CNTK ইনস্টল করতে হবে, যদি আপনি ইতিমধ্যেই ইনস্টল না করে থাকেন:

pip install cntk

২. Python কোডের মাধ্যমে Sequential মডেল তৈরি করা

এখানে একটি সিম্পল Sequential মডেল তৈরি করার উদাহরণ দেওয়া হচ্ছে যা Dense লেয়ার ব্যবহার করে:

import cntk
from cntk import layers

# Sequential মডেল তৈরি করা
model = layers.Sequential([
    layers.Dense(64, activation=cntk.ops.relu),  # প্রথম লেয়ার, 64 নিউরন এবং ReLU একটিভেশন
    layers.Dense(32, activation=cntk.ops.relu),  # দ্বিতীয় লেয়ার, 32 নিউরন এবং ReLU একটিভেশন
    layers.Dense(1)  # আউটপুট লেয়ার, 1 নিউরন (যেমন রিগ্রেশন সমস্যা)
])

# ইনপুট ভেরিয়েবল তৈরি
input_var = cntk.input_variable((3,))  # 3 ডাইমেনশন ইনপুট

# মডেল দিয়ে আউটপুট তৈরি করা
output = model(input_var)

# মডেল সারাংশ
print("Model Summary:")
print(model)

এখানে আমরা 3 ডাইমেনশন ইনপুট গ্রহণ করছি এবং ৩টি লেয়ার ব্যবহার করেছি: প্রথম দুটি লেয়ার 64 এবং 32 নিউরন ধারণ করে এবং ReLU অ্যাক্টিভেশন ফাংশন ব্যবহার করে। পরবর্তী লেয়ারটি 1 নিউরন ধারণ করে, যা সাধারণত রিগ্রেশন সমস্যা বা একটি স্কেলার আউটপুট প্রযোজ্য।


Sequential মডেল তৈরির উপাদানসমূহ:

  1. Dense লেয়ার:

    • একটি Dense লেয়ার হল একটি সাধারণ ফিডফরওয়ার্ড লেয়ার যা fully connected নিউরন ধারণ করে।
    • লেয়ার তৈরির সময় আপনি নিউরনের সংখ্যা এবং অ্যাক্টিভেশন ফাংশন নির্ধারণ করতে পারেন।

    উদাহরণ:

    layers.Dense(64, activation=cntk.ops.relu)
    
  2. ReLU অ্যাক্টিভেশন ফাংশন:
    • ReLU (Rectified Linear Unit) হল একটি সাধারণ অ্যাক্টিভেশন ফাংশন যা ইনপুট মানে ঋণাত্মক মানকে 0 এ রূপান্তরিত করে এবং পজিটিভ মানের জন্য অপরিবর্তিত রাখে।
  3. Input Variable:

    • cntk.input_variable ব্যবহার করে ইনপুট ভেরিয়েবল তৈরি করা হয়, যা আপনার মডেলের ইনপুট ডেটার আকৃতি (shape) নির্ধারণ করে।

    উদাহরণ:

    input_var = cntk.input_variable((3,))
    
  4. Model Execution:

    • মডেল তৈরি করার পর, ইনপুট ভেরিয়েবল দেওয়া হলে মডেল আউটপুট প্রদান করবে।

    উদাহরণ:

    output = model(input_var)
    

Training মডেল

Sequential মডেল তৈরি করার পর, আপনি এটি train করতে পারেন। ট্রেনিংয়ের জন্য, মডেলকে loss function এবং optimizer প্রয়োজন। উদাহরণস্বরূপ:

from cntk import learners, losses

# ডেটা (random data used for simplicity)
import numpy as np
X_train = np.random.rand(100, 3)  # 100 স্যাম্পল, প্রতিটি 3 ডাইমেনশন
y_train = np.random.rand(100, 1)  # 100 আউটপুট

# Loss function এবং Optimizer নির্বাচন করা
loss = losses.mean_squared_error(output, cntk.input_variable((1,)))  # রিগ্রেশন সমস্যা
learner = learners.sgd(model.parameters, lr=0.01)

# মডেল ট্রেনিং
trainer = cntk.Trainer(model, (loss, None), learner)
trainer.train_minibatch({input_var: X_train, output: y_train})

সারাংশ

CNTK তে Sequential মডেল তৈরি করতে Sequential ক্লাস ব্যবহার করা হয়। এটি একের পর এক লেয়ার তৈরি করে এবং মডেলটির আউটপুট প্রদান করে। মডেল তৈরি করার পর, আপনি সহজেই ডেটা ইনপুট করতে এবং মডেল প্রশিক্ষণ করতে পারবেন। এই ধরনের মডেলগুলি সাধারণত সোজা কাঠামোতে থাকে এবং বিশেষত ফিডফরওয়ার্ড নিউরাল নেটওয়ার্কের জন্য উপযুক্ত।

Content added By
Promotion

Are you sure to start over?

Loading...