I am still getting the same error. I found this online, from a github issue, by the creator of the package. I am pasting here, it may help to resolve our issue. By the way, the error I get is almost identical as before. This is what I found online (hope it helps): 

I made my own dataset using the grammar below;

from torch\_geometric.data import Data
from torch\_geometric.loader import DataLoader

data\_list = [Data(...), ..., Data(...)]
loader = DataLoader(data\_list, batch\_size=32)

The length of the data\_list is 98 (I have 98 graphs) and
each Data(..) has dimensions of Data(x=[94, 2], edge\_index=[2, 874], edge\_attr=[874, 2], y=[1]).

As I had an error running a net, I just tested a part of my code.

from torch.nn import Linear
import torch.nn.functional as F
from torch\_geometric.nn import GCNConv
from torch\_geometric.nn import global\_mean\_pool
class MY\_NET(torch.nn.Module):
 def \_\_init\_\_(self):
 super(MY\_NET, self).\_\_init\_\_()
 self.indim=2
 self.dim1=32
 n1 = nn.Sequential(nn.Linear(2, 1), nn.ReLU(), nn.Linear(1, self.dim1 \* self.indim))
 self.conv1 = NNConv(self.indim, self.dim1, n1, aggr="add")

 def forward(self, x, edge\_index, edge\_attr,size=(94,874)):
 x = self.conv1(x, edge\_index, edge\_attr) 
 return x

model = MY\_NET()
print(model)

def train():
 for data in train\_loader:
 out =model(data.x,data.edge\_index,data.edge\_attr)

train()

AND HAD ERROR BELOW;

~/.conda/envs/jiyeony2/lib/python3.8/site-packages/torch\_geometric/nn/conv/message\_passing.py in propagate(self, edge\_index, size, \*\*kwargs)
 259 # Otherwise, run both functions in separation.
 260 elif isinstance(edge\_index, Tensor) or not self.fuse:
--> 261 coll\_dict = self.\_\_collect\_\_(self.\_\_user\_args\_\_, edge\_index, size,
 262 kwargs)
 263 

~/.conda/envs/jiyeony2/lib/python3.8/site-packages/torch\_geometric/nn/conv/message\_passing.py in \_\_collect\_\_(self, args, edge\_index, size, kwargs)
 169 if isinstance(data, Tensor):
 170 self.\_\_set\_size\_\_(size, dim, data)
--> 171 data = self.\_\_lift\_\_(data, edge\_index,
 172 j if arg[-2:] == '\_j' else i)
 173 

~/.conda/envs/jiyeony2/lib/python3.8/site-packages/torch\_geometric/nn/conv/message\_passing.py in \_\_lift\_\_(self, src, edge\_index, dim)
 139 if isinstance(edge\_index, Tensor):
 140 index = edge\_index[dim]
--> 141 return src.index\_select(self.node\_dim, index)
 142 elif isinstance(edge\_index, SparseTensor):
 143 if dim == 1:

IndexError: index out of range in self

Can you check that data.edge\_index.max() < data.x.size(0) for all your data?

It returns tensor(False) to all my data.

When I print(data.x.shape) it returns torch.Size([94,2])
and print(data.edge\_index.shape) returns torch.Size([2,874]).

Anyways, I have no idea why my data should satisfy data.edge\_index.max() < data.x.size(0)
as I thought x is node feature matrix and edge\_index is coo format.
Also, I lost the way how to fix it...

Thank you.

Oh, by subtracting 1 to the edge\_index helped me. Thank you so much

Yes, edge\_index holds the indices that are used to index x in the first dimension, so it should only contain values in the range [0, x.size(0) - 1].
=========================================================

I hope the above issue I mentioned helps to resolve the bug. Revise the script, given the update in information.
여전히 같은 오류가 발생합니다. 패키지 작성자가 온라인에서 깃허브 이슈에서 이 문제를 발견했습니다. 여기에 붙여 넣으면 문제 해결에 도움이 될 수 있습니다. 그건 그렇고, 내가 얻는 오류는 이전과 거의 동일합니다. 이것은 제가 온라인에서 찾은 것입니다 (도움이 되었으면 좋겠습니다): 

아래 문법을 사용하여 직접 데이터 세트를 만들었습니다;

