import torch.nn as nnclass MLP(nn.Module): def __init__(self): super().__init__() self.layers = nn.Sequential( nn.Linear(dataset.num_node_features, 64), nn.ReLU(), nn.Linear(64, 32), nn.ReLU(), nn.Linear(32, dataset.num_classes) ) def forwar...
num_features, 16) # 输入特征数为节点特征数,输出特征数为16 self.conv2 = GraphConv(16, dataset.num_classes) # 输入特征数为16,输出特征数为节点类别数 这里,我们定义了两个GraphConv层。第一层将节点的特征从num_features维度映射到16维,第二层将节点的特征从16维映射到num_classes维度。dataset.num_fe...
num_features, 128, 64).to(device) optimizer = torch.optim.Adam(params=model.parameters(), lr=0.01) criterion = torch.nn.BCEWithLogitsLoss() model = train_link_predictor(model, train_data, val_data, optimizer, criterion) test_auc = eval_link_predictor(model, test_data) print(f"Test: ...
num_features epochs = 100 # model model = GAE(GCNEncoder(num_features, out_channels)) print(model) # move to GPU (if available) device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') model = model.to(device) x = data.x.to(device) train_pos_edge_index = data....
dataset=KarateClub()print(f'Dataset: {dataset}:')print('===')print(f'Number of graphs: {len(dataset)}')print(f'Number of features: {dataset.num_features}')print(f'Number of classes: {dataset.num_classes}') 代码语言:javascript 代码运行次数...
num_features, 16, cached=True) self.conv2 = GCNConv(16, dataset.num_classes, cached=True) def forward(self, x, adj_t): x = self.conv1(x, adj_t) x = F.relu(x) x = self.conv2(x, adj_t) return F.log_softmax(x, dim=1) model = GNN() optimizer = torch.optim.Adam(...
num_features 或 num_node_features 每个节点上的特征维度 shuffle(return_perm: bool = False) 随机排序;等价于 torch.randperm(len(dataset)) 3. Data Data类的文档:torch_geometric.data.Data Data是PyG中表示图的Python object 3.1 Data attributes ...
nn.Linear(32, dataset.num_classes) ) def forward(self, data): x = data.x # only using node features (x) output = self.layers(x) return output 我们用一个普通的Pytorch训练/验证流程来定义训练和评估函数。 def train_node_class...
num_features = dataset.num_features num_classes = dataset.num_classes# 建立需要训练的节点分割数据集data.train_mask = torch.zeros(num_nodes, dtype=torch.bool) data.val_mask = torch.zeros(num_nodes, dtype=torch.bool) data.test_mask = torch.zeros(num_nodes, dtype=torch.bool) ...
x:节点特征矩阵,形状为[num_nodes, num_features]的张量。 edge_index:边的索引矩阵,形状为[2, num_edges]的张量,其中每一列表示一条边的两个节点索引。 y:节点标签,形状为[num_nodes]的张量,每个元素表示节点的类别标签。 train_mask:训练集掩码,形状为[num_nodes]的布尔张量,表示哪些节点属于训练集。 val...