可以发现,GCNConv中需要输入的是节点特征矩阵x和邻接关系edge_index,还有一个可选项edge_weight。因此我们首先: x, edge_index = data.x, data.edge_index x = self.conv1(x, edge_index) x = F.relu(x) x = F.dropout(x, training=self.training) 此时我们不妨输出一下x及其size: tensor([[0.0000,...
edge_index:这里可以理解为图的邻接矩阵,但是要注意这里要将邻接矩阵转换成COO格式,shape = [2, 边的数量],type = torch.long。 edge_attr:边的特征矩阵,shape = [边的个数,边的特征数] y:标签,如果任务是图分类,shape = [1, 图的标签数];如果是节点分类,shape = [节点个数,节点的标签数]。(这里注...
loss = F.nll_loss(out[data.train_mask], data.y[data.train_mask]) # 计算损失函数值loss.backward() # 反向传播计算梯度值optimizer.step() # 更新权重参数值model.eval() # 设置模型为评估模式 , pred = model(data.x, data.edge_index).max(dim=1) # 获取预测结果correct = int((pred == da...
edge_index = torch.LongTensor(np.array([edge for edge in graph.edges()]).T) X = torch.FloatTensor(np.random.uniform(-1, 1, (number_of_nodes, in_channels))) return X, edge_index def create_mock_edge_weight(edge_index): """ Creating a mock edge weight tensor. """ return torch....
可以发现,GCNConv中需要输入的是节点特征矩阵x和邻接关系edge_index,还有一个可选项edge_weight。因此我们首先: 代码语言:javascript 复制 x,edge_index=data.x,data.edge_index x=self.conv1(x,edge_index)x=F.relu(x)x=F.dropout(x,training=self.training) ...
edge_index.shape: torch.Size([2, 10556]) data.edge_attr: None data.y: tensor([3, 4, 4, ..., 3, 3, 3]) data.y[data.train_mask] tensor([3, 4, 4, 0, 3, 2, 0, 3, 3, 2, 0, 0, 4, 3, 3, 3, 2, 3, 1, 3, 5, 3, 4, 6, ...
(edge_index[:,0], edge_index[:,1])), shape=(num_nodes, num_nodes), dtype="float32")returnadjacency@staticmethoddefread_data(path):"""使用不同的方式读取原始数据以进一步处理"""name = osp.basename(path)ifname =="ind.cora.test.index": ...
1、Pyg的基本使用方法(参考官网) 1.1、图的表示方法 data.x: 节点的特征的shape[num_nodes, num_node_features] data.edge_index:代表图的连接性,形状是[2, num_edges] data.edge_attr: 边的特征的shape [
edge_index = torch.tensor([[0, 1, 1, 2], [1, 0, 2, 1]], dtype=torch.long) # 初始化模型并进行前向传播 model = Net() output = model(x, edge_index) # 打印输出结果 print(output) “` 这是一个简单的GCN模型的实现例子,你可以根据自己的需求进行修改和扩展。值得注意的是,`torch_geom...
x=self.conv1(x,edge_index) x=F.relu(x) x=self.conv2(x,edge_index) returnx #初始化模型 model=GCNModel(input_dim=1,hidden_dim=16,output_dim=8) 1.2.3训练GCN模型 训练GCN模型通常需要定义一个损失函数,如交叉熵损失,用于优化推荐结果。这里我们假设有一个标签向量y,表示用户对物品的偏好: #假...