PaddlePaddle / PaddleDetection

Object Detection toolkit based on PaddlePaddle. It supports object detection, instance segmentation, multiple object tracking and real-time multi-person keypoint detection.
Apache License 2.0
12.65k stars 2.87k forks source link

最新的develop分支代码出现(No module named 'paddle.base')bug(2024.4.12出现) #8919

Closed YELLOWZAN closed 5 months ago

YELLOWZAN commented 5 months ago

问题确认 Search before asking

Bug组件 Bug Component

No response

Bug描述 Describe the Bug

最新的develop分支中在setup整个PaddleDetection后执行训练代码单元格时产生如下报错:

/home/aistudio
/home/aistudio/PaddleDetection
Traceback (most recent call last):
  File "tools/infer.py", line 33, in <module>
    from ppdet.core.workspace import load_config, merge_config
  File "/home/aistudio/PaddleDetection/ppdet/__init__.py", line 15, in <module>
    from . import (core, data, engine, modeling, model_zoo, optimizer, metrics,
  File "/home/aistudio/PaddleDetection/ppdet/data/__init__.py", line 16, in <module>
    from . import transform
  File "/home/aistudio/PaddleDetection/ppdet/data/transform/__init__.py", line 15, in <module>
    from . import operators
  File "/home/aistudio/PaddleDetection/ppdet/data/transform/operators.py", line 56, in <module>
    from ppdet.modeling.keypoint_utils import get_affine_transform, affine_transform
  File "/home/aistudio/PaddleDetection/ppdet/modeling/__init__.py", line 23, in <module>
    from . import heads
  File "/home/aistudio/PaddleDetection/ppdet/modeling/heads/__init__.py", line 17, in <module>
    from . import yolo_head
  File "/home/aistudio/PaddleDetection/ppdet/modeling/heads/yolo_head.py", line 26, in <module>
    from ..losses import IouLoss
  File "/home/aistudio/PaddleDetection/ppdet/modeling/losses/__init__.py", line 34, in <module>
    from . import clrnet_loss
  File "/home/aistudio/PaddleDetection/ppdet/modeling/losses/clrnet_loss.py", line 6, in <module>
    from ppdet.modeling.assigners.clrnet_assigner import assign
  File "/home/aistudio/PaddleDetection/ppdet/modeling/assigners/__init__.py", line 18, in <module>
    from . import simota_assigner
  File "/home/aistudio/PaddleDetection/ppdet/modeling/assigners/simota_assigner.py", line 22, in <module>
    from ppdet.modeling.losses.varifocal_loss import varifocal_loss
  File "/home/aistudio/PaddleDetection/ppdet/modeling/losses/varifocal_loss.py", line 27, in <module>
    from paddle.base.framework import in_dygraph_mode
ModuleNotFoundError: No module named 'paddle.base'

但是上周以及往前时间段使用develop分支是正常的,未曾出现如上错误,请问develop分支是否存在错误的源码合并?

以下为出现问题的飞桨星河社区开源项目链接

2024年智能车基线(非官方):https://aistudio.baidu.com/projectdetail/7450053?sUid=2598449&shared=1&ts=1713011998099

该项目的最新发布版本为使用develop分支的PaddleDetection,notebook已有完整的执行代码,可以运行该项目直接复现如上错误

复现环境 Environment

OS:Linux(Codelab) paddlepaddle:2.3.2 PaddleDetection:develop AIStudio启用环境版本:32GBVRAM V100环境

Bug描述确认 Bug description confirmation

是否愿意提交PR? Are you willing to submit a PR?

lyuwenyu commented 5 months ago

安装最新的paddlepaddle吧 , 目前ppdet develop是跟着最新的paddle在更新

YELLOWZAN commented 5 months ago

安装最新的paddlepaddle吧 , 目前ppdet develop是跟着最新的paddle在更新

前几天测试了,确实是版本不兼容问题,而且旧版paddlepaddle框架与新版本的develop分支存在依赖包不匹配的问题

huanxiangyin commented 5 months ago
E:\paddle\PaddleDetection>python tools/infer.py -c configs/smalldet/visdrone/ppyoloe_plus_sod_crn_l_80e_visdrone.yml -o weights=ppyoloe_plus_sod_crn_l_80e_visdrone.pdparams --infer_img=414.jpg
Traceback (most recent call last):
  File "E:\paddle\PaddleDetection\tools\infer.py", line 33, in <module>
    from ppdet.core.workspace import load_config, merge_config
  File "E:\paddle\PaddleDetection\ppdet\__init__.py", line 15, in <module>
    from . import (core, data, engine, modeling, model_zoo, optimizer, metrics,
  File "E:\paddle\PaddleDetection\ppdet\data\__init__.py", line 16, in <module>
    from . import transform
  File "E:\paddle\PaddleDetection\ppdet\data\transform\__init__.py", line 15, in <module>
    from . import operators
  File "E:\paddle\PaddleDetection\ppdet\data\transform\operators.py", line 56, in <module>
    from ppdet.modeling.keypoint_utils import get_affine_transform, affine_transform
  File "E:\paddle\PaddleDetection\ppdet\modeling\__init__.py", line 23, in <module>
    from . import heads
  File "E:\paddle\PaddleDetection\ppdet\modeling\heads\__init__.py", line 17, in <module>
    from . import yolo_head
  File "E:\paddle\PaddleDetection\ppdet\modeling\heads\yolo_head.py", line 26, in <module>
    from ..losses import IouLoss
  File "E:\paddle\PaddleDetection\ppdet\modeling\losses\__init__.py", line 34, in <module>
    from . import clrnet_loss
  File "E:\paddle\PaddleDetection\ppdet\modeling\losses\clrnet_loss.py", line 6, in <module>
    from ppdet.modeling.assigners.clrnet_assigner import assign
  File "E:\paddle\PaddleDetection\ppdet\modeling\assigners\__init__.py", line 18, in <module>
    from . import simota_assigner
  File "E:\paddle\PaddleDetection\ppdet\modeling\assigners\simota_assigner.py", line 22, in <module>
    from ppdet.modeling.losses.varifocal_loss import varifocal_loss
  File "E:\paddle\PaddleDetection\ppdet\modeling\losses\varifocal_loss.py", line 27, in <module>
    from paddle.base.framework import in_dygraph_mode
ModuleNotFoundError: No module named 'paddle.base'

我在复现PP-YOLOE-SOD 小目标检测模型(PP-YOLOE Small Object Detection)时,遇到了同样的报错。

复现环境: OS:windows10(anaconda 3) paddlepaddle:2.5.1 PaddleDetection:develop

更新到2.6.1就没有问题了。。