【问题标题】:loss increase when updating "State"更新“状态”时损失增加
【发布时间】:2021-05-17 10:17:55
【问题描述】:

我想更新状态,所以这是我写的:

def create_keras_model():
...
   return model
iterative_process = tff.learning.build_federated_averaging_process(..)

我的问题是损失增加,而准确性却略有下降:

round  1, metrics=OrderedDict([('categorical_accuracy', 0.4675926), ('loss', 8.581259)])
round  2, metrics=OrderedDict([('categorical_accuracy', 0.65625), ('loss', 5.4126678)])
round  3, metrics=OrderedDict([('categorical_accuracy', 0.6018519), ('loss', 6.37924)])
round  4, metrics=OrderedDict([('categorical_accuracy', 0.587963), ('loss', 6.5979366)])
round  5, metrics=OrderedDict([('categorical_accuracy', 0.6400463), ('loss', 5.7463913)])
round  6, metrics=OrderedDict([('categorical_accuracy', 0.6909722), ('loss', 4.872179)])
round  7, metrics=OrderedDict([('categorical_accuracy', 0.6469907), ('loss', 5.6218925)])
round  8, metrics=OrderedDict([('categorical_accuracy', 0.7037037), ('loss', 4.723536)])
round  9, metrics=OrderedDict([('categorical_accuracy', 0.7002315), ('loss', 4.774122)])
round 10, metrics=OrderedDict([('categorical_accuracy', 0.7060185), ('loss', 4.6346316)])
round 11, metrics=OrderedDict([('categorical_accuracy', 0.6724537), ('loss', 5.213738)])
round 12, metrics=OrderedDict([('categorical_accuracy', 0.6608796), ('loss', 5.450448)])

还有其他解决方案可以解决这个问题吗? 谢谢

【问题讨论】:

    标签: tensorflow-federated federated-learning


    【解决方案1】:

    这些是 training 指标还是 test 指标?需要注意的是,训练指标在联邦学习中具有“奇怪”的行为;见MSE error different during training and evaluation in tensorflow federated

    如果create_keras_model 正在加载已经准确学习数据分布的预训练权重,这可能是一些微调步骤。但是,如果这些是训练指标,它们可能并不能说明全部情况(如上所述)。我还建议多跑几轮,在联邦学习中,10 轮通常是不够的。

    有关解释机器学习指标的更多信息,请参阅How to interpret increase in both loss and accuracy?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-30
      • 1970-01-01
      • 2018-05-08
      • 2018-04-25
      • 1970-01-01
      • 2018-12-15
      • 2021-12-12
      • 2020-05-04
      相关资源
      最近更新 更多