The error message 'RuntimeError: index 1 is out of bounds for dimension 0 with size 1' in your PyTorch Geometric GCNConv forward function indicates a problem with the shape of the 'edge_index' tensor. This tensor should have the shape (2, num_edges), where the first row represents the source nodes and the second row represents the target nodes of each edge.

This error typically occurs due to:

  1. Incorrect Edge Definition: The 'edge_index' tensor might be constructed incorrectly in your 'MyDataset' class. Double-check that the edges are properly defined and the corresponding node indices are within the valid range.

  2. Shape Discrepancies: The 'edge_index' tensor might have an unexpected shape. Verify its shape before passing it to the 'GCNConv' forward function.

Troubleshooting Steps:

  1. Inspect 'edge_index' Shape: Add a print statement to check the shape of 'edge_index' right before passing it to the 'GCNConv' forward function:
def forward(self, data):
    x, edge_index = data.x, data.edge_index
    print('edge_index shape:', edge_index.shape)  # Check the shape
    ... 
  1. Review 'MyDataset' Class: Examine the code in the 'MyDataset' class, particularly where you read and process edge data from the 'edges_L.csv' file. Ensure that the edge indices are generated correctly and correspond to the actual node indices.

  2. Debugging with Print Statements: Insert print statements within the 'MyDataset' class to trace the values of 'edge_index' during its construction. This will help pinpoint the source of the incorrect shape.

Example:

class MyDataset(torch.utils.data.Dataset):
    def __init__(self, root, transform=None, pre_transform=None):
        ... 
        self.edges = pd.read_csv(os.path.join(root, 'input', 'edges_L.csv'), header=None)
        print('edges shape:', self.edges.shape)  # Check shape of edge DataFrame
        ... 
        edge_index = torch.tensor(self.edges.values, dtype=torch.long).t().contiguous()
        print('edge_index shape:', edge_index.shape)  # Check shape after conversion
        ... 

By carefully reviewing the 'edge_index' shape and the code responsible for generating it, you can resolve the 'Index out of bounds' error and ensure your graph convolutional network functions correctly.

PyTorch Geometric GCNConv Error: Index Out of Bounds for Dimension 0

原文地址: https://www.cveoy.top/t/topic/pcZf 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录