gpt4 book ai didi

machine-learning - Keras 中每个时期的训练准确性是如何确定的?

转载 作者:行者123 更新时间:2023-11-30 08:36:08 24 4
gpt4 key购买 nike

我正在 Keras 中训练一个模型,如下所示:

model.fit(Xtrn, ytrn batch_size=16, epochs=50, verbose=1, shuffle=True,
callbacks=[model_checkpoint], validation_data=(Xval, yval))

拟合输出如下所示:

enter image description here

model.fit 中所示,我的批量大小为 16,总共有 8000 训练样本,如输出所示。因此,根据我的理解,训练每 16 批处理进行一次。这也意味着单个时期的训练运行 500 次(即 8000/16 =500)

因此,我们采用 Epoch 1/50 输出中打印的训练准确度,在本例中为 0.9381。我想知道0.9381的训练精度是如何得出的。

是:

  1. 每批处理执行的平均训练准确度(取500次训练的平均值)是否正确?

或,

  • 这是运行训练程序的 500 个实例中的最佳(或最大)训练准确度吗?
  • 最佳答案

    看一下 Keras 中的 BaseLogger,他们正在其中计算运行平均值。对于每个时期,准确度是该时期之前看到的所有批处理的平均值。

    class BaseLogger(Callback):
    """Callback that accumulates epoch averages of metrics.

    This callback is automatically applied to every Keras model.
    """

    def on_epoch_begin(self, epoch, logs=None):
    self.seen = 0
    self.totals = {}

    def on_batch_end(self, batch, logs=None):
    logs = logs or {}
    batch_size = logs.get('size', 0)
    self.seen += batch_size

    for k, v in logs.items():
    if k in self.totals:
    self.totals[k] += v * batch_size
    else:
    self.totals[k] = v * batch_size

    def on_epoch_end(self, epoch, logs=None):
    if logs is not None:
    for k in self.params['metrics']:
    if k in self.totals:
    # Make value available to next callbacks.
    logs[k] = self.totals[k] / self.seen

    关于machine-learning - Keras 中每个时期的训练准确性是如何确定的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48831242/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com