val_loss
Keras 训练期间和训练期间有什么区别loss
?
例如
Epoch 1/20
1000/1000 [==============================] - 1s - loss: 0.1760, val_loss: 0.2032
在某些网站上,我在验证时读到,辍学不起作用。
val_loss
Keras 训练期间和训练期间有什么区别loss
?
例如
Epoch 1/20
1000/1000 [==============================] - 1s - loss: 0.1760, val_loss: 0.2032
在某些网站上,我在验证时读到,辍学不起作用。
val_loss
是交叉验证数据的成本函数值,损失是训练数据的成本函数值。在验证数据上,使用 dropout 的神经元不会丢弃随机神经元。原因是在训练过程中,我们使用 dropout 来添加一些噪声以避免过度拟合。在计算交叉验证期间,我们处于召回阶段而不是训练阶段。我们使用网络的所有功能。
感谢我们的一位亲爱的朋友,我从这里引用并解释了有用的内容。
validation_split
:在 0 和 1 之间浮动。要用作验证数据的训练数据的比例。该模型将分离这部分训练数据,不会对其进行训练,并将在每个 epoch 结束时评估该数据的损失和任何模型指标。在改组之前,从提供的x和 y数据中的最后一个样本中选择验证数据。
validation_data
: 元组 (x_val, y_val) 或元组 (x_val, y_val, val_sample_weights) 在每个 epoch 结束时评估损失和任何模型指标。模型不会根据这些数据进行训练。这将覆盖validation_split。
如你看到的
fit(self, x=None, y=None, batch_size=None, epochs=1, verbose=1, callbacks=None, validation_split=0.0, validation_data=None, shuffle=True, class_weight=None, sample_weight=None, initial_epoch=0, steps_per_epoch=None, validation_steps=None)
fit
中使用的方法Keras
有一个名为 validation_split 的参数,它指定用于评估每个 epoch 之后创建的模型的数据百分比。使用此数据量评估模型后,val_loss
如果您将详细设置为1
; 此外,正如文档明确指出的那样,您可以使用validation_data
或validation_split
。交叉验证数据用于调查您的模型是否过度拟合数据。这就是我们可以理解我们的模型是否具有泛化能力。
拟合模型时,您可以选择指定未训练的训练数据集部分。这与测试数据集是分开的。
中的“val”val_loss
代表“验证”。很遗憾他们没有把它写出来。
model.fit(validation_split=0.1)
# By default, this float is `0.`
或者,您可以明确地将数据提供给model.fit(validation_data=<see soruce code below>)
. 如果您想要一个分层(均匀分布)的验证集,这似乎是一个好主意。
用例是知道您的模型何时适合您的数据集。否则,您只是来回查看训练集和测试集的损失和准确性,想知道它是否平衡。