微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

更新“状态”时损失增加

如何解决更新“状态”时损失增加

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

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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?