你好,
我不确定问题是出在你还是 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 安装 pyyaml==4.2b2
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 可能会在代码库的其他地方使用。 但是,就我而言,这是一个很好的解决方法。
@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 上,但我刚刚完成了一个干净的构建,并在使用 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 安装 pyyaml==4.2b2系统信息
- 操作系统:18.04
- 编译器版本:3.6
- CUDA 版本:10
- cuDNN 版本:9
- NVIDIA 驱动程序版本:415
- GPU 型号(适用于所有设备,如果它们不完全相同):1080ti
PYTHONPATH
环境变量:不适用python --version
输出:3.6.7- 任何其他似乎相关的内容:
你好,我想知道你是如何用cuda10编译你的caffe2的。 期待你的答复。
我正在分享我的经验,以防它对某人有所帮助:我在装有 Ubuntu 16.04、Cuda 9.0、Python 3.7 的计算机上遇到了同样的问题。 我们尝试了前两篇文章中的建议,并尝试强制安装 PyYAML 3.12,但无济于事。 在检查 config.py 中发生错误的行时,我们意识到 docker 容器中的 config.py 版本比使用 git clone 下载的版本旧(!?!)。 在将最新版本复制到 docker 容器时,以及@matthhan帖子中 env.py 中的更改,我们能够让它运行。
最有用的评论
我遇到了同样的错误并通过更改解决了问题
yaml_load = yaml.load
到
yaml_load = lambda x: yaml.load(x, Loader=yaml.Loader)
在
detectron/utils/env.py
不确定这是否在每种情况下都是有效的解决方案,因为 yaml.load 可能会在代码库的其他地方使用。 但是,就我而言,这是一个很好的解决方法。