首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GCN中数据集的验证

GCN中数据集的验证
EN

Stack Overflow用户
提问于 2021-03-22 22:17:14
回答 1查看 40关注 0票数 1

我正在使用PyTorch,我正在尝试对我的数据集进行验证,以获得我的神经网络中的最佳通道数。我有以下代码:

代码语言:javascript
复制
def train_during_validation():
    for epoch in range (1, 201):
        model.train()
        optimizer.zero_grad()
        out = model(data.x, data.edge_index)
        loss = criterion(out[data.val_mask], data.y[data.val_mask])
        loss.backward()
        optimizer.step()
    return loss

def validation():
    loss_val = np.zeros(50, dtype = float)
    model = GCN(hidden_channels = 1)
    loss_val = train_during_validation()
    print(loss_val)
        
validation()

在上面的代码中,我训练了前面定义的具有16个通道的模型,并获得了0.33的损失。但是一旦我开始在hidden_channel上做验证(参见下面的代码),我的损失就不会减少(仍然是1.95)。我不明白为什么。有人能解释一下吗?

代码语言:javascript
复制
def train_during_validation(model):
    print(f'Model:{model}')
    for epoch in range (1, 201):  
        model.train()
        optimizer.zero_grad()
        out = model(data.x, data.edge_index)
        loss = criterion(out[data.val_mask], data.y[data.val_mask])
        loss.backward()
        optimizer.step()
    return loss

def validation():
    loss_val = np.zeros(50, dtype = float)
    model = GCN(hidden_channels = 1)
    for i in range (50):
        model = GCN(hidden_channels = i)
        #print(model)
        loss_val[i] = train_during_validation(model)
        print(loss_val[i])
        
validation()
EN

回答 1

Stack Overflow用户

发布于 2021-03-23 03:21:22

最后,我发现了一个错误:必须在def train_during_validation(model)中定义optimizercriterion

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66747840

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档