深度学习的损失分析

时间:2020-07-20 04:41:14

标签: parameters deep-learning pytorch data-loss

我是深度学习的新手,并且已经建立了一个图卷积网络。我使用了5折交叉验证。将平均值train_loss (blue)validate_loss (orange)一起绘制后,我得到了这个婴儿。

MSE loss

如您所见,从 validate_loss 的曲线趋势看,我的网络似乎学不到一些东西。 (我猜是数据?GCN框架?学习率?)

你们能专门帮助我找出错误吗?

我将不胜感激!如果您不明白我的意思,请告诉我。

class Scorer(nn.Module):
    """
    Three conv_layers and two fc_layers with Dropout
    """
    def __init__(self):
        super(Scorer, self).__init__()
        self.conv_layer1 = GraphConvNet(5, 64)
        self.conv_layer2 = GraphConvNet(64, 128)
        self.conv_layer3 = GraphConvNet(128, 256) # (I have tried delete conv_layer3)
        self.fc_layer1 = nn.Linear(256, 128)
        self.drop_layer1 = nn.Dropout(0.5)
        self.fc_layer2 = nn.Linear(128, 64)
        self.drop_layer2 = nn.Dropout(0.5)
        self.out_layer = nn.Linear(64, 1)


    def forward(self, NormLap, feat):
        h = self.conv_layer1(NormLap, feat)
        h = F.leaky_relu(h)
        h = self.conv_layer2(NormLap, h)
        h = F.leaky_relu(h)
        h = self.conv_layer3(NormLap, h)
        h = F.leaky_relu(h)
        h = self.fc_layer1(h)
        h = self.drop_layer1(h)
        h = F.leaky_relu(h)
        h = self.fc_layer2(h)
        h = self.drop_layer2(h)
        h = F.leaky_relu(h)
        h = self.out_layer(h)
        h = F.leaky_relu(h)

以下是我的网络和参数:


    # parameter setting
    learning_rate = 0.001 # (I have tried 1e-1, 1e-2)
    weight_decay = 1e-3  # (I have tried 1e-4)
    epochs = 500
    batch_size = 50  # (I have tried 30)

    model = Scorer()
    loss_func = nn.MSELoss()
    optimizer = th.optim.Adam(model.parameters(), lr=learning_rate, weight_decay=weight_decay)

1 个答案:

答案 0 :(得分:1)

这几乎应该是训练和验证损失所要做的。损失随着时间的流逝而下降;这就是优化器正在尝试做的。在valid_loss变平或趋于平稳之后,train_loss继续下降,这表明模型在约100个时期后开始过度拟合。 MSE 0.3对您的应用程序的好坏完全取决于应用程序,但是是的,优化器正在优化。

请查看此资源以了解如何解释损耗曲线:https://machinelearningmastery.com/learning-curves-for-diagnosing-machine-learning-model-performance/

“从validate_loss的曲线趋势看,我的网络似乎学到了一些东西”-如果您解释(非常详细::)这将对您有所帮助,以便得到更好的答案。除了看到的东西,您还希望看到什么?我看同一张图,在我看来,您的网络正在学习对数据进行建模并预测您要预测的内容。