Ghép mọi thứ lại: chuẩn hóa dữ liệu, một lớp mạng, softmax và hàm mất mát — tất cả chỉ vài dòng NumPy. Đây là xương sống bạn sẽ gặp lại trong khóa Nhập môn AI và PyTorch.
rng = np.random.default_rng(0)
X = rng.normal(size=(100, 4)) # 100 mẫu, 4 đặc trưng
y = rng.integers(0, 3, size=100) # 3 lớp
X = (X - X.mean(0)) / X.std(0) # chuẩn hóa z-score
W = rng.normal(0, 0.1, size=(4, 3)); b = np.zeros(3)
logits = X @ W + b # (100, 3)
z = logits - logits.max(1, keepdims=True)
probs = np.exp(z) / np.exp(z).sum(1, keepdims=True)
loss = -np.log(probs[np.arange(100), y]).mean() # cross-entropy
acc = (probs.argmax(1) == y).mean()
print(f"loss={loss:.3f} accuracy={acc:.2%}")Dùng np.random.default_rng(seed) thay cho np.random.seed — mỗi bộ sinh số có trạng thái riêng, kết quả lặp lại được và không ảnh hưởng nhau.
Luyện tập ngay
Viết code và chấm tự động — có trợ lý AI gợi ý khi bí.