В настоящее время я пишу функцию Xpredict, которая является оболочкой для функции keras.predict () для всей модели keras в целом. - PullRequest
0 голосов
/ 18 января 2019

Я хотел бы знать, как мне найти имя класса соответствующего предсказания?

Generator.class_indices работает для нескольких моделей, в которых данные поступают из генератора. Тем не менее, для немногих моделей, где данные не поступают из генератора, выдает ошибку, говорящую

AttributeError: у объекта 'NumpyArrayIterator' нет атрибута 'class_indices'

def xpredict(self, img_path, batch_size = None, verbose = 0, steps = None):
        x = image.load_img(img_path, target_size = Sequential.input_shape)
        x = image.img_to_array(x)
        x = np.expand_dims(x, axis = 0)
        result = self.predict(x, batch_size = batch_size, verbose = verbose, steps = None)
        for key, value in Sequential.generator.class_indices.items():
            if value == result:
                return key

Ожидаемый:

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

Фактический:

работает только для training_data, поступающего из генератора с использованием generator.class_indices.

1 Ответ

0 голосов
/ 19 января 2019

Нет, вы вообще не можете этого делать, имена классов - это то, что разработчик должен предоставить, Keras не знает об этом и нигде не хранится.

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