- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Keras 中记录“val_loss”和“val_acc”时遇到问题。 'loss' 和 'acc' 很容易,因为它们总是记录在 model.fit 的历史记录中。
如果在 fit
中启用验证,则会记录“val_loss” , 和 val_acc
如果启用验证和准确度监控,则记录。但是,这是什么意思?
我的节点是 model.fit(train_data, train_labels,epochs = 64,batch_size = 10,shuffle = True,validation_split = 0.2, callbacks=[history])
.
如您所见,我使用了 5 折交叉验证并打乱了数据。在这种情况下,我如何启用 validation
在 fit
记录“val_loss”和“val_acc”?
谢谢
最佳答案
从 Keras 文档中,我们有 models.fit
方法:
fit(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
)
'val_loss' is recorded if validation is enabled in fit, and val_accis recorded if validation and accuracy monitoring are enabled.
- 这是来自
keras.callbacks.Callback() 对象,如果用于上述 fit 方法中的回调参数。
from keras.callbacks import Callback
logs = Callback()
model.fit(train_data,
train_labels,
epochs = 64,
batch_size = 10,
shuffle = True,
validation_split = 0.2,
callbacks=[logs]
)
如果在
fit
中启用验证,则会记录“val_loss”意味着:当使用 model.fit 方法时,您使用的是
validatoin_split
参数或您使用
validation_data
参数
to specify the tuple (x_val, y_val) or tuple (x_val, y_val, val_sample_weights) on which to evaluate the loss and any model metrics at the end of each epoch.
.
A History object. Its History.history attribute is a record oftraining loss values and metrics values at successive epochs, as wellas validation loss values and validation metrics values (ifapplicable). - Keras Documentation ( Return value for model.fit method)
model.fit(train_data,
train_labels,
epochs = 64,
batch_size = 10,
shuffle = True,
validation_split = 0.2,
callbacks=[history]
)
历史.history 将为您输出一个字典:
loss
,
acc
,
val_loss
和
val_acc
, 如果你使用一个变量来保存 model.fit 如下:
history = model.fit(
train_data,
train_labels,
epochs = 64,
batch_size = 10,
shuffle = True,
validation_split = 0.2,
callbacks=[history]
)
history.history
输出将如下所示:
{'val_loss': [14.431451635814849,
14.431451635814849,
14.431451635814849,
14.431451635814849,
14.431451635814849,
14.431451635814849,
14.431451635814849,
14.431451635814849,
14.431451635814849,
14.431451635814849],
'val_acc': [0.1046428571712403,
0.1046428571712403,
0.1046428571712403,
0.1046428571712403,
0.1046428571712403,
0.1046428571712403,
0.1046428571712403,
0.1046428571712403,
0.1046428571712403,
0.1046428571712403],
'loss': [14.555215610322499,
14.555215534028553,
14.555215548560733,
14.555215588524229,
14.555215592157273,
14.555215581258137,
14.555215575808571,
14.55521561940511,
14.555215563092913,
14.555215624854679],
'acc': [0.09696428571428571,
0.09696428571428571,
0.09696428571428571,
0.09696428571428571,
0.09696428571428571,
0.09696428571428571,
0.09696428571428571,
0.09696428571428571,
0.09696428571428571,
0.09696428571428571]}
您可以使用
csvlogger
保存数据。像下面给出的评论或使用更长的方法将字典写入 csv 文件,如此处给出的
writing a dictionary to a csv
csv_logger = CSVLogger('training.log')
model.fit(X_train, Y_train, callbacks=[csv_logger])
关于python - 如何在 Keras 中保存 val_loss 和 val_acc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47382184/
val_acc 的值在历元内不会改变。 摘要: 我使用的是来自 Keras 的预训练 (ImageNet) VGG16; from keras.applications import VGG16 co
构建序列 simple_seq= [x for x in list(range(1000)) if x % 3 == 0] reshape 和分割后 x_train, x_test shape = (
在我的 Keras 代码中,我执行了以下操作: model.compile(loss='binary_crossentropy', optimizer=optimizer, metrics=['acc
当我拟合编译的顺序模型时,我缺少有关“val_acc”属性的信息。 我有一个使用“准确性”指标编译的顺序模型 model = Sequential() model.add(Dense(12, inpu
我正在训练猫/狗分类器。 我的模型是: model.add(layers.Conv2D(32, (3, 3), activation='relu', i
训练开始时,运行窗口中只显示loss和acc,缺少val_loss和val_acc。只有在最后,才会显示这些值。 model.add(Flatten()) model.add(Dense(512, a
我正在尝试通过 Theano 实现 CNN。我使用了 Keras 库。我的数据集是 55 个字母图像,28x28。 在最后一部分中,我收到此错误: train_acc=hist.history['ac
我有问题 tf.callbacks.ModelChekpoint .正如您在我的日志文件中看到的那样,警告总是在最后一次迭代之前出现 val_acc被计算。因此,Modelcheckpoint永远找不
我正在训练神经网络并得到以下输出。 loss 和 val_loss 都在减少,这让我很高兴。然而,val_acc 保持不变。这能有什么原因呢?我的数据非常不平衡,但我通过 sklearn comput
我使用 CNN 进行语义分割,创建 4 个输出分支,并自定义损失函数。 我正在使用以下版本: Keras 2.2.4 Python 3.6.8 tensorflow 1.12.0 训练时,进度条上不显
我试图在 keras 中绘制训练和测试学习曲线,但是,以下代码生成 KeyError: 'val_acc error . 官方文档说明为了使用 'val_acc'我需要启用我不了解也不知道如何在我的代
我将运行一些更大的模型并想尝试中间结果。 因此,我尝试在每个 epoch 之后使用检查点来保存最佳模型。 这是我的代码: model = Sequential() model.add(LSTM(700
我在 Keras 中记录“val_loss”和“val_acc”时遇到问题。 'loss' 和 'acc' 很容易,因为它们总是记录在 model.fit 的历史记录中。 如果在 fit 中启用验证,
我使用 metrics=['accuracy'] 编译了一个模型,并且我获得的值始终高于验证准确度 val_acc。例如: Epoch 19/20 53/53 [===================
我实现了一个数据生成器,将我的训练数据分成 256 个小批量,以避免内存错误。它在训练数据上运行,但在每个时期结束时不显示验证损失和验证准确性。我还将数据生成器应用于验证数据并定义了验证步骤。我不知道
我创建了一个用于序列分类(二进制)的 LSTM 网络,其中每个样本有 25 个时间步长和 4 个特征。以下是我的keras网络拓扑: 上图,Dense层之后的激活层使用了softmax函数。我使用 b
我是 Keras 的新手,对如何理解我的模型结果有一些疑问。这是我的结果:(为方便起见,我只在每个 epoch 之后粘贴 loss acc val_loss val_acc) 对 4160 个样本进行
model.compile(loss='categorical_crossentropy', optimizer=keras.optimizers.Adam(), metrics=['accuracy
CNN 使用大约 27.000 个图像样本,具有非常好的性能,但突然间,在第 42 轮,验证精度急剧下降(从 val_acc:0.9982 到 val_acc:0.0678)!任何想法?我应该停止最大
model.compile(loss='categorical_crossentropy', optimizer=keras.optimizers.Adam(), metrics=['accuracy
我是一名优秀的程序员,十分优秀!