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

标签 machine-learning deep-learning keras

我正在 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/

    相关文章:

    python - 越来越大的正 WGAN-GP 损失

    machine-learning - 使用hdf5作为caffe输入,错误: HDF5Data does not transform data

    tensorflow - TensorFlow 1.1+ 中 Keras 和 tf.keras 有什么区别?

    python - 如何在 py_function 之后 reshape (图像,标签)数据集

    python - SpaCy 在解析文本时未分配正确的依赖标签

    machine-learning - lightgbm中min_sum_hessian_in_leaf的含义是什么?

    python - 将图像转换为适当的尺寸 PyTorch

    python - 当加载图像路径时,将数据拆分为训练集并在 keras 中进行验证

    machine-learning - weka 机器学习教程

    python - 使用 cv2 显示unet预测图像