报错代码
源代码:
dataset = Planetoid(root='data', name='CiteSeer')
dataset = dataset[0]
dataset = dataset.to(device)
num_in_feats, num_out_feats = dataset.num_node_features, dataset.num_classes
报错:
F:\Anaconda3\python.exe "F:/PyCharm 2021.3.3/projects/gnn-node-classfication/pyg/gat.py"
Traceback (most recent call last):
File "F:\Anaconda3\lib\site-packages\torch_geometric\data\storage.py", line 48, in __getattr__
return self[key]
File "F:\Anaconda3\lib\site-packages\torch_geometric\data\storage.py", line 68, in __getitem__
return self._mapping[key]
KeyError: 'num_classes'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "F:/PyCharm 2021.3.3/projects/gnn-node-classfication/pyg/gat.py", line 21, in <module>
num_in_feats, num_out_feats = dataset.num_node_features, dataset.num_classes
File "F:\Anaconda3\lib\site-packages\torch_geometric\data\data.py", line 362, in __getattr__
return getattr(self._store, key)
File "F:\Anaconda3\lib\site-packages\torch_geometric\data\storage.py", line 51, in __getattr__
f"'{self.__class__.__name__}' object has no attribute '{key}'")
AttributeError: 'GlobalStorage' object has no attribute 'num_classes'
Process finished with exit code 1
解决
之前PyG中CiteSeerDataset还有num_classes,现在好像没了,所以只能从data.y下手了:
num_in_feats, num_out_feats = dataset.num_node_features, torch.max(dataset.y).item() + 1