Detectron: Последний pyyaml ​​ожидает класса, но получает функцию

Созданный на 16 мар. 2019  ·  7Комментарии  ·  Источник: facebookresearch/Detectron

Привет,
Я не уверен, связана ли проблема с вами или pyyaml, но я только что завершил чистую сборку и получил следующую ошибку при запуске примера infer_simple.py с pyyaml ​​версии 5.1

yaml.constructor.ConstructorError: while constructing a Python instance expected a class, but found <class 'builtin_function_or_method'> in "<unicode string>", line 3, column 20: BBOX_XFORM_CLIP: !!python/object/apply:numpy.core ...

Я откатил версию до 4.2, и она работает нормально:
pip install pyyaml ​​== 4.2b2

Системная информация

  • Операционная система: 18.04
  • Версия компилятора: 3.6
  • Версия CUDA: 10
  • Версия cuDNN: 9
  • Версия драйвера NVIDIA: 415
  • Модели GPU (для всех устройств, если они не все одинаковые): 1080ti
  • PYTHONPATH переменная среды: нет данных
  • python --version вывод: 3.6.7
  • Что-нибудь еще, что кажется актуальным:?

Самый полезный комментарий

Я столкнулся с той же ошибкой и решил проблему, изменив
yaml_load = yaml.load
к
yaml_load = lambda x: yaml.load(x, Loader=yaml.Loader)
в detectron/utils/env.py
Не уверен, что это верное решение в каждом случае, потому что yaml.load может использоваться в другом месте в кодовой базе. Однако в моем случае это было хорошим решением.

Все 7 Комментарий

Я столкнулся с той же ошибкой и решил проблему, изменив
yaml_load = yaml.load
к
yaml_load = lambda x: yaml.load(x, Loader=yaml.Loader)
в detectron/utils/env.py
Не уверен, что это верное решение в каждом случае, потому что yaml.load может использоваться в другом месте в кодовой базе. Однако в моем случае это было хорошим решением.

@matthhan решил это за меня. Спасибо!

Я столкнулся с той же ошибкой и решил проблему, изменив
yaml_load = yaml.load
к
yaml_load = lambda x: yaml.load(x, Loader=yaml.Loader)
в detectron/utils/env.py
Не уверен, что это верное решение в каждом случае, потому что yaml.load может использоваться в другом месте в кодовой базе. Однако в моем случае это было хорошим решением.

Это действительно работает!! Спасибо ~

Другой обходной путь - откатить pyyaml ​​до версии 3.12, поскольку детектор изначально кажется построенным на этой версии. Аналогичная проблема есть на https://github.com/facebookresearch/DensePose/issues/216

Я получаю ту же ошибку, но мой pyyaml ​​= 3.12, мне нужна помощь.

Системная информация
Операционная система: 16.04
Версия компилятора: 2.7
Версия CUDA: 9

Привет,
Я не уверен, связана ли проблема с вами или pyyaml, но я только что завершил чистую сборку и получил следующую ошибку при запуске примера infer_simple.py с pyyaml ​​версии 5.1

yaml.constructor.ConstructorError: while constructing a Python instance expected a class, but found <class 'builtin_function_or_method'> in "<unicode string>", line 3, column 20: BBOX_XFORM_CLIP: !!python/object/apply:numpy.core ...

Я откатил версию до 4.2, и она работает нормально:
pip install pyyaml ​​== 4.2b2

Системная информация

  • Операционная система: 18.04
  • Версия компилятора: 3.6
  • Версия CUDA: 10
  • Версия cuDNN: 9
  • Версия драйвера NVIDIA: 415
  • Модели GPU (для всех устройств, если они не все одинаковые): 1080ti
  • PYTHONPATH переменная среды: нет данных
  • python --version вывод: 3.6.7
  • Что-нибудь еще, что кажется актуальным:?

привет, я хочу знать, как вы скомпилируете caffe2 с помощью cuda10. Ждем Вашего ответа.

Делюсь своим опытом на случай, если это кому-то поможет: у меня была такая же проблема на компьютере с Ubuntu 16.04, Cuda 9.0, Python 3.7. Мы попробовали предложения из первых двух сообщений и попытались принудительно установить PyYAML 3.12, но безрезультатно. Проверив строки из config.py, в которых произошла ошибка, мы поняли, что config.py в контейнере докеров была более старой версией, чем та, которая была загружена с помощью git clone (!?!). При копировании последней версии в контейнер докера вместе с изменениями в env.py в сообщении @matthhan мы смогли запустить его.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги