0

I would like to update state, So here is what i wrote:

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

My problem is loss increase contrary to the accuracy which makes a small decrease:

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)])

Is there another solution to solve this problem ? Thanks

4

1 回答 1

0

这些是训练指标还是测试指标?需要注意的是,训练指标在联邦学习中具有“奇怪”的行为;在 tensorflow federated 中查看MSE 误差在训练和评估期间的不同。

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

有关一般解释机器学习指标的更多信息,请参阅如何解释损失和准确性的增加?.

于 2021-05-17T12:20:46.957 回答