টেনসরফ্লো (TensorFlow) দিয়ে একটি বেসিক মডেল তৈরি করা বেশ সহজ। এখানে আমরা একটি সাধারণ লিনিয়ার রিগ্রেশন মডেল তৈরি করার প্রক্রিয়া আলোচনা করবো, যেখানে একটি ইনপুট (x) এবং আউটপুট (y) থাকবে এবং আমরা একটি লিনিয়ার সম্পর্ক শিখবো।
প্রাথমিক প্রস্তুতি
প্রথমে, টেনসরফ্লো এবং অন্যান্য প্রয়োজনীয় লাইব্রেরি ইনস্টল করতে হবে। নিচের কমান্ডটি ব্যবহার করে টেনসরফ্লো ইনস্টল করুন:
pip install tensorflow
বেসিক লিনিয়ার রিগ্রেশন মডেল তৈরি
এখানে আমরা একটি সাধারণ লিনিয়ার রিগ্রেশন মডেল তৈরি করব যেখানে লক্ষ্য হলো সম্পর্ক শেখা।
১. লাইব্রেরি ইমপোর্ট
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
২. ডেটা প্রস্তুতি
আমরা একটি সাধারন লিনিয়ার সম্পর্কের ডেটা তৈরি করবো। উদাহরণস্বরূপ, এবং তার জন্য ।
# ইনপুট (x) এবং আউটপুট (y)
x_train = np.array([1, 2, 3, 4, 5], dtype=float)
y_train = np.array([2, 4, 6, 8, 10], dtype=float)
৩. মডেল তৈরি
টেনসরফ্লো দিয়ে একটি লিনিয়ার রিগ্রেশন মডেল তৈরি করা খুবই সহজ। এখানে আমরা একটি সিকোয়েন্সিয়াল মডেল ব্যবহার করছি যা একটি লিনিয়ার লেয়ার হবে।
# মডেল তৈরি
model = tf.keras.Sequential([
tf.keras.layers.Dense(1, input_shape=[1]) # একটি লিনিয়ার লেয়ার
])
# মডেল কম্পাইল করা
model.compile(optimizer='sgd', loss='mean_squared_error')
- Dense(1): এটি একটি লিনিয়ার লেয়ার, যেখানে আউটপুটের মাত্রা ১।
- input_shape=[1]: ইনপুটের মাত্রা ১, অর্থাৎ একটি ভেক্টর বা একক মান আসবে।
৪. মডেল ট্রেনিং
মডেলটি x_train এবং y_train ডেটা ব্যবহার করে ট্রেন করা হবে।
# মডেল ট্রেনিং
model.fit(x_train, y_train, epochs=1000)
- epochs=1000: মডেলটি 1000 বার ডেটা দেখে ট্রেন হবে।
৫. মডেল ফলাফল যাচাই
মডেল ট্রেনিংয়ের পরে, আমরা এর পারফরম্যান্স পরীক্ষা করতে পারি এবং দেখতে পারি যে এটি সঠিকভাবে রিগ্রেশন সম্পর্ক শিখেছে কিনা।
# নতুন ইনপুটের জন্য প্রেডিকশন
print(model.predict([7.0])) # এটি 14.0 আউটপুট দিতে হবে (যেহেতু y = 2 * x)
৬. মডেলটি পরীক্ষা এবং প্লট
টেনসরফ্লো দিয়ে তৈরি করা মডেলটি আমরা একটি গ্রাফে প্লট করতে পারি যাতে দেখা যায় যে মডেলটি কিভাবে ইনপুট ও আউটপুটের মধ্যে সম্পর্ক শিখেছে।
# মডেল আউটপুট প্লট করা
plt.plot(x_train, y_train, 'bo', label='Training data') # Training data প্লট
plt.plot(x_train, model.predict(x_train), label='Model prediction') # মডেল পূর্বাভাস
plt.legend()
plt.show()
সারাংশ
এভাবে আপনি টেনসরফ্লো দিয়ে একটি বেসিক লিনিয়ার রিগ্রেশন মডেল তৈরি করতে পারেন। এটি একটি সাধারণ উদাহরণ যা শিখতে সহায়ক, এবং একই কৌশল ব্যবহার করে আরো জটিল মডেল তৈরি করা যেতে পারে।
টেনসরফ্লো (TensorFlow) এ মডেল তৈরির জন্য দুটি প্রধান এপিআই পদ্ধতি ব্যবহার করা হয়: Sequential API এবং Functional API। এই দুটি পদ্ধতির সাহায্যে মডেল নির্মাণে লচিলতা এবং দক্ষতা অর্জন করা যায়, তবে তাদের ব্যবহারের ক্ষেত্রে কিছু গুরুত্বপূর্ণ পার্থক্য রয়েছে।
1. Sequential API এর ব্যবহার
Sequential API হল টেনসরফ্লো (Keras) এর একটি সহজ এবং সরল পদ্ধতি, যেখানে মডেলটি একাধিক লেয়ারের সিকোয়েন্স (ধারা) হিসেবে সংজ্ঞায়িত করা হয়। এটি মূলত তখনই ব্যবহৃত হয় যখন মডেলটি সরল এবং লিনিয়ার স্ট্রাকচারে থাকে, অর্থাৎ একটি লেয়ারের আউটপুট সরাসরি পরবর্তী লেয়ারের ইনপুট হয়।
বৈশিষ্ট্য:
- সরলতা: Sequential API একটি সরল এবং সহজ পদ্ধতি যা দ্রুত মডেল তৈরি করতে সাহায্য করে।
- লাইনিয়ার স্ট্রাকচার: এটি শুধু একটি সোজা লেয়ারের স্ট্যাকিং (stacking) এর জন্য উপযুক্ত। এক লেয়ারের আউটপুট পরবর্তী লেয়ারের ইনপুট হয়ে কাজ করে।
- কমপ্লেক্স মডেল তৈরি করা যায় না: যদি মডেলে শেয়ারড লেয়ার, মেজর ডেটা শেয়ারিং বা মাল্টিপল ইনপুট/আউটপুট থাকে, তবে এই API উপযুক্ত নয়।
উদাহরণ:
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
model = Sequential()
model.add(Dense(64, input_dim=8, activation='relu'))
model.add(Dense(32, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
উপরে দেখানো কোডে, মডেলটি Sequential API ব্যবহার করে তৈরি করা হয়েছে, যেখানে একের পর এক লেয়ার যোগ করা হয়েছে।
2. Functional API এর ব্যবহার
Functional API একটি আরও লচিল এবং শক্তিশালী পদ্ধতি, যা জটিল আর্কিটেকচারের জন্য ব্যবহৃত হয়। এটি ব্যবহারকারীদের বিভিন্ন ইনপুট, আউটপুট, শেয়ারড লেয়ার এবং স্কিপ সংযোগ (skip connections) তৈরি করার জন্য পূর্ণস্বাধীনতা প্রদান করে। Functional API তে, মডেলটি একটি ফাংশনাল গ্রাফ হিসাবে তৈরি হয়, যেখানে বিভিন্ন লেয়ার এবং সংযোগগুলির মধ্যে সম্পর্ক নির্দেশ করা হয়।
বৈশিষ্ট্য:
- লচিলতা: Functional API অনেক বেশি লচিল এবং জটিল মডেল তৈরি করতে সহায়ক, যেখানে একাধিক ইনপুট এবং আউটপুট হতে পারে, অথবা স্কিপ সংযোগ থাকতে পারে।
- কাস্টমাইজেশন: Functional API ব্যবহার করে মডেল তৈরি করতে, ব্যবহারকারীরা তাদের মডেলের আর্কিটেকচারকে কাস্টমাইজ করতে পারে।
- জটিল মডেল: এটি মাল্টিপল ইনপুট, আউটপুট, শেয়ারড লেয়ার, এবং সংযোগে সহায়ক।
উদাহরণ:
from tensorflow.keras.models import Model
from tensorflow.keras.layers import Input, Dense
# ইনপুট লেয়ার
input_layer = Input(shape=(8,))
# প্রথম লেয়ার
x = Dense(64, activation='relu')(input_layer)
# দ্বিতীয় লেয়ার
x = Dense(32, activation='relu')(x)
# আউটপুট লেয়ার
output_layer = Dense(1, activation='sigmoid')(x)
# মডেল সংজ্ঞায়িত করা
model = Model(inputs=input_layer, outputs=output_layer)
এখানে, Functional API ব্যবহার করে মডেলটি তৈরি করা হয়েছে, যেখানে ইনপুট, লেয়ার এবং আউটপুট ফাংশনালভাবে সংযুক্ত হয়েছে।
পার্থক্য এবং কোনটি কখন ব্যবহার করবেন?
| প্যারামিটার | Sequential API | Functional API |
|---|---|---|
| স্ট্রাকচার | লিনিয়ার স্ট্রাকচার (এক লেয়ারের আউটপুট পরবর্তী লেয়ারের ইনপুট হয়) | জটিল স্ট্রাকচার (একাধিক ইনপুট, আউটপুট, শেয়ারড লেয়ার) |
| সহজতা | সহজ এবং দ্রুত মডেল তৈরি করা যায় | বেশি কাস্টমাইজেশন এবং জটিল মডেল তৈরি করা যায় |
| ব্যবহার | সোজা এবং সাধারণ মডেল তৈরির জন্য উপযুক্ত | জটিল এবং কাস্টমাইজড মডেল তৈরির জন্য উপযুক্ত |
| ফ্লেক্সিবিলিটি | কম ফ্লেক্সিবল (শুধুমাত্র লিনিয়ার সংযোগসমূহ) | উচ্চ ফ্লেক্সিবল (মাল্টিপল ইনপুট, আউটপুট, স্কিপ সংযোগ) |
| মডেল | এক্সটেনশন বা বিশেষায়িত মডেল নির্মাণ সম্ভব নয় | বিশেষায়িত এবং কাস্টম মডেল তৈরি করা সম্ভব |
সারাংশ
- Sequential API একটি সহজ এবং দ্রুত পদ্ধতি, যা সোজা লিনিয়ার মডেল তৈরির জন্য উপযুক্ত।
- Functional API একটি বেশি ফ্লেক্সিবল এবং শক্তিশালী পদ্ধতি, যা জটিল আর্কিটেকচার, মাল্টিপল ইনপুট/আউটপুট, শেয়ারড লেয়ার এবং অন্যান্য কাস্টম সংযোগের জন্য ব্যবহৃত হয়।
মডেলের জটিলতা এবং কাস্টমাইজেশন প্রয়োজন অনুসারে আপনি এই দুটি পদ্ধতির মধ্যে একটি বেছে নিতে পারেন।
Dense লেয়ার এবং Activation Functions (যেমন ReLU, Sigmoid, Softmax) ডিপ লার্নিং মডেলে অত্যন্ত গুরুত্বপূর্ণ উপাদান। এগুলি নিউরাল নেটওয়ার্কে তথ্য প্রক্রিয়াকরণ এবং মডেল প্রশিক্ষণে গুরুত্বপূর্ণ ভূমিকা পালন করে।
Dense লেয়ার (Dense Layer)
Dense Layer (বা Fully Connected Layer) একটি নিউরাল নেটওয়ার্কের অন্যতম গুরুত্বপূর্ণ অংশ, যা ইনপুট ডেটা থেকে আউটপুট ডেটা তৈরি করে। এটি এমন একটি লেয়ার যেখানে প্রতিটি নিউরন (node) পূর্ববর্তী লেয়ারের সমস্ত নিউরনের সাথে যুক্ত থাকে।
বৈশিষ্ট্য:
- Fully Connected: প্রতিটি নিউরন পূর্ববর্তী লেয়ারের প্রতিটি নিউরনের সাথে সংযুক্ত থাকে।
- Weight & Bias: প্রতিটি সংযোগের জন্য একটি ওজন (weight) এবং প্রতিটি নিউরনের জন্য একটি বায়াস (bias) থাকে, যা নেটওয়ার্কের প্রশিক্ষণের সময় শেখা হয়।
- Output: এই লেয়ারের আউটপুট নির্ধারণ করা হয় ইনপুট এবং ওজনের মধ্যে গুনফল (dot product) এবং বায়াস যোগফল দিয়ে, যা পরবর্তী Activation Function এর মাধ্যমে প্রসেস হয়।
কাজ:
Dense লেয়ারের মূল কাজ হল ইনপুট সিগন্যালকে বিভিন্ন নিউরনের মধ্যে ট্রান্সফার করে, যার ফলে মডেল আরো জটিল প্যাটার্ন শিখতে সক্ষম হয়। এটি সাধারণত নেটওয়ার্কের আউটপুট লেয়ারে ব্যবহৃত হয়।
Activation Functions (ReLU, Sigmoid, Softmax)
Activation Functions একটি নিউরাল নেটওয়ার্কের নিউরনগুলির মধ্যে আউটপুট তৈরি করার জন্য ব্যবহৃত হয়। এটি ইনপুট সিগন্যালকে নির্দিষ্ট সীমার মধ্যে কনভার্ট করে, যা মডেলকে non-linear প্যাটার্ন শিখতে সাহায্য করে।
১. ReLU (Rectified Linear Unit)
- প্রকৃতি: এটি সবচেয়ে জনপ্রিয় Activation Function। এই ফাংশনটি ইনপুট মানটি যদি ধনাত্মক হয়, তবে আউটপুট সেই ইনপুটের সমান থাকে, আর যদি ইনপুট নেতিবাচক হয়, তবে আউটপুট শূন্য হয়।
- ফাংশন:
- ব্যবহার:
- ReLU সাধারণত hidden layers এ ব্যবহার করা হয়। এটি দ্রুত ট্রেনিং এবং অতি সহজ অ্যালগরিদমের জন্য পরিচিত।
- এটি non-linearity যোগ করে, যা মডেলকে আরও জটিল প্যাটার্ন শিখতে সাহায্য করে।
- সুবিধা:
- দ্রুত প্রশিক্ষণ প্রক্রিয়া।
- Vanishing Gradient সমস্যা কমায়।
২. Sigmoid
- প্রকৃতি: Sigmoid ফাংশন ইনপুটকে ০ থেকে ১ এর মধ্যে স্কেল করে। এটি একটি S-shaped curve।
- ফাংশন:
- ব্যবহার:
- Sigmoid সাধারণত binary classification সমস্যায় ব্যবহৃত হয়, যেখানে আউটপুট ১ বা ০ হয় (যেমন, এক ক্লাস অথবা অন্য ক্লাস)।
- সুবিধা:
- সহজ এবং সরল।
- আউটপুটকে ০ থেকে ১ এর মধ্যে স্কেল করা যায়, যা প্রোবাবিলিটি হিসেবে ব্যাখ্যা করা যায়।
- সীমাবদ্ধতা:
- Vanishing Gradient সমস্যা, যেখানে মডেল প্রশিক্ষণের সময় গ্র্যাডিয়েন্টে খুব ছোট মান আসতে পারে, ফলে প্রশিক্ষণ ধীর হতে পারে।
৩. Softmax
- প্রকৃতি: Softmax ফাংশন বিভিন্ন ক্লাসের মধ্যে সম্ভাবনা বিতরণ করে। এটি একাধিক ক্লাসের classification সমস্যার জন্য ব্যবহৃত হয়, যেখানে আউটপুট হবে ০ এবং ১ এর মধ্যে, এবং মোটের মোট প্রোবাবিলিটি ১ হবে।
- ফাংশন: যেখানে হল ইনপুট ভেক্টরের প্রতিটি উপাদান এবং হল ইনপুট ভেক্টরের সব উপাদানের exponential এর যোগফল।
- ব্যবহার:
- Softmax সাধারণত multi-class classification সমস্যায় ব্যবহৃত হয়, যেখানে একাধিক আউটপুট ক্লাস থাকে।
- সুবিধা:
- এটি নিশ্চিত করে যে প্রতিটি আউটপুট ক্লাসের প্রোবাবিলিটি ০ এবং ১ এর মধ্যে থাকবে এবং সমস্ত ক্লাসের প্রোবাবিলিটির যোগফল হবে ১।
সংক্ষেপ
- Dense লেয়ার একটি নিউরাল নেটওয়ার্কে প্রতিটি নিউরনের ইনপুট এবং আউটপুট সংযুক্ত করে এবং পরবর্তী লেয়ার পর্যন্ত তথ্য প্রক্রিয়া করে।
- ReLU (Rectified Linear Unit) দ্রুত প্রশিক্ষণ এবং non-linearity যোগ করতে ব্যবহৃত হয়।
- Sigmoid ফাংশন ০ থেকে ১ এর মধ্যে স্কেল করে এবং সাধারণত বাইনারি ক্লাসিফিকেশন সমস্যায় ব্যবহৃত হয়।
- Softmax ফাংশন একাধিক ক্লাসের মধ্যে সম্ভাবনা বিতরণ করে, যা multi-class classification সমস্যায় ব্যবহৃত হয়।
প্রতিটি ফাংশন নিজের সুবিধা এবং সীমাবদ্ধতা সহ বিভিন্ন ধরনের নেটওয়ার্কে ব্যবহৃত হয়, এবং এগুলির মধ্যে সঠিক নির্বাচন মডেলের কার্যকারিতা উন্নত করতে সহায়ক।
টেনসরফ্লো (TensorFlow) ব্যবহার করে মডেল compile, train, এবং evaluate করার প্রক্রিয়া অত্যন্ত গুরুত্বপূর্ণ এবং এটি মেশিন লার্নিং এবং ডিপ লার্নিং মডেলগুলির কার্যকারিতা নিশ্চিত করে। এখানে, আমরা Keras API ব্যবহার করে টেনসরফ্লো মডেলকে কম্পাইল, প্রশিক্ষণ (train), এবং মূল্যায়ন (evaluate) করার পদ্ধতি দেখবো।
1. মডেল Compile করা
মডেল compile করার সময়, মডেলের লস ফাংশন, অপটিমাইজার এবং মেট্রিক্স নির্ধারণ করা হয়। এটি মডেল তৈরির পর প্রথম ধাপ।
উদাহরণ:
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
# মডেল তৈরি করা
model = Sequential()
model.add(Dense(64, activation='relu', input_shape=(32,)))
model.add(Dense(10, activation='softmax'))
# মডেল কম্পাইল করা
model.compile(optimizer='adam',
loss='categorical_crossentropy',
metrics=['accuracy'])
এখানে:
- optimizer: অপটিমাইজার যা মডেল প্রশিক্ষণকালে ব্যবহার করা হবে। উদাহরণস্বরূপ,
'adam'একটি জনপ্রিয় অপটিমাইজার। - loss: এটি লস ফাংশন যা মডেলটির ভুলের পরিমাণ হিসাব করে। এখানে
'categorical_crossentropy'ব্যবহার করা হয়েছে। - metrics: মেট্রিকস ব্যবহার করা হয় মডেলের কার্যকারিতা নির্ধারণ করতে, যেমন
'accuracy'।
2. মডেল Train (প্রশিক্ষণ) করা
মডেল train করার সময়, ডেটাসেটের সাহায্যে মডেলটি প্রশিক্ষিত হয় এবং এটি তার পূর্বাভাসের accuracy বাড়াতে শিখে।
উদাহরণ:
# ডেটাসেট প্রস্তুত করা
import numpy as np
X_train = np.random.random((1000, 32)) # 1000টি ডেটা, প্রতিটি 32 ডিমেনশনে
y_train = np.random.random((1000, 10)) # 1000টি টার্গেট লেবেল, প্রতিটি 10 ডিমেনশনে
# মডেল প্রশিক্ষণ করা
model.fit(X_train, y_train, epochs=10, batch_size=32)
এখানে:
- X_train: প্রশিক্ষণ ডেটা, এখানে ১০০০টি উদাহরণ এবং ৩২টি বৈশিষ্ট্য (features) রয়েছে।
- y_train: টার্গেট লেবেল, যেখানে ১০টি ক্লাস রয়েছে।
- epochs: কতবার ডেটাসেট সম্পূর্ণরূপে মডেলের মাধ্যমে চলে যাবে।
- batch_size: প্রতিটি আপডেটের জন্য কতটি উদাহরণ একসাথে ব্যবহার করা হবে।
3. মডেল Evaluate (মূল্যায়ন) করা
মডেল evaluate করার সময়, মডেলটি তার ক্ষমতা যাচাই করতে একটি আলাদা টেস্ট ডেটাসেটে পরীক্ষা করা হয়।
উদাহরণ:
# টেস্ট ডেটাসেট প্রস্তুত করা
X_test = np.random.random((100, 32)) # 100টি টেস্ট ডেটা, প্রতিটি 32 ডিমেনশনে
y_test = np.random.random((100, 10)) # 100টি টেস্ট টার্গেট লেবেল
# মডেল মূল্যায়ন করা
loss, accuracy = model.evaluate(X_test, y_test)
print("Loss:", loss)
print("Accuracy:", accuracy)
এখানে:
- X_test এবং y_test: টেস্ট ডেটাসেট, যা মডেলটি প্রশিক্ষণের পর পরীক্ষা করতে ব্যবহৃত হয়।
- loss: টেস্ট ডেটার জন্য লস ফাংশনের মান।
- accuracy: মডেলটির টেস্ট ডেটাতে সঠিক পূর্বাভাসের শতাংশ।
সারাংশ
Compile, Train, এবং Evaluate হল মডেল তৈরির তিনটি মূল পদক্ষেপ:
- Compile: মডেল তৈরি করার পর অপটিমাইজার, লস ফাংশন, এবং মেট্রিক্স নির্ধারণ করা।
- Train: মডেলটি ডেটাসেট ব্যবহার করে প্রশিক্ষিত করা।
- Evaluate: মডেলটির কার্যকারিতা টেস্ট ডেটাসেটে মূল্যায়ন করা।
এই পদক্ষেপগুলির মাধ্যমে মডেল উন্নত করা এবং তার ফলাফল যাচাই করা সম্ভব।
মডেলের Accuracy এবং Loss ভিজ্যুয়ালাইজেশন একটি গুরুত্বপূর্ণ ধাপ, যা মডেল ট্রেনিং এবং ভ্যালিডেশন প্রক্রিয়া কীভাবে চলছে তা বুঝতে সাহায্য করে। সাধারণত, মডেল ট্রেনিংয়ের সময় দুটি গুরুত্বপূর্ণ মেট্রিক্স হল Accuracy এবং Loss। Accuracy মডেলের পূর্বাভাসের সঠিকতার পরিমাপ, এবং Loss হল মডেল দ্বারা তৈরি পূর্বাভাসের এবং প্রকৃত মানের মধ্যে তফাৎ।
Accuracy এবং Loss ভিজ্যুয়ালাইজেশন করার জন্য সাধারণত কীভাবে করা হয়:
- মডেল ট্রেনিং এর সময় Accuracy এবং Loss গণনা: প্রথমত, মডেল ট্রেনিং এবং ভ্যালিডেশন ডেটা উপর Accuracy এবং Loss ট্র্যাক করতে হয়। TensorFlow বা Keras লাইব্রেরি ব্যবহার করলে, এই মেট্রিক্সগুলি সাধারণত
fit()ফাংশনের মাধ্যমে ট্র্যাক করা হয়। - ভিজ্যুয়ালাইজেশন: মডেল ট্রেনিং শেষে, ট্রেনিং এবং ভ্যালিডেশন Accuracy এবং Loss কৌশলগতভাবে চিত্র আকারে দেখানো হয়। সাধারণত, Matplotlib লাইব্রেরি ব্যবহার করা হয় এই গ্রাফগুলি তৈরি করতে।
উদাহরণ: TensorFlow বা Keras ব্যবহার করে Accuracy এবং Loss ভিজ্যুয়ালাইজেশন
import matplotlib.pyplot as plt
# মডেল ট্রেনিংয়ের সময়, history ফাংশন Accuracy এবং Loss স্টোর করবে
history = model.fit(x_train, y_train, epochs=10, validation_data=(x_val, y_val))
# Accuracy ভিজ্যুয়ালাইজেশন
plt.figure(figsize=(12, 6))
# ট্রেনিং এবং ভ্যালিডেশন Accuracy গ্রাফ
plt.subplot(1, 2, 1)
plt.plot(history.history['accuracy'], label='Training Accuracy')
plt.plot(history.history['val_accuracy'], label='Validation Accuracy')
plt.title('Model Accuracy')
plt.xlabel('Epochs')
plt.ylabel('Accuracy')
plt.legend(loc='lower right')
# Loss ভিজ্যুয়ালাইজেশন
plt.subplot(1, 2, 2)
plt.plot(history.history['loss'], label='Training Loss')
plt.plot(history.history['val_loss'], label='Validation Loss')
plt.title('Model Loss')
plt.xlabel('Epochs')
plt.ylabel('Loss')
plt.legend(loc='upper right')
plt.tight_layout()
plt.show()
ব্যাখ্যা:
history.history['accuracy']ট্রেনিং ডেটার জন্য Accuracy ট্র্যাক করে।history.history['val_accuracy']ভ্যালিডেশন ডেটার জন্য Accuracy ট্র্যাক করে।history.history['loss']ট্রেনিং ডেটার জন্য Loss ট্র্যাক করে।history.history['val_loss']ভ্যালিডেশন ডেটার জন্য Loss ট্র্যাক করে।
সারাংশ:
এই ভিজ্যুয়ালাইজেশন গ্রাফগুলির মাধ্যমে, আপনি মডেলটির Performance এবং Generalization বোঝার জন্য একটি পরিষ্কার ধারণা পাবেন। যেমন:
- যদি Training Accuracy বাড়ে কিন্তু Validation Accuracy স্থির থাকে বা কমে, তবে এটি overfitting নির্দেশ করতে পারে।
- যদি Loss কমতে থাকে এবং Accuracy বাড়তে থাকে, তবে মডেলটি ভালভাবে ট্রেনিং হচ্ছে।
এটি মডেল অপটিমাইজেশনের জন্য একটি গুরুত্বপূর্ণ ধাপ।
Read more