训练损失和验证损失都很大(Python-Keras)

时间:2020-09-24 01:53:21

标签: python keras deep-learning scaling loss-function

我在keras的python中有一个奇怪的问题。网络输出显示出巨大的培训损失和验证损失值:

当前系数为 5.0 训练7200个样本,验证800个样本

Epoch 1/300

  • 4秒-损失:289033.6717-湄:1.4962-val_loss:245246.5262-val_mae:0.8944

Epoch 2/300

  • 4秒-损失:226937.6319-湄:0.8431-val_loss:211641.6300-val_mae:0.8809

Epoch 3/300

  • 4秒-亏损:201703.9288-湄:0.8447-val_loss:192584.1669-val_mae:0.8746

Epoch 4/300

  • 4秒-损失:185884.4973-湄:0.8455-val_loss:179480.7294-val_mae:0.8760

Epoch 5/300

  • 4秒-损失:174479.2118-湄:0.8443-val_loss:169587.4256-val_mae:0.8792

我认为该网络不完善。 MAE作为指标很好,但是为什么损失和验证损失很大?

有关数据:具有2400个功能部件的10个样本。 1200个要素的值分别为0、1、2,并且另一半是连续的。我只需按每列的平均值和标准差来缩放所有数据。

网络结构:

input = Input(name='input', shape=(p, ));

show_layer_info('Input', input);

dense1 = Dense(p, activation='relu',use_bias=bias, kernel_initializer=Constant(value=0.1),  kernel_regularizer=regularizers.l2(coeff))(input);
show_layer_info('Dense', dense1);


out_ = Dense(1, use_bias=bias, kernel_initializer='glorot_normal')(dense1)

show_layer_info('Dense', out_)

opt = Adam(lr=lr, decay = 0.1) # , beta_1=0.95, beta_2=0.999 , decay=0.1

model = Model(inputs=input, outputs=out_)

model.compile(loss='mse', optimizer=opt, metrics=['mae'])

l2正则化的系数为:

CoeffS = np.array([5, 1, 5e-1, 1e-1, 1e-2, 5e-2, 1e-3, 1e-4, 1e-5])
lr = 1e-3
num_epochs = 300
batch_size = 128

我们非常感谢您的帮助。

0 个答案:

没有答案