Chapter 13
TensorFlow-এর মূল
TensorFlow Fundamentals
🎬 TensorFlow পরিচিতি
Google-এর তৈরি TensorFlow — Production-এ সবচেয়ে ব্যবহৃত DL framework। Keras হলো এর high-level API — অসম্ভব সরল। আগের অধ্যায়ের ১০০ লাইনের কাজ এখানে ১০ লাইনে।
Tensor কী?
Tensor = multi-dimensional array, NumPy-এর মতোই — কিন্তু GPU-তে চলতে পারে এবং automatic gradient সাপোর্ট করে।
import tensorflow as tf
a = tf.constant([[1., 2.], [3., 4.]])
b = tf.constant([[5., 6.], [7., 8.]])
print(a + b)
print(tf.matmul(a, b))
print(a.shape, a.dtype)Keras Sequential API — সবচেয়ে সহজ
from tensorflow import keras
from tensorflow.keras import layers
model = keras.Sequential([
layers.Input(shape=(784,)),
layers.Dense(128, activation="relu"),
layers.Dense(64, activation="relu"),
layers.Dense(10, activation="softmax"),
])
model.compile(
optimizer="adam",
loss="categorical_crossentropy",
metrics=["accuracy"],
)
model.summary()MNIST সম্পূর্ণ Training
(x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data()
x_train = x_train.reshape(-1, 784).astype("float32") / 255
x_test = x_test.reshape(-1, 784).astype("float32") / 255
y_train = keras.utils.to_categorical(y_train, 10)
y_test = keras.utils.to_categorical(y_test, 10)
model.fit(x_train, y_train, epochs=5, batch_size=64,
validation_split=0.1)
loss, acc = model.evaluate(x_test, y_test)
print(f"Test accuracy: {acc:.4f}")Functional API — জটিল architecture-এর জন্য
inputs = keras.Input(shape=(784,))
x = layers.Dense(128, activation="relu")(inputs)
x = layers.Dropout(0.2)(x)
outputs = layers.Dense(10, activation="softmax")(x)
model = keras.Model(inputs, outputs)Model Subclassing — সম্পূর্ণ স্বাধীনতা
class MyModel(keras.Model):
def __init__(self):
super().__init__()
self.d1 = layers.Dense(128, activation="relu")
self.d2 = layers.Dense(10, activation="softmax")
def call(self, x):
return self.d2(self.d1(x))
model = MyModel()Save ও Load
model.save("mnist.keras")
loaded = keras.models.load_model("mnist.keras")Callbacks — useful tools
callbacks = [
keras.callbacks.EarlyStopping(patience=3, restore_best_weights=True),
keras.callbacks.ModelCheckpoint("best.keras", save_best_only=True),
keras.callbacks.ReduceLROnPlateau(factor=0.5, patience=2),
]
model.fit(x_train, y_train, epochs=50, callbacks=callbacks,
validation_split=0.1)সাধারণ ভুল ধারণা
⚠️ এড়িয়ে চলবেন
- Input normalize না করা — train অস্থির হবে।
- Output layer-এ activation ভুল।
sparse_categorical_crossentropyবনামcategorical_crossentropy— label format-এর উপর নির্ভর।
অনুশীলন
১. Fashion-MNIST dataset-এ একই মডেল train করুন।
২. Dropout যোগ করে দেখুন overfitting কমে কিনা।
৩. model.summary() দেখে total parameter count বের করুন।
মিনি প্রজেক্ট
🚀 আজকের চ্যালেঞ্জ
একটি 3-layer MLP দিয়ে CIFAR-10 train করুন (flattened images)। Accuracy কেমন? পরের অধ্যায়ে দেখব কেন CNN অনেক ভালো।
ইন্টারভিউ প্রশ্ন
- Sequential, Functional, Subclassing API-এর পার্থক্য।
- EarlyStopping কীভাবে কাজ করে?
- TensorFlow vs Keras — সম্পর্ক?
সারসংক্ষেপ
✨ এই অধ্যায়ে যা শিখলাম
- TensorFlow + Keras দিয়ে দ্রুত মডেল।
- ৩ ধরনের API — Sequential, Functional, Subclassing।
- Callback দিয়ে training সহজ।