Бэкэнд Matplotlib сдвигается при использовании API обнаружения объектов, QtAgg для Agg - PullRequest
1 голос
/ 21 июня 2019

Эта цифра не отображается при использовании matplotlib с API обнаружения объектов, но она хорошо работает, прежде чем я импортирую какой-либо метод тестирования.

Я использую виртуальную среду Anaconda, python 3.6 и API обнаружения объектов Google.

import matplotlib.pyplot as plt

import tensorflow as tf

from matplotlib import patches

from object_detection.anchor_generators.multiple_grid_anchor_generator import create_ssd_anchors

from object_detection.models.ssd_mobilenet_v2_feature_extractor_test import SsdMobilenetV2FeatureExtractorTest

from object_detection.models.ssd_mobilenet_v2_feature_extractor_test import SsdMobilenetV2FeatureExtractorTest

Изменение происходит, когда дело доходит до последней строки

from object_detection.models.ssd_mobilenet_v2_feature_extractor_test import SsdMobilenetV2FeatureExtractorTest"

Раньше я мог показать фигуру, например, plt.subplot (2,2), я получил всплывающую фигуру и следующее:

(<Figure size 640x480 with 4 Axes>,
array([[<matplotlib.axes._subplots.AxesSubplot object at 0x7f4615eb8ba8>,
     <matplotlib.axes._subplots.AxesSubplot object at 0x7f4614d320f0>],
    [<matplotlib.axes._subplots.AxesSubplot object at 0x7f4614ce36a0>,
     <matplotlib.axes._subplots.AxesSubplot object at 0x7f4614c92c50>]],
   dtype=object))
WARNING: The TensorFlow contrib module will not be included in TensorFlow 2.0.
For more information, please see:
  * https://github.com/tensorflow/community/blob/master/rfcs/20180907-contrib-sunset.md
  * https://github.com/tensorflow/addons

Если вы зависите от функциональности, которой там нет, пожалуйста, сообщите о проблеме.

и "plt.get_backend ()" показывает "Qt5Agg". но после последней строки фигура не появляется, хотя я получаю результаты из "plt.subplots (2,2)":

(<Figure size 640x480 with 4 Axes>,
 array([[<matplotlib.axes._subplots.AxesSubplot object at 0x7f460b8a5f60>,
     <matplotlib.axes._subplots.AxesSubplot object at 0x7f460b86b5c0>],
    [<matplotlib.axes._subplots.AxesSubplot object at 0x7f460a7b2fd0>,
     <matplotlib.axes._subplots.AxesSubplot object at 0x7f460a7cb630>]],
   dtype=object))

Теперь, когда я набираю «plt.get_backend ()», он показывает «Agg», а не предыдущий «Qt5Agg». и "plt.show ()" выдает ошибку:

UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.
  #!/usr/bin/env python2

Я использовал переводчик

~/anaconda3/envs/py36/bin/python

Есть ли здесь смена среды?

Сценарий последней строки можно найти здесь

Большое спасибо за ваше время!

1 Ответ

0 голосов
/ 21 июня 2019

решаемая. Нашли эту строку в ~ / models / research / object_detecion / utils / visualization_utils.py:

import matplotlib; matplotlib.use('Agg')  # pylint: disable=multiple-statements

просто прокомментируйте это и отлично работает.

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