Python学习之For训练

for i in range(5):
    print(i)
    print('range 5 test over')
for l in range(1,9):
    print(l)
    print('range 1 to 9 test over')
for n in range(1,9,2):
    print(n)
    print('range 1 to 9 add 2 test over')
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
GCN(Graph Convolutional Network,图卷积网络)是一种用于图数据的深度学习模型,可以用于图分类、节点分类和链接预测等任务。Python中有很多开源的GCN框架可以使用,例如DGL、PyTorch Geometric等,下面简要介绍一下如何使用DGL训练GCN。 首先需要安装DGL库,可以使用pip install dgl命令进行安装。接着,我们需要定义一个GCN模型,例如: ```python import dgl import torch import torch.nn as nn import torch.nn.functional as F class GCN(nn.Module): def __init__(self, in_feats, hidden_size, num_classes): super(GCN, self).__init__() self.conv1 = dgl.nn.GraphConv(in_feats, hidden_size) self.conv2 = dgl.nn.GraphConv(hidden_size, num_classes) def forward(self, g, inputs): h = self.conv1(g, inputs) h = F.relu(h) h = self.conv2(g, h) return h ``` 其中in_feats是输入特征的维度,hidden_size是隐藏层特征的维度,num_classes是输出类别的数量。这里使用了两层GraphConvolution层,并使用ReLU作为激活函数。 接着,我们需要定义一个训练函数,例如: ```python def train(model, g, features, labels, train_mask, optimizer): model.train() optimizer.zero_grad() logits = model(g, features) loss = F.cross_entropy(logits[train_mask], labels[train_mask]) loss.backward() optimizer.step() return loss.item() ``` 其中g表示图数据,features表示节点特征,labels表示节点标签,train_mask表示训练集的掩码。我们使用交叉熵作为损失函数,并使用优化器进行模型优化。 最后,在训练数据上进行训练,例如: ```python import dgl.data # 加载数据集 dataset = dgl.data.CoraGraphDataset() g = dataset features = g.ndata['feat'] labels = g.ndata['label'] train_mask = g.ndata['train_mask'] # 创建模型和优化器 model = GCN(in_feats=features.shape, hidden_size=16, num_classes=dataset.num_classes) optimizer = torch.optim.Adam(model.parameters(), lr=0.01) # 训练模型 for epoch in range(100): loss = train(model, g, features, labels, train_mask, optimizer) print('Epoch %d | Loss: %.4f' % (epoch + 1, loss)) ``` 这里使用了Cora数据集进行训练,每个节点有1433个特征和7个类别。我们使用Adam优化器进行训练,共进行100轮训练

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

指剑

捐点钱吧,小笼包8元一笼,谢谢

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值