培训和验证的准确性和损失开始增加

时间:2020-06-27 01:11:36

标签: deep-learning neural-network conv-neural-network

我正在训练具有过滤器大小= 251 ,5个级别和膨胀因子= 2 ^ 5 = 32 的时间卷积网络。因为我需要覆盖的接受域是15000。 在前25个时期中,我注意到训练和验证集的验证性和准确性都在增加,而测试集的准确性仅为 20%。

Epoch 000: | Train Loss: 0.14442 | Val Loss: 0.10309 | Train Acc: 0.144| Val Acc                                                                                                             : 0.625
Epoch 001: | Train Loss: 0.21197 | Val Loss: 0.07434 | Train Acc: 0.212| Val Acc                                                                                                             : 0.670
Epoch 002: | Train Loss: 0.25545 | Val Loss: 0.05910 | Train Acc: 0.255| Val Acc                                                                                                             : 0.710
Epoch 003: | Train Loss: 0.28689 | Val Loss: 0.04986 | Train Acc: 0.287| Val Acc                                                                                                             : 0.730
Epoch 004: | Train Loss: 0.31173 | Val Loss: 0.04456 | Train Acc: 0.312| Val Acc                                                                                                             : 0.746
Epoch 005: | Train Loss: 0.33284 | Val Loss: 0.04160 | Train Acc: 0.333| Val Acc                                                                                                             : 0.760
Epoch 006: | Train Loss: 0.35161 | Val Loss: 0.04002 | Train Acc: 0.352| Val Acc                                                                                                             : 0.763
Epoch 007: | Train Loss: 0.36873 | Val Loss: 0.03922 | Train Acc: 0.369| Val Acc                                                                                                             : 0.768
Epoch 008: | Train Loss: 0.38461 | Val Loss: 0.03929 | Train Acc: 0.385| Val Acc                                                                                                             : 0.765
Epoch 009: | Train Loss: 0.39947 | Val Loss: 0.03959 | Train Acc: 0.399| Val Acc                                                                                                             : 0.770
Epoch 010: | Train Loss: 0.41351 | Val Loss: 0.03997 | Train Acc: 0.414| Val Acc                                                                                                             : 0.779

.
.
.
Epoch 022: | Train Loss: 0.53773 | Val Loss: 0.05469 | Train Acc: 0.538| Val Acc                                                                                                             : 0.793
Epoch 023: | Train Loss: 0.54532 | Val Loss: 0.05588 | Train Acc: 0.545| Val Acc                                                                                                             : 0.792
Epoch 024: | Train Loss: 0.55257 | Val Loss: 0.05720 | Train Acc: 0.553| Val Acc                                                                                                             : 0.795

我有5个类可以预测,并且我正在使用TCN的pytorch实现。 TCN模块如下;

class TCN(nn.Module):
def __init__(self, input_size, output_size, num_channels, kernel_size, dropout):
    super(TCN, self).__init__()
    self.tcn = TemporalConvNet(input_size, num_channels, kernel_size, dropout=dropout)
    self.linear = nn.Linear(num_channels[-1], output_size)

def forward(self, x):
    output = self.tcn(x)
    output = self.linear(output[:, :, -1])
    return output.double()

这是TCN:TCN.py

为什么损耗和精度会增加,但无法进行测试?我是否需要试验其他过滤器尺寸/膨胀因子,或者是否需要为向前方法添加S型函数? 我正在使用CrossEntropyLoss和SGD优化器。这些指标可以表明什么想法?我有点迷茫。 谢谢

1 个答案:

答案 0 :(得分:0)

您还面临着过度拟合的问题,而且具有当前超参数的模型无法概括该问题的解决方案。我建议简化模型本身,并尝试使用正则化技术以获得更好的结果