本文整理汇总了Python中torch_geometric.datasets.Planetoid方法的典型用法代码示例。如果您正苦于以下问题:Python datasets.Planetoid方法的具体用法?Python datasets.Planetoid怎么用?Python datasets.Planetoid使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类torch_geometric.datasets
的用法示例。
在下文中一共展示了datasets.Planetoid方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: load_data
# 需要导入模块: from torch_geometric import datasets [as 别名]
# 或者: from torch_geometric.datasets import Planetoid [as 别名]
def load_data(dataset="Cora", supervised=True, ):
'''
support semi-supervised and supervised
:param dataset:
:param supervised:
:return:
'''
path = osp.join(osp.dirname(osp.realpath(__file__)), '..', 'data', dataset)
if dataset in ["CS", "Physics"]:
dataset = Coauthor(path, dataset, T.NormalizeFeatures())
elif dataset in ["Computers", "Photo"]:
dataset = Amazon(path,dataset, T.NormalizeFeatures())
elif dataset in ["Cora", "Citeseer", "Pubmed"]:
dataset = Planetoid(path, dataset, T.NormalizeFeatures())
data = dataset[0]
if supervised:
data.train_mask = torch.zeros(data.num_nodes, dtype=torch.uint8)
data.train_mask[:-1000] = 1
data.val_mask = torch.zeros(data.num_nodes, dtype=torch.uint8)
data.val_mask[-1000: -500] = 1
data.test_mask = torch.zeros(data.num_nodes, dtype=torch.uint8)
data.test_mask[-500:] = 1
data.num_classes = data.y.max().item() + 1
return dataset
示例2: get_planetoid_dataset
# 需要导入模块: from torch_geometric import datasets [as 别名]
# 或者: from torch_geometric.datasets import Planetoid [as 别名]
def get_planetoid_dataset(name, normalize_features=False, transform=None):
path = osp.join(osp.dirname(osp.realpath(__file__)), '..', 'data', name)
dataset = Planetoid(path, name)
if transform is not None and normalize_features:
dataset.transform = T.Compose([T.NormalizeFeatures(), transform])
elif normalize_features:
dataset.transform = T.NormalizeFeatures()
elif transform is not None:
dataset.transform = transform
return dataset
示例3: get_dataset
# 需要导入模块: from torch_geometric import datasets [as 别名]
# 或者: from torch_geometric.datasets import Planetoid [as 别名]
def get_dataset(name: str, use_lcc: bool = True) -> InMemoryDataset:
path = os.path.join(DATA_PATH, name)
if name in ['Cora', 'Citeseer', 'Pubmed']:
dataset = Planetoid(path, name)
elif name in ['Computers', 'Photo']:
dataset = Amazon(path, name)
elif name == 'CoauthorCS':
dataset = Coauthor(path, 'CS')
else:
raise Exception('Unknown dataset.')
if use_lcc:
lcc = get_largest_connected_component(dataset)
x_new = dataset.data.x[lcc]
y_new = dataset.data.y[lcc]
row, col = dataset.data.edge_index.numpy()
edges = [[i, j] for i, j in zip(row, col) if i in lcc and j in lcc]
edges = remap_edges(edges, get_node_mapper(lcc))
data = Data(
x=x_new,
edge_index=torch.LongTensor(edges),
y=y_new,
train_mask=torch.zeros(y_new.size()[0], dtype=torch.bool),
test_mask=torch.zeros(y_new.size()[0], dtype=torch.bool),
val_mask=torch.zeros(y_new.size()[0], dtype=torch.bool)
)
dataset.data = data
return dataset
示例4: load_data
# 需要导入模块: from torch_geometric import datasets [as 别名]
# 或者: from torch_geometric.datasets import Planetoid [as 别名]
def load_data(dataset_name):
path = osp.join(osp.dirname(osp.realpath(__file__)), '.', 'data', dataset_name)
dataset = Planetoid(path, dataset_name, T.TargetIndegree())
num_features = dataset.num_features
data = GAE.split_edges(GAE, dataset[0])
data.train_pos_edge_index = gutils.to_undirected(data.train_pos_edge_index)
data.val_pos_edge_index = gutils.to_undirected(data.val_pos_edge_index)
data.test_pos_edge_index = gutils.to_undirected(data.test_pos_edge_index)
data.edge_index = torch.cat([data.train_pos_edge_index, data.val_pos_edge_index, data.test_pos_edge_index], dim=1)
data.edge_train_mask = torch.cat([torch.ones((data.train_pos_edge_index.size(-1))),
torch.zeros((data.val_pos_edge_index.size(-1))),
torch.zeros((data.test_pos_edge_index.size(-1)))], dim=0).byte()
data.edge_val_mask = torch.cat([torch.zeros((data.train_pos_edge_index.size(-1))),
torch.ones((data.val_pos_edge_index.size(-1))),
torch.zeros((data.test_pos_edge_index.size(-1)))], dim=0).byte()
data.edge_test_mask = torch.cat([torch.zeros((data.train_pos_edge_index.size(-1))),
torch.zeros((data.val_pos_edge_index.size(-1))),
torch.ones((data.test_pos_edge_index.size(-1)))], dim=0).byte()
data.edge_type = torch.zeros(((data.edge_index.size(-1)),)).long()
data.batch = torch.zeros((1, data.num_nodes), dtype=torch.int64).view(-1)
data.num_graphs = 1
return data, num_features
示例5: load_data
# 需要导入模块: from torch_geometric import datasets [as 别名]
# 或者: from torch_geometric.datasets import Planetoid [as 别名]
def load_data(dataset_name):
path = osp.join(osp.dirname(osp.realpath(__file__)), '.', 'data', dataset_name)
dataset = Planetoid(path, dataset_name, T.TargetIndegree())
train_loader = DataLoader(dataset, batch_size=1)
return dataset, train_loader
示例6: __init__
# 需要导入模块: from torch_geometric import datasets [as 别名]
# 或者: from torch_geometric.datasets import Planetoid [as 别名]
def __init__(self):
dataset = "Cora"
path = osp.join(osp.dirname(osp.realpath(__file__)), "../..", "data", dataset)
if not osp.exists(path):
Planetoid(path, dataset, transform=T.TargetIndegree())
super(CoraDataset, self).__init__(path, dataset, transform=T.TargetIndegree())
示例7: load_data
# 需要导入模块: from torch_geometric import datasets [as 别名]
# 或者: from torch_geometric.datasets import Planetoid [as 别名]
def load_data(dataset="Cora", supervised=False, full_data=True):
'''
support semi-supervised and supervised
:param dataset:
:param supervised:
:return:
'''
path = osp.join(osp.dirname(osp.realpath(__file__)), '..', 'data', dataset)
if dataset in ["CS", "Physics"]:
dataset = Coauthor(path, dataset, T.NormalizeFeatures())
elif dataset in ["Computers", "Photo"]:
dataset = Amazon(path,dataset, T.NormalizeFeatures())
elif dataset in ["Cora", "Citeseer", "Pubmed"]:
dataset = Planetoid(path, dataset, T.NormalizeFeatures())
data = dataset[0]
if supervised:
if full_data:
data.train_mask = torch.zeros(data.num_nodes, dtype=torch.uint8)
data.train_mask[:-1000] = 1
data.val_mask = torch.zeros(data.num_nodes, dtype=torch.uint8)
data.val_mask[-1000: -500] = 1
data.test_mask = torch.zeros(data.num_nodes, dtype=torch.uint8)
data.test_mask[-500:] = 1
else:
data.train_mask = torch.zeros(data.num_nodes, dtype=torch.uint8)
data.train_mask[:1000] = 1
data.val_mask = torch.zeros(data.num_nodes, dtype=torch.uint8)
data.val_mask[1000: 1500] = 1
data.test_mask = torch.zeros(data.num_nodes, dtype=torch.uint8)
data.test_mask[1500:2000] = 1
return data
示例8: load_data
# 需要导入模块: from torch_geometric import datasets [as 别名]
# 或者: from torch_geometric.datasets import Planetoid [as 别名]
def load_data(dataset="Cora", supervised=False, full_data=True):
'''
support semi-supervised and supervised
:param dataset:
:param supervised:
:return:
'''
path = osp.join(osp.dirname(osp.realpath(__file__)), '..', 'data', dataset)
if dataset in ["CS", "Physics"]:
dataset = Coauthor(path, dataset, T.NormalizeFeatures())
elif dataset in ["Computers", "Photo"]:
dataset = Amazon(path, dataset, T.NormalizeFeatures())
elif dataset in ["Cora", "Citeseer", "Pubmed"]:
dataset = Planetoid(path, dataset, T.NormalizeFeatures())
data = dataset[0]
if supervised:
if full_data:
data.train_mask = torch.zeros(data.num_nodes, dtype=torch.uint8)
data.train_mask[:-1000] = 1
data.val_mask = torch.zeros(data.num_nodes, dtype=torch.uint8)
data.val_mask[data.num_nodes - 1000: data.num_nodes - 500] = 1
data.test_mask = torch.zeros(data.num_nodes, dtype=torch.uint8)
data.test_mask[data.num_nodes - 500:] = 1
else:
data.train_mask = torch.zeros(data.num_nodes, dtype=torch.uint8)
data.train_mask[:1000] = 1
data.val_mask = torch.zeros(data.num_nodes, dtype=torch.uint8)
data.val_mask[data.num_nodes - 1000: data.num_nodes - 500] = 1
data.test_mask = torch.zeros(data.num_nodes, dtype=torch.uint8)
data.test_mask[data.num_nodes - 500:] = 1
return data
示例9: test_citeseer
# 需要导入模块: from torch_geometric import datasets [as 别名]
# 或者: from torch_geometric.datasets import Planetoid [as 别名]
def test_citeseer():
root = osp.join('/', 'tmp', str(random.randrange(sys.maxsize)))
dataset = Planetoid(root, 'Citeseer')
loader = DataLoader(dataset, batch_size=len(dataset))
assert len(dataset) == 1
assert dataset.__repr__() == 'Citeseer()'
for data in loader:
assert data.num_graphs == 1
assert data.num_nodes == 3327
assert data.num_edges / 2 == 4552
assert len(data) == 7
assert list(data.x.size()) == [data.num_nodes, 3703]
assert list(data.y.size()) == [data.num_nodes]
assert data.y.max() + 1 == 6
assert data.train_mask.sum() == 6 * 20
assert data.val_mask.sum() == 500
assert data.test_mask.sum() == 1000
assert (data.train_mask & data.val_mask & data.test_mask).sum() == 0
assert list(data.batch.size()) == [data.num_nodes]
assert data.contains_isolated_nodes()
assert not data.contains_self_loops()
assert data.is_undirected()
dataset = Planetoid(root, 'Citeseer', split='full')
data = dataset[0]
assert data.val_mask.sum() == 500
assert data.test_mask.sum() == 1000
assert data.train_mask.sum() == data.num_nodes - 1500
assert (data.train_mask & data.val_mask & data.test_mask).sum() == 0
dataset = Planetoid(root, 'Citeseer', split='random',
num_train_per_class=11, num_val=29, num_test=41)
data = dataset[0]
assert data.train_mask.sum() == dataset.num_classes * 11
assert data.val_mask.sum() == 29
assert data.test_mask.sum() == 41
assert (data.train_mask & data.val_mask & data.test_mask).sum() == 0
shutil.rmtree(root)