Hi everyone!
I have a error with a dimension. I can’t identify where the problem is, I’ve been checking all the inputs and outputs and I can’t understand the reason for “IndexError: index 4359 is out of bounds for dimension 0 with size 4357”.
---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
<ipython-input-747-5046fcafc8d6> in <module>
      2 model.eval()
      3 
----> 4 out = model(data.x, data.edge_index)
      5 #visualize(out, color = data.y)

~\anaconda3\lib\site-packages\torch\nn\modules\module.py in _call_impl(self, *input, **kwargs)
    725             result = self._slow_forward(*input, **kwargs)
    726         else:
--> 727             result = self.forward(*input, **kwargs)
    728         for hook in itertools.chain(
    729                 _global_forward_hooks.values(),

<ipython-input-745-449b43994269> in forward(self, x, edge_index)
     11         print(x.shape)
     12         print(edge_index.shape)
---> 13         x = self.conv1(x, edge_index)
     14         x = x.relu()
     15         x = F.dropout(x, p=0.5, training = self.training)

~\anaconda3\lib\site-packages\torch\nn\modules\module.py in _call_impl(self, *input, **kwargs)
    725             result = self._slow_forward(*input, **kwargs)
    726         else:
--> 727             result = self.forward(*input, **kwargs)
    728         for hook in itertools.chain(
    729                 _global_forward_hooks.values(),

~\anaconda3\lib\site-packages\torch_geometric\nn\conv\gcn_conv.py in forward(self, x, edge_index, edge_weight)
    158                 cache = self._cached_edge_index
    159                 if cache is None:
--> 160                     edge_index, edge_weight = gcn_norm(  # yapf: disable
    161                         edge_index, edge_weight, x.size(self.node_dim),
    162                         self.improved, self.add_self_loops)

~\anaconda3\lib\site-packages\torch_geometric\nn\conv\gcn_conv.py in gcn_norm(edge_index, edge_weight, num_nodes, improved, add_self_loops, dtype)
     54 
     55         if add_self_loops:
---> 56             edge_index, tmp_edge_weight = add_remaining_self_loops(
     57                 edge_index, edge_weight, fill_value, num_nodes)
     58             assert tmp_edge_weight is not None

~\anaconda3\lib\site-packages\torch_geometric\utils\loop.py in add_remaining_self_loops(edge_index, edge_weight, fill_value, num_nodes)
    132         remaining_edge_weight = edge_weight[inv_mask]
    133         if remaining_edge_weight.numel() > 0:
--> 134             loop_weight[row[inv_mask]] = remaining_edge_weight
    135         edge_weight = torch.cat([edge_weight[mask], loop_weight], dim=0)
    136 

IndexError: index 4359 is out of bounds for dimension 0 with size 4357

As an example the following code:
edge_index = torch.tensor(edge_train, dtype = torch.long)
y = torch.tensor(target_train, dtype = torch.long)
x = torch.tensor(data_train, dtype = torch.long)  

data = Data(x = x, edge_index = edge_index, y = y)
data

Output:
Data(edge_index=[2, 85325], x=[4357, 2790], y=[4357])

class GCN(torch.nn.Module):
    def __init__(self, hidden_channels):
        super(GCN, self).__init__()
        num_classes = 1
        num_features = 2790        
        self.conv1 = GCNConv(num_features, hidden_channels)
        self.conv2 = GCNConv(hidden_channels, num_classes)

    def forward(self, x, edge_index):
        print(x.shape)
        print(edge_index.shape)
        x = self.conv1(x, edge_index)
        x = x.relu()
        x = F.dropout(x, p=0.2, training = self.training)
        x = self.conv2(x, edge_index)
        return x


model = GCN(hidden_channels=512)
model.eval()

out = model(data.x, data.edge_index)

Some dimensions obtained are:
**out.shape:** torch.Size([4357])
**data.y.shape:** torch.Size([4357])
**data.edge_index.shape:** torch.Size([2, 85325])
**data.x.shape:** torch.Size([4357, 2790])

Any idea?. I very much appreciate the comments or suggestions.
Greetings