from torch import Tensor
from torch.nn import Embedding
from lib.models import Module
from lib.utils import Graph


class RGCNEmbedding(Module):

    def __init__(self, num_nodes: int, hidden_dim: int):
        super().__init__()
        self.embedding = Embedding(num_nodes, hidden_dim)

    def forward(self, graph: Graph, x: Tensor, etypes: Tensor, norm: Tensor
        ) ->Tensor:
        super().forward()
        node_ids = graph.ndata['id'].squeeze()
        node_embedding = self.embedding(node_ids)
        return node_embedding

b18cf9d5bb52c9b07052d115f310eb27e1f66272
<mask token>


class RGCNEmbedding(Module):
    <mask token>
    <mask token>

<mask token>


class RGCNEmbedding(Module):
    <mask token>

    def forward(self, graph: Graph, x: Tensor, etypes: Tensor, norm: Tensor
        ) ->Tensor:
        super().forward()
        node_ids = graph.ndata['id'].squeeze()
        node_embedding = self.embedding(node_ids)
        return node_embedding

<mask token>


class RGCNEmbedding(Module):

    def __init__(self, num_nodes: int, hidden_dim: int):
        super().__init__()
        self.embedding = Embedding(num_nodes, hidden_dim)

    def forward(self, graph: Graph, x: Tensor, etypes: Tensor, norm: Tensor
        ) ->Tensor:
        super().forward()
        node_ids = graph.ndata['id'].squeeze()
        node_embedding = self.embedding(node_ids)
        return node_embedding

from torch import Tensor
from torch.nn import Embedding
from lib.models import Module
from lib.utils import Graph


class RGCNEmbedding(Module):

    def __init__(self, num_nodes: int, hidden_dim: int):
        super().__init__()
        self.embedding = Embedding(num_nodes, hidden_dim)

    def forward(self, graph: Graph, x: Tensor, etypes: Tensor, norm: Tensor
        ) ->Tensor:
        super().forward()
        node_ids = graph.ndata['id'].squeeze()
        node_embedding = self.embedding(node_ids)
        return node_embedding
