Получение логитов вывода из модели Deeplab

Я использую предварительно обученный deeplab модель ( отсюда), чтобы получить сегментации для входного изображения. Я могу получить семантические метки (т.е. SemanticPredictions), который argmax применяется к логитам ( ссылка).

Мне было интересно, если есть простой способ получить логиты до argmax? Я надеялся найти имя выходного тензора и просто передать его в мою tfsession, как показано ниже:

tf_session.run(
        self.OUTPUT_TENSOR_NAME,
        feed_dict={self.INPUT_TENSOR_NAME: [np.asarray(input_image)]})

Но я не смог найти такое тензорное имя в коде, который раскрывает логиты или выходные данные softmax.

0 ответов

Для модели, обученной с помощью настройки MobileNet_V2 self.OUTPUT_TENSOR_NAME = 'ResizeBilinear_2:0' извлекает логиты перед выполнением argmax.

Я подозреваю, что это то же самое для xception, но не проверял.

Я пришел к этому ответу, загрузив свою модель в тензорный поток. Затем распечатайте названия всех слоев загруженного графика. Наконец, я взял имя окончательного выходного слоя перед последним слоем "ArgMax" и провел с его помощью некоторый вывод.

Вот ссылка на вопрос stackru о печати имен слоев на графике.Я нашел ответ Теда очень полезным.

Кстати, в выходных слоях моделей DeeplabV3 SoftMax не применяется. Таким образом, вы не можете просто принять исходное значение элементов выходных векторов как уверенность.

Другие вопросы по тегам