keras tenorflow metri c - потеря всегда рассчитывается - PullRequest
0 голосов
/ 30 января 2020

Я наткнулся на эту страницу . Он определяет METRICS как показано ниже. Мои вопросы

METRICS = [
          keras.metrics.TruePositives(name='tp'),
          keras.metrics.FalsePositives(name='fp'),
          keras.metrics.TrueNegatives(name='tn'),
          keras.metrics.FalseNegatives(name='fn'), 
          keras.metrics.BinaryAccuracy(name='accuracy'),
          keras.metrics.Precision(name='precision'),
          keras.metrics.Recall(name='recall'),
          keras.metrics.AUC(name='auc'),
    ]

Train on 182276 samples, validate on 45569 samples
    Epoch 1/100
    182276/182276 [==============================] - 2s 12us/sample - loss: 0.0139 - tp: 7.0000 - fp: 124.0000 - tn: 181835.0000 - fn: 310.0000 - accuracy: 0.9976 - precision: 0.0534 - recall: 0.0221 - auc: 0.7262 - val_loss: 0.0074 - val_tp: 4.0000 - val_fp: 0.0000e+00 - val_tn: 45492.0000 - val_fn: 73.0000 - val_accuracy: 0.9984 - val_precision: 1.0000 - val_recall: 0.0519 - val_auc: 0.8742
    Epoch 2/100
    182276/182276 [==============================] - 0s 3us/sample - loss: 0.0076 - tp: 91.0000 - fp: 30.0000 - tn: 181929.0000 - fn: 226.0000 - accuracy: 0.9986 - precision: 0.7521 - recall: 0.2871 - auc: 0.8828 - val_loss: 0.0053 - val_tp: 39.0000 - val_fp: 7.0000 - val_tn: 45485.0000 - val_fn: 38.0000 - val_accuracy: 0.9990 - val_precision: 0.8478 - val_recall: 0.5065 - val_auc: 0.8761
    Epoch 3/100
    182276/182276 [==============================] - 0s 3us/sample - loss: 0.0064 - tp: 146.0000 - fp: 36.0000 - tn: 181923.0000 - fn: 171.0000 - accuracy: 0.9989 - precision: 0.8022 - recall: 0.4606 - auc: 0.8981 - val_loss: 0.0049 - val_tp: 45.0000 - val_fp: 7.0000 - val_tn: 45485.0000 - val_fn: 32.0000 - val_accuracy: 0.9991 - val_precision: 0.8654 - val_recall: 0.5844 - val_auc: 0.8828
  1. Почему потери отображаются после каждой эпохи, если она не является частью METRICS. loss опция по умолчанию? будет ли он присутствовать для регрессии или классификации нескольких классов?
  2. Keras отображает каждый METRICS для данных обучения и проверки. Это потому, что когда мы подгоняем модель, мы предоставляем данные проверки validation_data=(val_features, val_labels)? если мы не предоставим данные проверки, выдаст ли это ошибку, поскольку она не сможет распечатать метрики для данных проверки?

Ответы [ 2 ]

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

1) Потеря является целью обучения вашей нервной системы net, и поэтому вы всегда требуете ее, независимо от проблемы регрессии или классификации. По умолчанию отображается в Керасе. Keras Loss Documentation

Метрики используются для оценки вашей модели, следовательно, вы можете определить более одной. Документация по метрикам Keras

2) Если вы не предоставите данные проверки, у Keras, как следует из названия, нет данных для проверки вашей модели, и он выдаст ошибку.

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

1 - это значение по умолчанию, если вы не введете verbose=0, тогда ничего не будет. Да, во всех случаях он присутствует

2 - Да, если вы не предоставите validation_data, у вас ничего не будет по метрикам val

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