多输出的神经网络如何设置多个输出对应的多个RMSE作为loss

keras内置loss函数中不包含rmse均方根误差,当运行如下代码:


losses = {"Tf1": "rmse", "Tf2": "rmse", "Tr1": "rmse", "Tr2": "rmse", "A1": "rmse", "A2": "rmse"}
metric = {"Tf1": "mae", "Tf2": "mae", "Tr1": "mae", "Tr2": "mae", "A1": "mae", "A2": "mae"}
modelD.compile(loss=losses,
              optimizer=sgd,
              metrics=metric)

会报错:


ValueError: Unknown loss function: rmse. Please ensure this object is passed to the `custom_objects` argument. See https://www.tensorflow.org/guide/keras/save_and_serialize#registering_the_custom_object for details.

有什么办法可以如代码中表达的需要那样以Tf1,Tf2,Tr1,Tr2,A1,A2的rmse同时作为loss来训练神经网络?

楼主你的rmse写错了,要这么写,tf.keras.metrics.mean_squared_error就是或者loss='mean_squared_error'就是你想要的rmse

你这个问题我2年前解决过,你可以在keras的系统库中添加rmse方法,传参的时候就用rmse即可。
https://hpg123.blog.csdn.net/article/details/108104917