IndexError Traceback (most recent call last)
/tmp/ipykernel_4126/534676331.py in
1 for i in loader:
----> 2 output=model(i['x_s'],i['x_t'],i['edge_index'])
/home/ubuntu/anaconda3/lib/python3.9/site-packages/torch/nn/modules/module.py in _call_impl(self, *input, **kwargs)
1108 if not (self._backward_hooks or self._forward_hooks or self._forward_pre_hooks or _global_backward_hooks
1109 or _global_forward_hooks or _global_forward_pre_hooks):
-> 1110 return forward_call(*input, **kwargs)
1111 # Do not call functions when jit is used
1112 full_backward_hooks, non_full_backward_hooks = [], []
/tmp/ipykernel_4126/502885603.py in forward(self, source, target, edge_index)
27 edge_index_=edge_index_.to(torch.long)
28
---> 29 x = self.conv1(source_R,edge_index_)
30
31 return x
/home/ubuntu/anaconda3/lib/python3.9/site-packages/torch/nn/modules/module.py in _call_impl(self, *input, **kwargs)
1108 if not (self._backward_hooks or self._forward_hooks or self._forward_pre_hooks or _global_backward_hooks
1109 or _global_forward_hooks or _global_forward_pre_hooks):
-> 1110 return forward_call(*input, **kwargs)
1111 # Do not call functions when jit is used
1112 full_backward_hooks, non_full_backward_hooks = [], []
/home/ubuntu/anaconda3/lib/python3.9/site-packages/torch_geometric/nn/conv/sage_conv.py in forward(self, x, edge_index, size)
78
79 # propagate_type: (x: OptPairTensor)
---> 80 out = self.propagate(edge_index, x=x, size=size)
81 out = self.lin_l(out)
82
/home/ubuntu/anaconda3/lib/python3.9/site-packages/torch_geometric/nn/conv/message_passing.py in propagate(self, edge_index, size, **kwargs)
307 kwargs[arg] = decomp_kwargs[arg][i]
308
--> 309 coll_dict = self.collect(self.user_args, edge_index,
310 size, kwargs)
311
/home/ubuntu/anaconda3/lib/python3.9/site-packages/torch_geometric/nn/conv/message_passing.py in collect(self, args, edge_index, size, kwargs)
200 if isinstance(data, Tensor):
201 self.set_size(size, dim, data)
--> 202 data = self.lift(data, edge_index, dim)
203
204 out[arg] = data
/home/ubuntu/anaconda3/lib/python3.9/site-packages/torch_geometric/nn/conv/message_passing.py in lift(self, src, edge_index, dim)
170 if isinstance(edge_index, Tensor):
171 index = edge_index[dim]
--> 172 return src.index_select(self.node_dim, index)
173 elif isinstance(edge_index, SparseTensor):
174 if dim == 1:
IndexError: index out of range in self
I’m working in bipartite graph.
shapes:
source - torch.Size([3, 32]) [features,nodes]
target - torch.Size([3, 100])[features,nodes]
edge_index - torch.Size([2, 745])
class GNN(torch.nn.Module):
def init(self, hidden_channels, out_channels):
super().init()
self.conv1 = SAGEConv((-1, -1), hidden_channels,normalize=True)
self.conv2 = SAGEConv((-1, -1), out_channels,normalize=True)
def forward(self, source,target, edge_index):
source_,target_,edge_index_=torch.tensor(source),torch.tensor(target),torch.tensor(edge_index)
print('I_shape',source_.shape)
print('I_shape',target_.shape)
print('I_shape',edge_index_.shape)
source_R=source_.reshape(3,32)
target_R=target_.reshape(3,100)
edge_index_=edge_index_.reshape(2,745)
print('shape',source_R.shape)
print('shape',target_R.shape)
print('shape',edge_index_.shape)
edge_index_=edge_index_.to(torch.long)
x = self.conv1(source_R,edge_index_)
return x```