我有一个多任务神经网络。我想确保当我在模型上调用 Model.evaluate() 时,我看到的分数是损失的总和。但是,它返回的是标量而不是...
我有一个多任务神经网络。我想确保当我调用 Model.evaluate()
我的模型时,我看到的分数是损失的总和。但是,它返回的是标量而不是列表,所以我不确定这个损失是什么。根据文档,应该为多个输出或损失返回一个标量列表。下面是一个最小的可重现示例
import numpy as np
from keras.layers import Input, Dense
from keras.models import Model
X = np.random.random((10, 10))
y = {'pi': np.random.random((10,)), 'u': np.random.random((10,))}
in_layer = Input(shape=X.shape[1:])
out1 = Dense(1, name='pi')(in_layer)
out2 = Dense(1, name='u')(in_layer)
model = Model(inputs=in_layer, outputs=[out1,out2])
model.compile(loss={'pi': 'mean_squared_error', 'u': 'mean_squared_error'}, optimizer = 'adam')
model.fit(X,y)
print(model.evaluate(X, y)) # Returns a float.
我尝试将其 y
作为列表传递,但仍然得到相同的结果。 print(model.metrics_names)
返回 'loss'
.