একটি ছবিকে কীভাবে "সংখ্যা" বানানো যায়? একটি 256×256 RGB image আসলে 256×256×3 = 196,608টি সংখ্যার একটি বিশাল box। সেই box-এর নামই Tensor। AI-এর সব data — image, audio, text — শেষ পর্যন্ত tensor।
Scalar, Vector, Matrix, Tensor — এই চারটি শব্দ ছাড়া PyTorch বা TensorFlow-র এক লাইনও পড়া যায় না।
Intuitive Explanation
"Rank" বা "Order" দিয়ে সব সংখ্যাগত object-কে শ্রেণিবদ্ধ করা যায়:
- Scalar — 0-D, একটি সংখ্যা (5)
- Vector — 1-D, সংখ্যার তালিকা ([3, 1, 4])
- Matrix — 2-D, সংখ্যার table
- Tensor — n-D, যেকোনো মাত্রার সংখ্যার "box"
Scalar
Scalar = একটি সংখ্যা। ML-এ: learning rate, loss value, batch size।
Vector
Vector = ordered list of numbers। একটি বিন্দুর "অবস্থান" বা "দিক" বোঝায়।
- Word embedding (word2vec, GPT): প্রতিটি শব্দ = 768/1024/4096-মাত্রার vector।
- Feature vector: একজন user-এর behavior → একটি vector।
- Gradient: প্রতিটি parameter-এর জন্য একটি সংখ্যা → একটি বিশাল vector।
Geometric intuition
একটি 2D vector [3, 4] = origin থেকে (3, 4) পর্যন্ত তীর। দৈর্ঘ্য (magnitude) = √(3² + 4²) = 5।
Matrix
Matrix = rows × columns আকারে সংখ্যা।
- Grayscale image: shape (H, W)
- Dataset: shape (n_samples, n_features)
- Neural network layer-এর weight: shape (in_dim, out_dim)
Tensor — সবার generalization
Tensor = n-dimensional array। Scalar/Vector/Matrix সব tensor-এর special case।
Shape conventions in ML
- RGB image: (H, W, 3)
- Batch of images: (B, H, W, 3) বা (B, 3, H, W)
- Text batch: (B, T); embeddings: (B, T, D)
- Attention weights: (B, heads, T, T) — 4-D
Python (NumPy) Implementation
import numpy as np
# Scalar (0-D)
s = np.array(5.0)
print(s.shape, s.ndim) # () 0
# Vector (1-D)
v = np.array([3, 1, 4])
print(v.shape, v.ndim) # (3,) 1
# Matrix (2-D)
M = np.array([[1, 2, 3],
[4, 5, 6]])
print(M.shape, M.ndim) # (2, 3) 2
# Tensor (3-D) — like a tiny RGB image, 2x2 pixels
T = np.array([[[255, 0, 0], [0, 255, 0]],
[[0, 0, 255], [255, 255, 0]]])
print(T.shape, T.ndim) # (2, 2, 3) 3
# Reshape — same data, new shape
batch = np.arange(24).reshape(2, 3, 4)
print(batch.shape) # (2, 3, 4)
# Indexing
print(M[0]) # first row -> [1 2 3]
print(M[:, 1]) # second column -> [2 5]
print(T[0, 1]) # green pixel -> [0 255 0]AI/ML সংযোগ
- CNN: image tensor (B, 3, H, W) convolution-এর মধ্য দিয়ে যায়।
- Transformer: token embedding (B, T, D) প্রতিটি layer-এ পরিবর্তিত হয়।
- GPU efficiency: tensor operation parallelize হয় — তাই tensor framework দ্রুত।
- Backprop: gradient-ও tensor — parameter-এর সমান shape।
Common Mistakes
- Shape mismatch: (B, 3, H, W) বনাম (B, H, W, 3) — framework অনুসারে অর্ডার আলাদা।
- Vector (n,) বনাম column matrix (n, 1) গুলিয়ে ফেলা।
- Reshape ও transpose এক নয় — reshape data ক্রম রাখে, transpose বদলায়।
Practice Tasks
- NumPy দিয়ে shape (4, 5)-এর zero matrix বানান।
- np.arange(60)-কে (3, 4, 5) tensor-এ reshape করুন।
- একটি random (2, 3, 4) tensor বানিয়ে axis=1-এ sum বের করুন।
Assignment
একটি grayscale "image" বানান (shape (8, 8)), যেখানে চারটি কোণার pixel = 255, বাকি = 0। তারপর সেটাকে RGB image-এ (shape (8, 8, 3)) convert করুন যেখানে শুধু লাল channel ভর্তি।
Interview Questions
- Scalar, Vector, Matrix, Tensor-এর পার্থক্য কী?
- একটি 64×64 RGB image-এর tensor shape ও মোট সংখ্যা কত?
- Reshape ও transpose-এর পার্থক্য কী?
- NCHW ও NHWC বলতে কী বোঝায়?
Mini Project
"Tensor Inspector" — একটি Python script যা যেকোনো NumPy array নিয়ে print করে: shape, ndim, dtype, min, max, mean, এবং কয়েকটি sample value। PyTorch বা TensorFlow শুরু করার আগে এটাই আপনার প্রথম debugging tool।
Summary · সারসংক্ষেপ
- Scalar (0-D) → Vector (1-D) → Matrix (2-D) → Tensor (n-D)।
- সব ML data শেষ পর্যন্ত tensor — image, text, audio, gradient সব।
- Shape হলো ML-এর সবচেয়ে গুরুত্বপূর্ণ debugging information।
- NumPy syntax PyTorch/TF-এর সাথে প্রায় ১০০% মেলে।