Я пытаюсь обучить несколько моделей машинного обучения с использованием тенор потока кера, мне просто интересно, есть ли способ получить лучший результат, достигнутый во время тренировки после завершения тренировки. В Интернете я обнаружил, что функция .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_))

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

0
Faffy 28 Мар 2020 в 04:58

2 ответа

Лучший ответ

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

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/

1
furcifer 28 Мар 2020 в 10:29

Метод 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)

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

0
BenedictGrain 28 Мар 2020 в 04:16