Разница между va_loss от соответствия и оценки от оценки? - PullRequest
0 голосов
/ 09 января 2020

Я учусь использовать tf и Keras с проблемой регрессии.

Я написал эту функцию для перекрестной проверки разностных моделей, чтобы сравнить их.

def cv(X, y, model, n_splits=5, epochs=5, batch_size=1024,
       random_state=42, verbose=0):
    # kf = KFold(n_splits=n_splits, shuffle=True, random_state=random_state)
    kf = KFold(n_splits=n_splits, shuffle=False, random_state=random_state)
    histories = []
    for s in kf.split(X):
        X_train = X.iloc[s[0]].to_numpy()
        y_train = y.iloc[s[0]]['Target'].to_numpy()
        X_test = X.iloc[s[1]].to_numpy()
        y_test = y.iloc[s[1]]['Target'].to_numpy()

        h = model.fit(X_train, y_train,
                      epochs=epochs,
                      batch_size=batch_size,
                      validation_data=(X_test, y_test),
                      verbose=verbose)
        histories.append(h)

        score = model.evaluate(X_test, y_test, verbose=verbose)
        cvscores.append(score)
    return histories, cvscores

I обнаружил, что оценка от model.evaluate всегда равна egals для val_loss внутри объекта истории из model.fit.

Это действительно одно и то же?

Спасибо!

1 Ответ

1 голос
/ 09 января 2020

Значение val_loss одинаково для model.fit и model.evaluate, поскольку вы используете один и тот же набор данных X_test для проверки как во время обучения, так и после тестирования.

В документации На model.fit вы можете видеть, что этот метод также возвращает потерю проверки.

Если вы, например, сделаете перекрестную проверку в k раз, вы разделите данные обучения на фактические данные обучения и данные проверки, чтобы получить Точность после каждой эпохи. Поскольку вы разделяете данные обучения, у вас все равно будет еще один нетронутый набор тестовых данных, который вы сможете использовать после завершения обучения. Тогда у вас будет другой val_loss между проверкой и проверкой.

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