Validation_data в функциональной модели Keras не устанавливается генератором изображений - PullRequest
0 голосов
/ 14 мая 2019

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

class Precision(Callback):
    """
    Keras Callback. Calculates precision metrics at the end of each epoch.
    """
    def __init__(self):
        super().__init__()
        self.precisions = []

    def on_train_begin(self, logs={}):
        self.precisions = []

    def on_epoch_end(self, epoch, logs={}):
        y_pred = (np.asarray(self.model.predict(self.validation_data[0]))).round()
        y_true = self.validation_data[1]
        precision = precision_score(y_true, y_pred)
        self.precisions.append(precision)
        print("validation set precision at epoch {}: {}".format(epoch, precision))
        return
# ------------
model.fit_generator(training_generator,
                    steps_per_epoch=(TRAIN_SIZE / BATCH_SIZE),  # number of samples in the dataset
                    epochs=EPOCHS,  # number of epochs, training cycles
                    validation_data=validation_generator,  # performance eval on test set
                    validation_steps=(TEST_SIZE / BATCH_SIZE),
                    callbacks=[history,
                               precision])

Я получаю следующую ошибку:

File "/Users/user/Desktop/cnn_toolkit.py", line 68, in on_epoch_end
    y_pred = (np.asarray(self.model.predict(self.validation_data[0]))).round()
TypeError: 'NoneType' object is not subscriptable

Явыполнение обучения (Inception V3) и использование функционального объекта Keras Model.Я пытался обновить tenorflow, собирая его из исходного кода, пробовал также self.model.validation_data, который все еще не работает.Искал ответ на это везде и не могу найти ничего, что конкретно решит мою проблему.У меня Keras 2.2.4.

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