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

Tổng đặc trưng của các hàng xóm

Bước lan truyền thông điệp (message passing) cơ bản nhất của mạng nơ-ron đồ thị là lấy

AICơ bản11 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ủ đề

numpygraph-neural-networkmessage-passingentry-ramp

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

Nội dung đề bài

Mô tả bài toán

Bước lan truyền thông điệp (message passing) cơ bản nhất của mạng nơ-ron đồ thị là lấy tổng đặc trưng của các đỉnh kề: h'v = tổngu thuộc N(v) xu. Nếu muốn giữ cả thông tin của chính đỉnh, người ta thêm một cạnh tự nối và cộng thêm xv.

Yêu cầu

Viết hàm aggregate_neighbor_features(adjacency, features, node, include_self=False) trả về vector tổng đặc trưng của các hàng xóm.

Quy ước nộp bài

Nộp hàm aggregate_neighbor_features trong solution.py. Hệ thống gọi hàm trực tiếp và so giá trị với sai số 1e-6; không đọc stdin và không in ra stdout.

Input

  • adjacency: ma trận kề (danh sách các danh sách), adjacency[v][u] khác 0 nếu u kề

v.

  • features: đặc trưng đỉnh (kích thước n x d).
  • node: đỉnh cần tổng hợp.
  • include_self: nếu True thì cộng thêm đặc trưng của chính đỉnh.

Output

Danh sách độ dài d bằng tổng features[u] trên các hàng xóm u (và cả node khi include_self=True).

Ràng buộc

  • node phải nằm trong [0, n); nếu không thì ném ValueError.
  • Số hàng của features phải bằng n; nếu không thì ném ValueError.
  • Chỉ dùng NumPy để lọc và cộng.

Ví dụ 1

Input

aggregate_neighbor_features(adjacency=[[0, 1, 1, 0], [1, 0, 1, 0], [1, 1, 0, 1], [0, 0, 1, 0]], features=[[1, 0], [2, 1], [0, 3], [4, 2]], node=0)

Output

[2, 4]

Ví dụ 2

Input

aggregate_neighbor_features(adjacency=[[0, 1, 1, 0], [1, 0, 1, 0], [1, 1, 0, 1], [0, 0, 1, 0]], features=[[1, 0], [2, 1], [0, 3], [4, 2]], node=1)

Output

[1, 3]

Giải thích

Với features = [[1, 0], [2, 1], [0, 3], [4, 2]] và ma trận kề sao cho đỉnh 0 kề 1 và 2, tổng là features[1] + features[2] = [2, 4]. Nếu đỉnh không có hàng xóm nào và include_self=False thì kết quả là vector không.

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.

Nhóm Zalo