python-033Đọc toàn bộ đề miễn phí

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…

PythonTrung bình25 phú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ủ đề

numpybroadcastingvectorizationdata preprocessing

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 X không phải là np.ndarray hoặc kích thước X.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 for hay while nào của Python.
  • Kết quả trả về:
  • Tuple gồm 3 phần tử: (X_norm, mean_squeezed, std_squeezed) trong đó mean_squeezed và std_squeezed đã được loại bỏ chiều rút gọn tương ứng với axis (bằng np.squeeze(mean, axis=axis)).

Input

  • X: Mảng NumPy đa chiều kiểu số (float32 hoặc float64).
  • 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

True

Giả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.

3 cấp độ gợi ýMở dần khi bạn thật sự cần hỗ trợ.
Phân tích lời giảiGiải thích hướng tư duy và thuật toán.
Code tham khảoDùng để đối chiếu sau khi tự làm.

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.