에서 토치\_지오메트릭.데이터 가져오기 데이터
torch\_geometric.loader에서 DataLoader를 가져옵니다.

data\_list = [Data(...), ..., Data(...)]
loader = DataLoader(data\_list, batch\_size=32)

data\_list의 길이는 98이며(그래프가 98개 있습니다)
각 Data(..)의 차원은 Data(x=[94, 2], edge\_index=[2, 874], edge\_attr=[874, 2], y=[1])입니다.

넷을 실행하는 동안 오류가 발생했기 때문에 코드의 일부를 테스트했습니다.

torch.nn에서 Linear를 가져옵니다.
import torch.nn.functional as F
torch\_geometric.nn에서 GCNConv를 가져옵니다.
from torch\_geometric.nn import global\_mean\_pool
class MY\_NET(torch.nn.Module):
 def \_\_init\_\_(self):
 super(MY\_NET, self).\_\_init\_\_()
 self.indim=2
 self.dim1=32
 n1 = nn.Sequential(nn.Linear(2, 1), nn.ReLU(), nn.Linear(1, self.dim1 \* self.indim))
 self.conv1 = NNConv(self.indim, self.dim1, n1, aggr="add")

 def forward(self, x, edge\_index, edge\_attr,size=(94,874)):
 x = self.conv1(x, edge\_index, edge\_attr) 
 반환 x

model = MY\_NET()
print(model)

def train():
 train\_loader의 데이터에 대해:
 out =model(data.x,data.edge\_index,data.edge\_attr)

train()

을 실행했는데 아래와 같은 오류가 발생했습니다;

~/.conda/envs/jiyeony2/lib/python3.8/site-packages/torch\_geometric/nn/conv/message\_passing.py에서 propagate(self, edge\_index, size, \*\*kwargs)
 259 # 그렇지 않으면 두 함수를 따로 실행하세요.
 260 elif isinstance(edge\_index, Tensor) 또는 not self.fuse:
--> 261 coll\_dict = self.\_\_collect\_\_(self.\_\_user\_args\_\_, edge\_index, size,
 262 kwargs)
 263 

~/.conda/envs/jiyeony2/lib/python3.8/site-packages/torch\_geometric/nn/conv/message\_passing.py에서 \_\_collect\_\_(self, args, edge\_index, size, kwargs)
 169 if isinstance(데이터, 텐서):
 170 self.\_\_set\_size\_\_(size, dim, data)
--> 171 data = self.\_\_lift\_\_(data, edge\_index,
 172 j if arg[-2:] == '\_j' else i)
 173 

~/.conda/envs/jiyeony2/lib/python3.8/site-packages/torch\_geometric/nn/conv/message\_passing.py in \_\_lift\_\_(self, src, edge\_index, dim)
 139 if isinstance(edge\_index, Tensor):
 140 index = edge\_index[dim]
--> 141 return src.index\_select(self.node\_dim, index)
 142 elif isinstance(edge\_index, SparseTensor):
 143 if dim == 1:

IndexError: 자체에서 인덱스가 범위를 벗어남

모든 데이터에 대해 data.edge\_index.max() < data.x.size(0)인지 확인할 수 있나요?

그것은 내 모든 데이터에 대해 tensor(False)를 반환합니다.

print(data.x.shape)를 사용하면 torch.Size([94,2])를 반환합니다.
그리고 print(data.edge\_index.shape)는 torch.Size([2,874])를 반환합니다.

어쨌든, 왜 내 데이터가 data.edge\_index.max() < data.x.size(0)를 만족해야 하는지 모르겠습니다.
를 만족해야 하는 이유를 모르겠습니다. x는 노드 특징 행렬이고 edge\_index는 쿠 형식이라고 생각했기 때문입니다.
또한, 나는 그것을 고치는 방법을 잃어 버렸습니다 ...

감사합니다.

아, edge\_index에 1을 빼면 도움이 되었어요. 정말 고마워요

네, edge\_index는 첫 번째 차원에서 x를 인덱싱하는 데 사용되는 인덱스를 보유하므로 [0, x.size(0) - 1] 범위의 값만 포함해야 합니다.
=========================================================

위에서 언급한 문제가 버그 해결에 도움이 되었기를 바랍니다. 업데이트된 정보를 고려하여 스크립트를 수정합니다.