Модель Tensorflow Keras: как получить лучший результат из исторического объекта - PullRequest
0 голосов
/ 28 марта 2020

Я пытаюсь обучить несколько моделей машинного обучения с использованием тенор потока кера, мне просто интересно, есть ли способ получить лучший результат, достигнутый во время тренировки после завершения обучения. В Интернете я обнаружил, что функция .fit возвращает объект истории, к которому можно получить доступ, чтобы получить лучший результат, хотя из кода, который я пробовал, говорится: «AttributeError: у объекта« История »нет атрибута« best_score »», я не могу найти список атрибутов онлайн, поэтому я спрашиваю здесь.

Заранее спасибо.

History = model.fit(Xtrain, ytrain, epochs=1, validation_data=(Xtest, ytest), verbose=1)

print("Best: %f using %s" % (History.best_score, History.best_params_))

PS, я знаю, что обучение в течение 1 эпохи ничего не даст, я просто пытаюсь проверить код

Ответы [ 2 ]

1 голос
/ 28 марта 2020

Я предполагаю, что вы просто хотите получить лучший результат от объекта истории.

hist = model.fit(...)

print(hist.history) # this will print a dictionary object, now you need to grab the metrics / score you're looking for

# if your score == 'acc', if not replace 'acc' with your metric

best_score = max(hist.history['acc'])

print(best_score)

Если вам нужна лучшая модель, вы можете просто использовать ModelCheckPoint https://keras.io/callbacks/

0 голосов
/ 28 марта 2020

Метод fit () на keras возвращает объект истории. Атрибут history.history представляет собой словарь, в котором записываются значения потерь обучения и метрик в последовательные эпохи, а также значения потерь валидации и значения метрик валидации (если применимо). Вы можете вызвать "history.history ['loss']" или "history.history ['val_loss']" для доступа к нему. Вот пример этого.

model.compile(loss = 'mean_squared_error', optimizer =optimizer,metrics=['accuracy'])
History = model.fit(Xtrain, ytrain, epochs=1, validation_data=(Xtest, ytest), verbose=1)
plt.plot(history.history['acc'])
plt.plot(history.history['val_acc'])

Для лучших параметров я думаю, что использование callback.ModelCheckpoint может быть полезным. Этот метод имеет аргумент 'save_best_only' для последней лучшей модели.

keras.callbacks.callbacks.ModelCheckpoint(filepath, monitor='val_loss', verbose=0, save_best_only=False, save_weights_only=False, mode='auto', period=1)

Пожалуйста, обратитесь к Визуализация истории тренировок и обратный вызов для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...