![```python
import torch
import torch.nn as nn
import torch.nn.functional as F
class LightGCNBase(nn.Module):
"""단일 그래프에서 전파를 담당하고 모든 노드의 임베딩을 출력하는 내부 LightGCN 모델입니다."""
def __init__(self, num_nodes: int, embedding_dim: int = 64, n_layers: int = 3):
super().__init__()
self.num_nodes = num_nodes
self.embedding_dim = embedding_dim
self.n_layers = n_layers
self.embedding = nn.Embedding(num_nodes, embedding_dim)
nn.init.normal_(self.embedding.weight, std=0.1)
def propagate(self, graph: torch.Tensor) -> torch.Tensor:
"""주어진 그래프에서 K 레이어의 LightGCN 전파를 수행하고 모든 노드의 최종 임베딩을 반환합니다."""
all_emb = self.embedding.weight # [N, d]
embs = [all_emb]
for _ in range(self.n_layers):
all_emb = torch.sparse.mm(graph, all_emb) # [N, d]
embs.append(all_emb)
embs_stack = torch.stack(embs, dim=0) # [K+1, N, d]
out = torch.mean(embs_stack, dim=0) # [N, d]
return out
class MultiGraphLightGCN(nn.Module):
```](/_next/image?url=https%3A%2F%2Fpub-8c0ddfa5c0454d40822bc9944fe6f303.r2.dev%2Fai-drawings%2FKBimdOJW5qMAfEg0lBE9pzFIVeNktoy7%2F9984c727-08a9-4276-9a16-4f3639b94e55%2Ff9426d87-f474-4d36-8cdf-66efb9dfe471.png&w=3840&q=75)
```python import torch import torch.nn as nn import torch.nn.functional as F class LightGCNBase(nn.Module): """단일 그래프에서 전파를 담당하고 모든 노드의 임베딩을 출력하는 내부 LightGCN 모델입니다.""" def __init__(self, num_nodes: int, embedding_dim: int = 64, n_layers: int = 3): super().__init__() self.num_nodes = num_nodes self.embedding_dim = embedding_dim self.n_layers = n_layers self.embedding = nn.Embedding(num_nodes, embedding_dim) nn.init.normal_(self.embedding.weight, std=0.1) def propagate(self, graph: torch.Tensor) -> torch.Tensor: """주어진 그래프에서 K 레이어의 LightGCN 전파를 수행하고 모든 노드의 최종 임베딩을 반환합니다.""" all_emb = self.embedding.weight # [N, d] embs = [all_emb] for _ in range(self.n_layers): all_emb = torch.sparse.mm(graph, all_emb) # [N, d] embs.append(all_emb) embs_stack = torch.stack(embs, dim=0) # [K+1, N, d] out = torch.mean(embs_stack, dim=0) # [N, d] return out class MultiGraphLightGCN(nn.Module): ```

변분 오토인코더(VAE)의 깔끔하고 전문적인 딥러닝 아키텍처 다이어그램을 제시합니다. 왼쪽에는 컨볼루션 레이...