Vector hóa Chuẩn hóa Z-Score Mảng Đa chiều bằng Broadcasting
Trong các mô hình Deep Learning (như Batch Normalization hay Layer Normalization), dữ liệu đặc trưng cần được đưa về phân phối chuẩn có trung bình bằng 0 và phương sai bằng 1 dọc t…
Tiến độ của tôi ở bài này
Điểm được lưu vào tài khoản sau khi chấm bài.
Đang tải điểm của bạn…
Kiến thức và chủ đề
Kiến thức tiên quyết: ndarray basics, broadcasting rules, keepdims.
Nội dung đề bài
Mục tiêu kiến thức
- Áp dụng triệt để Quy tắc phát sóng (Broadcasting Rules) của NumPy để loại bỏ hoàn toàn vòng lặp Python tường minh.
- Sử dụng tham số
keepdims=Trueđể bảo toàn số chiều của tensor phục vụ phép toán phát sóng mượt mà. - Đảm bảo tính ổn định số học (Numerical Stability) khi độ lệch chuẩn xấp xỉ 0 bằng hằng số ε.
Mô tả bài toán
Trong các mô hình Deep Learning (như Batch Normalization hay Layer Normalization), dữ liệu đặc trưng cần được đưa về phân phối chuẩn có trung bình bằng 0 và phương sai bằng 1 dọc theo một trục xác định.
Hãy viết hàm: batch_standardize(X: np.ndarray, axis: int = 0, eps: float = 1e-8) -> tuple[np.ndarray, np.ndarray, np.ndarray]
Yêu cầu:
- Kiểm tra đầu vào: Nếu
Xkhông phải lànp.ndarrayhoặc kích thướcX.size == 0, ném ngoại lệValueError("X phai la mang numpy khong rong"). - Tính toán thống kê:
- Tính kỳ vọng μ = mean(X, axis=axis, keepdims=True).
- Tính độ lệch chuẩn σ = std(X, axis=axis, keepdims=True).
- Chuẩn hóa với Broadcasting:
- Xnorm = X - μσ + ε
- Không được dùng bất kỳ vòng lặp
forhaywhilenào của Python. - Kết quả trả về:
- Tuple gồm 3 phần tử:
(X_norm, mean_squeezed, std_squeezed)trong đómean_squeezedvàstd_squeezedđã được loại bỏ chiều rút gọn tương ứng vớiaxis(bằngnp.squeeze(mean, axis=axis)).
Input
X: Mảng NumPy đa chiều kiểu số (float32hoặcfloat64).axis: Trục cần thực hiện chuẩn hóa (số nguyên).eps: Hằng số ổn định số học (mặc định 10-8).
Output
Tuple (X_norm, mean, std).
Ràng buộc
- Số chiều của X: 1 ≤ ndim ≤ 4.
- Kích thước các chiều: 1 ≤ dim ≤ 1000.
- Thời gian chạy tối đa: 1000ms.
- Giới hạn bộ nhớ: 256MB.
Ví dụ 1
Input
batch_standardize(X=[[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]], axis=0, eps=1e-08)Output
TrueGiải thích
Hàm được gọi với các tham số mẫu trên và trả về kết quả chính xác theo yêu cầu.
Gợi ý và lời giải chỉ mở sau khi bạn bấm Nộp bài. Giáo viên và quản trị viên mở được ngay.
Góp ý & báo lỗi bài tập
Đề bài chưa rõ, test có vấn đề hay bạn có ý tưởng giúp bài tốt hơn? Gửi cho đội ngũ AI Empire nhé — mỗi góp ý đều được đọc.
