Keras模型.evaluate()没有显示损失。

3

我在keras中创建了以下形式的神经网络:

from keras.layers import Dense, Activation, Input
from keras import Model

input_dim_v = 3
hidden_dims=[100, 100, 100]

inputs = Input(shape=(input_dim_v,))
net = inputs

for h_dim in hidden_dims:
    net = Dense(h_dim)(net)
    net = Activation("elu")(net)

outputs = Dense(self.output_dim_v)(net)
model_v = Model(inputs=inputs, outputs=outputs)
model_v.compile(optimizer='adam', loss='mean_squared_error', metrics=['mse'])

接下来,我使用model_v.train_on_batch(X[i],y[i])单独训练每个样本。

为了测试神经网络是否成为更好的函数逼近器,我想定期对累积的Xy(在我的情况下,Xy会随时间增长)进行评估。然而,当我调用model_v.evaluate(X, y)时,控制台中只显示了特征进度条,但既没有损失值也没有均方误差指标(在这种情况下它们是相同的)。

我该如何改变这种情况?

1个回答

5

evaluate()方法的进度条中不会显示损失和指标值。相反,它们作为evaluate()方法的输出返回,因此您可以打印它们:

for i in n_iter:
    # ... get the i-th batch or sample

    # ... train the model using the `train_on_batch` method

    # evaluate the model on whole or part of test data
    loss_metric = model.evaluate(test_data, test_labels)
    print(loss_metric)

根据文档, 如果你的模型有多个输出和/或度量指标,你可以使用model.metric_names属性来查找loss_metric中的值对应什么。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接