首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >tensorflow联邦: TypeError:<lambda>()接受0个位置参数,但给出了1

tensorflow联邦: TypeError:<lambda>()接受0个位置参数,但给出了1
EN

Stack Overflow用户
提问于 2022-07-08 17:57:46
回答 1查看 103关注 0票数 0

我使用的是tensorflow-federated版本0.28。我试图实现日程安排,但是我得到了以下错误:

代码语言:javascript
复制
Traceback (most recent call last):
  File "/home/Desktop/FL/fedopt.py", line 340, in <module>
    iterative_process = build_weighted_fed_avg_with_optimizer_schedule(
  File "/home/anaconda3/envs/fl/lib/python3.9/site-packages/tensorflow_federated/python/learning/algorithms/fed_avg_with_optimizer_schedule.py", line 276, in build_weighted_fed_avg_with_optimizer_schedule
    client_work = build_scheduled_client_work(model_fn, client_learning_rate_fn,
  File "/home/anaconda3/envs/fl/lib/python3.9/site-packages/tensorflow_federated/python/learning/algorithms/fed_avg_with_optimizer_schedule.py", line 98, in build_scheduled_client_work
    whimsy_optimizer = optimizer_fn(1.0)
TypeError: <lambda>() takes 0 positional arguments but 1 was given

我的代码如下:

代码语言:javascript
复制
iterative_process = build_weighted_fed_avg_with_optimizer_schedule(
    model_fn,
    client_learning_rate_fn = lambda x: 0.001,
    client_optimizer_fn=lambda: optimizers.Adam(learning_rate= client_lr, beta_1 = 0.9, beta_2 = 0.999,epsilon = 1e-07),
    server_optimizer_fn=lambda: optimizers.SGD(learning_rate= server_lr), 
    use_experimental_simulation_loop=True)

有人能告诉我我在这里做错了什么吗?

EN

回答 1

Stack Overflow用户

发布于 2022-07-08 18:19:20

在上面的代码中,lambda设置为接受参数x

代码语言:javascript
复制
client_learning_rate_fn = lambda x: 0.001

你是想通过一些x0.001操纵,比如说乘法吗?见下文:

代码语言:javascript
复制
client_learning_rate_fn = lambda x: x*0.001

编辑:修正语法错误

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72915271

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档