alibaba / Elastic-Federated-Learning-Solution

Apache License 2.0
134 stars 39 forks source link

纵向联邦模式下,train_fn和eval_fn无法共存 #22

Closed renjian95 closed 2 years ago

renjian95 commented 2 years ago

纵向联邦模式下,train_fn和eval_fn无法共存,看起来似乎是因为在前向传播过程中, 二次调用了communicator, 导致程序挂起

JacobiSong commented 2 years ago

这可能是因为你的模型在运行train_fn时也并行跑了eval_fn的op,这二者都需要双方进行一次通信对每个batch数据进行校验。但由于目前还没有到eval阶段,所以并没有eval的batch数据,导致程序挂起。

renjian95 commented 2 years ago

只是定义了eval_fn, 在compile阶段加了eval_op, 但是在fit阶段只调用了train()函数,没有跑eval_op, 这样也不能跑起来

JacobiSong commented 2 years ago

你在读取数据的时候是否区分了eval模式和train模式?

renjian95 commented 2 years ago

感谢,已定位问题,数据读取区分了mode, 但是在model.add_metric时,未使用mode导致默认走了train模式,导致eval_op被调用了