首页 PaddleCV 帖子详情
PaddleDetection测试代码报错
收藏
快速回复
PaddleCV 问答目标检测 1394 0
PaddleDetection测试代码报错
收藏
快速回复
PaddleCV 问答目标检测 1394 0

开宗明义:

在跑测试代码

python ppdet/modeling/tests/test_architectures.py

时,报错TypeError: 'MultiBoxHead' object is not callable

 

全过程如下:

按照paddle的安装说明INSTALL_cn一步步执行。

最开始是安装不上COCO-API。折腾了半天,通过以下方法终于安装成功。

坑1:
问题:无法运行pip install git+https://github.com/philferriere/cocoapi.git#subdirectory=PythonAPI
解决方法:运行conda install git

坑2:
问题:安不上cocoapi,运行pip install git+https://github.com/philferriere/cocoapi.git#subdirectory=PythonAPI还是失败
解决方法:在 https://github.com/philferriere/cocoapi 下载源码,并进行解压。
                以管理员身份打开 CMD 终端,并切换到 *\cocoapi-master\PythonAPI 目录。(本电脑位置 E:\AI\cocoapi-master\PythonAPI )
                python setup.py build_ext install
此时又出现问题:
error: Unable to find vcvarsall.bat
原因:Microsoft Visual Studio版本太低
尝试:安装VS2015后,问题仍未解决
尝试:安装VS2019,网络连接问题,“无法下载通道清单“。
                              解决办法:连接手机热点,控制面板\网络和 Internet\网络连接,wlan属性,ipv4,使用下面的DNS服务器地址:首选DNS服务器114.114.114.114;备选DNS服务器8.8.8.8

成功安装VS2019后,重新执行python setup.py build_ext install
没有再报错“error: Unable to find vcvarsall.bat”,该问题解决
但又出现新问题:fatal error C1083: 无法打开包括文件: “io.h”: No such file or directory

转换思路:执行pip install git+https://github.com/philferriere/cocoapi.git#subdirectory=PythonAPI
报错:ERROR: Command errored out with exit status 128:
原因:网络连接问题。换手机热点,解决。
出现新问题:fatal error C1083: 无法打开包括文件: “io.h”: No such file or directory
(该问题和离线安装一样)
尝试1:安装Windows 10 SDK(链接https://developer.microsoft.com/zh-cn/windows/downloads/windows-10-sdk/)
成功解决

使用的cuda版本是10.1.105_418.96,cudnn版本是v7.6.5.32

安装对应版本的paddle。

python -m pip install paddlepaddle-gpu==2.0.1.post101 -f https://paddlepaddle.org.cn/whl/mkl/stable.html

执行paddle.utils.run_check(),返回的结果为:

W0408 18:42:01.823998 17292 device_context.cc:362] Please NOTE: device: 0, GPU Compute Capability: 7.5, Driver API Version: 11.0, Runtime API Version: 10.1
W0408 18:42:01.962602 17292 device_context.cc:372] device: 0, cuDNN Version: 7.6.
PaddlePaddle works well on 1 GPU.
W0408 18:42:10.303730 17292 build_strategy.cc:171] fusion_group is not enabled for Windows/MacOS now, and only effective when running with CUDA GPU.
PaddlePaddle works well on 1 GPUs.
PaddlePaddle is installed successfully! Let's start deep learning with PaddlePaddle now.

最后输入测试代码:

python ppdet/modeling/tests/test_architectures.py

却报错  TypeError: 'MultiBoxHead' object is not callable

全部报错信息如下:

(paddle) E:\coal_rock_AI\PaddleDetection-release-2.0-rc>python ppdet/modeling/tests/test_architectures.py
E:\coal_rock_AI\PaddleDetection-release-2.0-rc\ppdet\core\workspace.py:170: DeprecationWarning: The 'warn' method is deprecated, use 'warning' instead
  'is required.'.format(cls.__op__))
2021-04-08 18:42:49,674 - WARNING -  OP not found, maybe a newer version of paddle is required.
ssC:\Users\pc\Miniconda3\envs\paddle\lib\site-packages\paddle\fluid\layers\math_op_patch.py:298: UserWarning: E:\coal_rock_AI\PaddleDetection-release-2.0-rc\ppdet\modeling\roi_heads\bbox_head.py:315
The behavior of expression A / B has been unified with elementwise_div(X, Y, axis=-1) from Paddle 2.0. If your code works well in the older versions but crashes in this version, try to use elementwise_div(X, Y, axis=0) instead of A / B. This transitional warning will be dropped in the future.
  op_type, op_type, EXPRESSION_MAP[method_name]))
..C:\Users\pc\Miniconda3\envs\paddle\lib\site-packages\paddle\fluid\layers\math_op_patch.py:298: UserWarning: E:\coal_rock_AI\PaddleDetection-release-2.0-rc\ppdet\modeling\architectures\mask_rcnn.py:253
The behavior of expression A * B has been unified with elementwise_mul(X, Y, axis=-1) from Paddle 2.0. If your code works well in the older versions but crashes in this version, try to use elementwise_mul(X, Y, axis=0) instead of A * B. This transitional warning will be dropped in the future.
  op_type, op_type, EXPRESSION_MAP[method_name]))
....EE..
======================================================================
ERROR: test_test (__main__.TestSSD)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "E:\coal_rock_AI\PaddleDetection-release-2.0-rc\ppdet\modeling\tests\decorator_helper.py", line 29, in __fn__
    fn(*args, **kwargs)
  File "ppdet/modeling/tests/test_architectures.py", line 59, in test_test
    test_fetches = model.eval(feed_vars)
  File "E:\coal_rock_AI\PaddleDetection-release-2.0-rc\ppdet\modeling\architectures\ssd.py", line 135, in eval
    return self.build(feed_vars, 'eval')
  File "E:\coal_rock_AI\PaddleDetection-release-2.0-rc\ppdet\modeling\architectures\ssd.py", line 87, in build
    inputs=body_feats, image=im, num_classes=self.num_classes)
TypeError: 'MultiBoxHead' object is not callable

======================================================================
ERROR: test_train (__main__.TestSSD)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "E:\coal_rock_AI\PaddleDetection-release-2.0-rc\ppdet\modeling\tests\decorator_helper.py", line 29, in __fn__
    fn(*args, **kwargs)
  File "ppdet/modeling/tests/test_architectures.py", line 51, in test_train
    train_fetches = model.train(feed_vars)
  File "E:\coal_rock_AI\PaddleDetection-release-2.0-rc\ppdet\modeling\architectures\ssd.py", line 132, in train
    return self.build(feed_vars, 'train')
  File "E:\coal_rock_AI\PaddleDetection-release-2.0-rc\ppdet\modeling\architectures\ssd.py", line 87, in build
    inputs=body_feats, image=im, num_classes=self.num_classes)
TypeError: 'MultiBoxHead' object is not callable

----------------------------------------------------------------------
Ran 12 tests in 5.369s

FAILED (errors=2, skipped=2)

 

这下真不会了。

求问怎么解决

0
收藏
回复
需求/bug反馈?一键提issue告诉我们
发现bug?如果您知道修复办法,欢迎提pr直接参与建设飞桨~
在@后输入用户全名并按空格结束,可艾特全站任一用户