【问题标题】:Keras metrics during model.fitmodel.fit 期间的 Keras 指标
【发布时间】:2020-03-05 20:29:01
【问题描述】:

这些指标是否在model.fit(x_train, y_train, epochs=3, batch_size=128) 运行时显示

945792/1424460 [==================>...........] - ETA: 5:22 - loss: 0.7029 - accuracy: 0.7312
945920/1424460 [==================>...........] - ETA: 5:22 - loss: 0.7029 - accuracy: 0.7312
946048/1424460 [==================>...........] - ETA: 5:22 - loss: 0.7029 - accuracy: 0.7312

关于的信息

  • 当前小批量的平均损失? (即最后 128 个训练输入)
  • 自纪元开始以来的平均损失?
  • 自所有 epoch 开始(即训练过程开始)以来的平均损失?

同样的问题也适用于准确性:准确计算的是什么?

【问题讨论】:

    标签: python tensorflow keras


    【解决方案1】:

    自纪元开始以来的平均损失。

    一般来说是这样的(这是伪代码):

    for epoch in range(epochs):
        total_batches = 0
        total_loss = 0
    
        for batch in range(batches):
            total_loss += calculate_loss(batch)
            total_batches += 1
    
            displayed_loss = total_loss / total_batches
    

    每个指标都是如此。但同样,指标可以根据用户的喜好编写。通常它们是批次的平均值。

    对于每个批次:计算出批次损失(其中大部分是样本的平均值,但损失可能会返回您编写的任何代码)


    当损失在演变时(在您的示例中它没有演变,它被冻结),您会注意到上一个时期显示的损失与当前时期的初始损失之间存在显着差异。这种差异是因为之前的损失也考虑了模型没有得到很好训练的初始批次。

    【讨论】:

      猜你喜欢
      • 2019-06-28
      • 1970-01-01
      • 1970-01-01
      • 2023-01-05
      • 2023-03-22
      • 1970-01-01
      • 2021-08-17
      • 2020-01-05
      • 1970-01-01
      相关资源
      最近更新 更多