Керас: получить ярлыки с названием предварительно обученных моделей на imagenet - PullRequest
0 голосов
/ 25 августа 2018

Я использую Keras Inception_v3, предварительно обученный на Imagenet:

base_model = InceptionV3(weights='imagenet', include_top=True)

И когда я прогнозирую по сгенерированным изображениям, я получаю выходной вектор, который имеет форму (n,1000) с n, являющимся числомизображений дано.Так что теперь, если я хочу интерпретировать результат, мне нужно имя 1000 выходных классов, используемых для обучения модели ... Но я не могу его найти!

Есть идеи?

1 Ответ

0 голосов
/ 25 августа 2018

Вы можете использовать decode_predictions метод:

from keras.applications.inception_v3 import decode_predictions

preds = model.predict(x)
print('Predicted:', decode_predictions(preds, top=10))

# Predicted: [(u'n02504013', u'Indian_elephant', 0.0042589349), ...]

Исходный код :

def decode_predictions(preds, top=5, **kwargs):
    """Decodes the prediction of an ImageNet model.
    # Arguments
        preds: Numpy tensor encoding a batch of predictions.
        top: Integer, how many top-guesses to return.
    # Returns
        A list of lists of top class prediction tuples
        `(class_name, class_description, score)`.
        One list of tuples per sample in batch input.
    # Raises
        ValueError: In case of invalid shape of the `pred` array
            (must be 2D).
    """

Очевидно, что он не является специфическим для Inception_V3.Вы можете импортировать его и использовать для любой предварительно обученной модели в Imagenet.Кроме того, вы можете импортировать его, используя:

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