PaddlePaddle / PaddleRS

Awesome Remote Sensing Toolkit based on PaddlePaddle.
Apache License 2.0
365 stars 88 forks source link

[General Issue]自行编写的srgan模型无法导入至paddlers中。 #190

Closed SandDeco closed 2 months ago

SandDeco commented 3 months ago

欢迎您的提问。辛苦您提供以下信息,以方便我们快速定位和解决问题:

  1. PaddleRS版本:PaddleRS release/1.0
  2. PaddlePaddle版本:PaddlePaddle 2.6.0 GPU
  3. 操作系统信息:Windows 11
  4. Python版本号:(如Python3.7/8)
  5. CUDA/cuDNN版本:CUDA 12/cuDNN:8.9
  6. 问题: 自定义了SRGAN模型,参照“PaddleRS开发指南”进行操作后,在VSCODE中可以看逐个看到定义模块的参数,但在部署阶段报错提示“ model = pdrs.tasks.res.SRGAN1() AttributeError: module 'paddlers.tasks.restorer' has no attribute 'SRGAN'”。 以下为定义后参照指南进行修改的文件,期望得到指点。 init.txt restorer.txt srgan.txt
Bobholamovic commented 2 months ago

你好,请确认你的PaddleRS是使用editable模式安装的。具体而言,可以通过:

pip show paddlers

查看paddlers的安装位置,如果显示的不是你修改的PaddleRS项目所对应的位置,可以尝试在项目根目录执行pip install -e .重新安装。

SandDeco commented 2 months ago

你好,请确认你的PaddleRS是使用editable模式安装的。具体而言,可以通过:

pip show paddlers

查看paddlers的安装位置,如果显示的不是你修改的PaddleRS项目所对应的位置,可以尝试在项目根目录执行pip install -e .重新安装。

你好,非常感谢您百忙之中提供的热情帮助。按照您的建议我进行了如下操作,但结果依旧不是很令人满意: 经测试,原始Paddelrs显示为 【Location: c:\users\——\anaconda3\envs\paddlepaddle\lib\site-packages】 时出现这一错误。 当运行pip install -e . 命令后,paddlers路径变更为 【Location: c:\users\——\pythings\paddlers Editable project location: c:\users\——\pythings\paddlers】 后,运行时报错: 【Traceback (most recent call last): File "c:/Users/——/Pythings/PaddleRS/.mystudy/原始模型平行对比/srgan训练(修改后).py", line 6, in import paddlers as pdrs File "c:\users\——\pythings\paddlers\paddlers__init.py", line 18, in from . import tasks, datasets, transforms, utils, tools, models, deploy File "c:\users\——\pythings\paddlers\paddlers\tasks__init__.py", line 15, in import paddlers.tasks.object_detector as detector File "c:\users\——\pythings\paddlers\paddlers\tasks\object_detector.py", line 27, in import paddlers.models.ppdet as ppdet ModuleNotFoundError: No module named 'paddlers.models'】 “paddlers\tasks\object_detector.py”文件中的导入项大规模失效。疑似命令运行后models目录被删除,在将项目的models文件夹复制入paddlers\models\路径下后,运行依旧报错,内容如下 【 File "c:/Users/——/Pythings/PaddleRS/.mystudy/原始模型平行对比/srgan训练(修改后).py", line 6, in import paddlers as pdrs File "c:\users\——\pythings\paddlers\paddlers__init.py", line 18, in from . import tasks, datasets, transforms, utils, tools, models, deploy File "c:\users\——\pythings\paddlers\paddlers\tasks\init.py", line 16, in import paddlers.tasks.segmenter as segmenter File "c:\users\——\pythings\paddlers\paddlers\tasks\segmenter.py", line 27, in import paddlers.rs_models.seg as cmseg File "c:\users\——\pythings\paddlers\paddlers\rs_models\init__.py", line 15, in from . import clas, det, seg, res, cd File "c:\users\——\pythings\paddlers\paddlers\rs_models\res\init.py", line 16, in from srgan import SRGAN ModuleNotFoundError: No module named 'srgan'】 (init__.py文件已经修改并添加导入。) 不清楚这是什么原因?

Bobholamovic commented 2 months ago

看起来PaddleRS项目的原始结构可能被做了一些改动,我建议使用git或类似工具检查当前PaddleRS项目相比原始项目是否只对指南中提及的文件做了修改~

对于这个错误:

from srgan import SRGAN ModuleNotFoundError: No module named 'srgan'】

请确认srgan模块的位置,以及其能够被Python解释器搜索到的方式。如果srgan.pyres_init.py位于同级目录,你需要的很可能是from .srgan import而不是from srgan import

SandDeco commented 2 months ago

看起来PaddleRS项目的原始结构可能被做了一些改动,我建议使用git或类似工具检查当前PaddleRS项目相比原始项目是否只对指南中提及的文件做了修改~

对于这个错误:

from srgan import SRGAN ModuleNotFoundError: No module named 'srgan'】

请确认srgan模块的位置,以及其能够被Python解释器搜索到的方式。如果srgan.pyres_init.py位于同级目录,你需要的很可能是from .srgan import而不是from srgan import

感谢,已经进入自定义模型报错阶段,看来这个问题已解决。 步骤如下,希望为后来者提供参考: 1、pip show paddlers查看目录后路径不在PaddleRS项目路径下。 2、运行pip install -e .后原有引用提示失效,检测后发现主目录文件丢失。 3、下载PaddleRS文件,覆盖原有缺失部分。 4、再次运行pip install -e . 这时报错的信息已经显示是自定义模型的问题,我猜应该是已经解决了。