keras model.evaluate () не показывает потери - PullRequest
0 голосов
/ 08 сентября 2018

Я создал нейронную сеть следующей формы в 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]).

Чтобы проверить, становится ли нейронная сеть лучшим приближением к функциям, я хотел периодически оценивать модель по накопленным значениям X и y (в моем случае X и y со временем) , Однако, когда я вызываю model_v.evaluate(X, y), в консоли появляются только характерные индикаторы выполнения, но не выводятся ни значение потерь, ни mse-метрика (которые в данном случае одинаковы).

Как я могу это изменить?

1 Ответ

0 голосов
/ 08 сентября 2018

Значения потерь и метрик не отображаются на индикаторе выполнения метода 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 соответствуют.

...