tf.keras.losses报错:TypeError: missing 2 required positional arguments: ‘y_true‘ and ‘y_pred‘

报错信息

Traceback (most recent call last):
  File "D:/***.py", line 112, in <module>
    train()
  File "D:/***.py", line 102, in train
    client_optimizer_fn=lambda: tf.keras.optimizers.SGD(0.1))
  File "E:\Anaconda3\lib\site-packages\tensorflow_federated\python\learning\federated_averaging.py", line 229, in build_federated_averaging_process
    model_update_aggregation_factory=model_update_aggregation_factory)
  File "E:\Anaconda3\lib\site-packages\tensorflow_federated\python\learning\framework\optimizer_utils.py", line 610, in build_model_delta_optimizer_process
    model_weights_type = model_utils.weights_type_from_model(model_fn)
  File "E:\Anaconda3\lib\site-packages\tensorflow_federated\python\learning\model_utils.py", line 100, in weights_type_from_model
    model = model()
  File "D:/Program Files/PyCharm 2019.2/GraduationDesign/tff_test.py", line 94, in model_fn
    loss=tf.keras.losses.mean_squared_error(),
  File "E:\Anaconda3\lib\site-packages\tensorflow\python\util\dispatch.py", line 201, in wrapper
    return target(*args, **kwargs)
TypeError: mean_squared_error() missing 2 required positional arguments: 'y_true' and 'y_pred'

解决

报错的代码为:

return tff.learning.from_keras_model(
        model,
        input_spec=train_data[0].element_spec,
        loss=tf.keras.losses.mean_squared_error(),
        metrics=[tf.keras.metrics.mean_absolute_percentage_error()])

其中定义损失函数:

loss=tf.keras.losses.mean_squared_error()

这里提示缺少参数。

修改

loss=tf.keras.losses.MeanSquaredError(),
metrics=[tf.keras.metrics.MeanAbsolutePercentageError()])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cyril_KI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值