ai-411Đọc toàn bộ đề miễn phí

Chuẩn hoá L2 từng hàng embedding

Nhiều chỉ mục vector chuẩn hoá sẵn mọi embedding về độ dài 1 để tích vô hướng trở

AICơ bản12 phút

Tiến độ của tôi ở bài này

Điểm và code bạn nộp đượ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ủ đề

numpyembeddingnormalizationentry-ramp

Kiến thức tiên quyết: python-basics, numpy-vector-operations.

Nội dung đề bài

Mô tả bài toán

Nhiều chỉ mục vector chuẩn hoá sẵn mọi embedding về độ dài 1 để tích vô hướng trở thành cosin. Ma trận embedding sau đó giữ nguyên hướng nhưng mất ảnh hưởng của độ lớn, giúp so khớp công bằng giữa các hàng.

Yêu cầu

Viết hàm l2_normalize_rows(matrix) trả về ma trận đã chuẩn hoá L2 theo từng hàng.

Quy ước nộp bài

Nộp hàm l2_normalize_rows trong solution.py. Hệ thống gọi hàm trực tiếp, so ma trận với kỳ vọng; không đọc stdin và không in ra stdout.

Input

  • matrix: danh sách các hàng, mỗi hàng là dãy số.

Output

Danh sách các hàng mới với mỗi hàng chia cho chuẩn Euclid của nó. Hàng có chuẩn bằng 0 được giữ nguyên toàn số 0 thay vì sinh nan.

Ràng buộc

  • matrix phải là mảng hai chiều; ném ValueError nếu là vector một chiều.
  • Chuẩn tính theo hàng (theo trục 1), không theo cột.
  • Chỉ dùng NumPy, không chia từng phần tử bằng vòng lặp Python.

Ví dụ 1

Input

l2_normalize_rows(matrix=[[3, 4], [0, 0]])

Output

[[0.6, 0.8], [0.0, 0.0]]

Ví dụ 2

Input

l2_normalize_rows(matrix=[[1, 0], [0, 1]])

Output

[[1.0, 0.0], [0.0, 1.0]]

Giải thích

Với matrix = [[3, 4], [0, 0]], hàng đầu có chuẩn 5 nên thành [0.6, 0.8]; hàng sau giữ [0.0, 0.0], kết quả là [[0.6, 0.8], [0.0, 0.0]].

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.

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.

Nhóm Zalo