![](/img/trans.png)
[英]Training model with fit_generator does not show val_loss and val_acc and interrupted at first epoch
[英]Val_Acc > Training_Acc, yet Val_Loss < Training_Loss – explanation?
我正在训练一个带有一个隐藏层的神经网络,我总是遇到这种奇怪的行为: Val_Accuracy
比Training_Acc
,但Val_Loss
比Training_Loss
小。 我不明白,这可能表明什么。
我正在对 5 类目标进行分类,使用sparse_categorical_crossentropy
作为损失和sparse_categorical_accuracy
作为附加指标。 (是的,我的目标是一个整数,它不是一个热点——“稀疏”是正确的。)
我尝试了很多超参数的调整; 特别是LR和节点数量。
因为我使用的是 Dropout,所以我知道测试准确度/损失可能比训练更好。 问题是关于这两个指标的不同之处。
opti = tf.keras.optimizers.Adam(lr=0.00001)
batch = 100
mindelta = 0.0001
lr_red_factor = 0.4
acti = 'relu'
actilast = 'softmax'
kern = 'he_normal'
bias = 'zeros'
droprate = 0.4
target = 5
loss = 'sparse_categorical_crossentropy'#'mean_squared_error'
metrics = ['sparse_categorical_accuracy']
nodesperlayer = 30
howmanyhidden = 1
patience = (4000/(nodesperlayer*howmanyhidden))/batch
model = models.Sequential()
first = True
for _ in range(howmanyhidden):
if first:
model.add(layers.Dense(nodesperlayer, use_bias=True,
kernel_initializer=kern,
bias_initializer=bias,
input_dim=feats.columns.shape[0]))
first=False
else:
model.add(layers.Dense(nodesperlayer, use_bias=True,
kernel_initializer=kern,
bias_initializer=bias))
model.add(layers.BatchNormalization(axis=-1, momentum=0.99,
epsilon=0.001, center=True,
scale=True, beta_initializer='zeros',
gamma_initializer='ones',
moving_mean_initializer='zeros',
moving_variance_initializer='ones',
beta_regularizer=None,
gamma_regularizer=None,
beta_constraint=None,
gamma_constraint=None))
model.add(layers.Activation(acti))
model.add(layers.Dropout(droprate)) #todo seed?
model.add(layers.Dense(target, activation = actilast))
model.compile(loss=loss, metrics=metrics, optimizer=opti)
只是为了澄清我的意思的众多例子之一:
损失:1.1345 - sparse_categorical_accuracy:0.5586 - val_loss:1.0571 - val_sparse_categorical_accuracy:0.6028
我认为您有一个概念上的误解,如果损失是您在训练期间将其最小化,因为损失越小越好,但准确度则相反,准确度越高越好。
训练的动态是这样的,随着损失的减少,准确度通常会增加,所以你看到的行为是正确的,完全符合预期。
好吧,损失和准确率是成反比的。 “损失”是对模型误差的度量,而准确度是对模型性能的度量。 由于验证误差/损失小于训练误差,因此验证准确度优于训练准确度才有意义。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.