如何解决更新“状态”时损失增加
我想更新状态,所以这是我写的:
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,0.65625),5.4126678)])
round 3,0.6018519),6.37924)])
round 4,0.587963),6.5979366)])
round 5,0.6400463),5.7463913)])
round 6,0.6909722),4.872179)])
round 7,0.6469907),5.6218925)])
round 8,0.7037037),4.723536)])
round 9,0.7002315),4.774122)])
round 10,0.7060185),4.6346316)])
round 11,0.6724537),5.213738)])
round 12,0.6608796),5.450448)])
解决方法
这些是培训指标还是测试指标?值得注意的是,训练指标在联邦学习中具有“奇怪”的行为;见MSE error different during training and evaluation in tensorflow federated。
如果 create_keras_model
正在加载已经准确了解数据分布的预训练权重,这可能是一些微调步骤。但是,如果这些是训练指标,则它们可能无法说明全部情况(如上所述)。我还建议多跑几轮,在联邦学习中,10 轮通常是不够的。
有关解释机器学习指标的更多信息,请参阅How to interpret increase in both loss and accuracy?。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。