Detectron: 最新のpyyamlはクラスを期待していますが、関数を取得しています

作成日 2019年03月16日  ·  7コメント  ·  ソース: facebookresearch/Detectron

こんにちは、
問題があなたにあるのかpyyamlにあるのかはわかりませんが、クリーンビルドを完了したばかりで、pyyamlバージョン5.1でinfer_simple.pyの例を実行すると次のエラーが発生します

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環境変数:NA
  • 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がコードベースの他の場所で使用されている可能性があるため、これがすべての場合に有効なソリューションであるかどうかはわかりません。ただし、私の場合、これは適切な回避策でした。

それは実際に動作します!! Thx〜

別の回避策は、pyyamlを3.12バージョンにロールバックすることです。これは、detectronが最初はそのバージョンに基づいて構築されているように見えるためです。 同様の問題はhttps://github.com/facebookresearch/DensePose/issues/216にあります

同じエラーが発生しますが、pyyaml = 3.12、助けが必要です。

システムインフォメーション
オペレーティングシステム:16.04
コンパイラバージョン:2.7
CUDAバージョン:9

こんにちは、
問題があなたにあるのかpyyamlにあるのかはわかりませんが、クリーンビルドを完了したばかりで、pyyamlバージョン5.1でinfer_simple.pyの例を実行すると次のエラーが発生します

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環境変数:NA
  • python --version出力:3.6.7
  • 関連すると思われる他の何か:?

こんにちは、caffe2をcuda10でどのようにコンパイルするのか知りたいです。 お返事を楽しみにしています。

誰かに役立つ場合に備えて、私の経験を共有しています。Ubuntu16.04、Cuda 9.0、Python3.7を搭載したコンピューターで同じ問題が発生しました。 最初の2つの投稿からの提案を試し、PyYAML3.12の強制インストールを試みましたが無駄になりました。 エラーが発生したconfig.pyの行を確認したところ、Dockerコンテナーのconfig.pyは、git clone(!?!)を使用してダウンロードしたものよりも古いバージョンであることがわかりました。 @matthhanの投稿のコピーすると、それを実行できるようになりました。

このページは役に立ちましたか?
0 / 5 - 0 評価