Керас: как оценить точность модели (define_generator против Предсказатель_генератор)? - PullRequest
1 голос
/ 26 апреля 2019

Я получаю другую точность модели от keras evaluate_generator() и predict_generator() для задачи двоичной классификации:

def evaluate_model(model, generator, nBatches):
    score = model.evaluate_generator(generator=generator,               # Generator yielding tuples
                                     steps=generator.samples//nBatches, # number of steps (batches of samples) to yield from generator before stopping
                                     max_queue_size=10,                 # maximum size for the generator queue
                                     workers=1,                         # maximum number of processes to spin up when using process based threading
                                     use_multiprocessing=False,         # whether to use process-based threading
                                     verbose=0)
    print("loss: %.3f - acc: %.3f" % (score[0], score[1]))

С evaluate_generator() я получаю acc значения до 0,7 .

def evaluate_predcitions(model, generator):
    predictions = model.predict_generator(generator=generator,
                                    steps=generator.samples/nBatches,
                                    max_queue_size=10,
                                    workers=1,
                                    use_multiprocessing=False,
                                    verbose=0)

    # Evaluate predictions
    predictedClass = np.argmax(predictions, axis=1)
    trueClass = generator.classes
    classLabels = list(generator.class_indices.keys())

    # Create confusion matrix
    confusionMatrix = (confusion_matrix(
        y_true=trueClass,                                       # ground truth (correct) target values
        y_pred=predictedClass))                                 # estimated targets as returned by a classifier
    print(confusionMatrix)

С predict_generator() я получаю acc значения 0,5 . Я вычисляю acc как (TP+TN)/(TP+TN+FP+FN)


  • Прав ли я, что acc из evaluate_generator() основано на TP+TN/(TP+TN+FP+FN)?
  • Как acc может отличаться, когда я использую одни и те же данные и генератор?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...