After using Mask2FormerTransformerEncoder to obtain the feature memory extracted by the transformer encoder, where Mask2FormerTransformerEncoder inherits from DeformableDetrTransformerEncoder, I intend to further process the memory to serve as prior knowledge for the query, similar to the two-stage approach of DeformableDETR. However, I am unsure about how to proceed with the next steps. Currently, I am attempting to directly inherit the gen_encoder_output_proposals method from DeformableDETR, but this results in an error.
ImportError (note: full exception trace is shown but execution is paused at: _run_module_as_main)
cannot import name 'ConditionalDetrTransformerDecoder' from partially initialized module 'mmdet.models.layers' (most likely due to a circular import) (/home/dpr/mmdetection/mmdet/models/layers/init.py)
File "/home/dpr/mmdetection/mmdet/models/detectors/conditional_detr.py", line 8, in
from ..layers import (ConditionalDetrTransformerDecoder,
File "/home/dpr/mmdetection/mmdet/models/detectors/init.py", line 10, in
from .conditional_detr import ConditionalDETR
File "/home/dpr/mmdetection/mmdet/models/layers/msdeformattn_pixel_decoder.py", line 19, in
from ..detectors.deformable_detr import DeformableDETR
File "/home/dpr/mmdetection/mmdet/models/layers/init.py", line 12, in
from .msdeformattn_pixel_decoder import MSDeformAttnPixelDecoder
File "/home/dpr/mmdetection/mmdet/models/backbones/csp_darknet.py", line 11, in
from ..layers import CSPLayer
File "/home/dpr/mmdetection/mmdet/models/backbones/init.py", line 2, in
from .csp_darknet import CSPDarknet
File "/home/dpr/mmdetection/mmdet/models/init.py", line 2, in
from .backbones import # noqa: F401,F403
File "/home/dpr/.conda/envs/maskformer4/lib/python3.8/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "/home/dpr/.conda/envs/maskformer4/lib/python3.8/site-packages/mmengine/registry/registry.py", line 376, in import_from_location
import_module(loc)
File "/home/dpr/.conda/envs/maskformer4/lib/python3.8/site-packages/mmengine/registry/registry.py", line 451, in get
self.import_from_location()
File "/home/dpr/.conda/envs/maskformer4/lib/python3.8/site-packages/mmengine/registry/build_functions.py", line 98, in build_from_cfg
obj_cls = registry.get(obj_type)
File "/home/dpr/.conda/envs/maskformer4/lib/python3.8/site-packages/mmengine/registry/build_functions.py", line 232, in build_model_from_cfg
return build_from_cfg(cfg, registry, default_args)
File "/home/dpr/.conda/envs/maskformer4/lib/python3.8/site-packages/mmengine/registry/registry.py", line 570, in build
return self.build_func(cfg, args, **kwargs, registry=self)
File "/home/dpr/.conda/envs/maskformer4/lib/python3.8/site-packages/mmengine/runner/runner.py", line 836, in build_model
model = MODELS.build(model)
File "/home/dpr/.conda/envs/maskformer4/lib/python3.8/site-packages/mmengine/runner/runner.py", line 429, in init
self.model = self.build_model(model)
File "/home/dpr/.conda/envs/maskformer4/lib/python3.8/site-packages/mmengine/runner/runner.py", line 462, in from_cfg
runner = cls(
File "/home/dpr/mmdetection/tools/train.py", line 110, in main
runner = Runner.from_cfg(cfg)
File "/home/dpr/mmdetection/tools/train.py", line 121, in
main()
File "/home/dpr/.conda/envs/maskformer4/lib/python3.8/runpy.py", line 87, in _run_code
exec(code, run_globals)
File "/home/dpr/.conda/envs/maskformer4/lib/python3.8/runpy.py", line 194, in _run_module_as_main (Current frame)
return _run_code(code, main_globals, None,
ImportError: cannot import name 'ConditionalDetrTransformerDecoder' from partially initialized module 'mmdet.models.layers' (most likely due to a circular import) (/home/dpr/mmdetection/mmdet/models/layers/init.py)
After using Mask2FormerTransformerEncoder to obtain the feature memory extracted by the transformer encoder, where Mask2FormerTransformerEncoder inherits from DeformableDetrTransformerEncoder, I intend to further process the memory to serve as prior knowledge for the query, similar to the two-stage approach of DeformableDETR. However, I am unsure about how to proceed with the next steps. Currently, I am attempting to directly inherit the gen_encoder_output_proposals method from DeformableDETR, but this results in an error.
(我在使用了Mask2FormerTransformerEncoder得到由transformer encoder提取的特征memory后,其中Mask2FormerTransformerEncoder继承了DeformableDetrTransformerEncoder。我想将memory进一步处理,类似二阶段的DeformableDETR一样,作为先验知识给query,但是不知道怎么下一步操作。我目前的操作是直接继承DeformableDETR的gen_encoder_output_proposals方法,但是会报错:)
ImportError (note: full exception trace is shown but execution is paused at: _run_module_as_main) cannot import name 'ConditionalDetrTransformerDecoder' from partially initialized module 'mmdet.models.layers' (most likely due to a circular import) (/home/dpr/mmdetection/mmdet/models/layers/init.py) File "/home/dpr/mmdetection/mmdet/models/detectors/conditional_detr.py", line 8, in
from ..layers import (ConditionalDetrTransformerDecoder,
File "/home/dpr/mmdetection/mmdet/models/detectors/init.py", line 10, in
from .conditional_detr import ConditionalDETR
File "/home/dpr/mmdetection/mmdet/models/layers/msdeformattn_pixel_decoder.py", line 19, in
from ..detectors.deformable_detr import DeformableDETR
File "/home/dpr/mmdetection/mmdet/models/layers/init.py", line 12, in
from .msdeformattn_pixel_decoder import MSDeformAttnPixelDecoder
File "/home/dpr/mmdetection/mmdet/models/backbones/csp_darknet.py", line 11, in
from ..layers import CSPLayer
File "/home/dpr/mmdetection/mmdet/models/backbones/init.py", line 2, in
from .csp_darknet import CSPDarknet
File "/home/dpr/mmdetection/mmdet/models/init.py", line 2, in
from .backbones import # noqa: F401,F403
File "/home/dpr/.conda/envs/maskformer4/lib/python3.8/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "/home/dpr/.conda/envs/maskformer4/lib/python3.8/site-packages/mmengine/registry/registry.py", line 376, in import_from_location
import_module(loc)
File "/home/dpr/.conda/envs/maskformer4/lib/python3.8/site-packages/mmengine/registry/registry.py", line 451, in get
self.import_from_location()
File "/home/dpr/.conda/envs/maskformer4/lib/python3.8/site-packages/mmengine/registry/build_functions.py", line 98, in build_from_cfg
obj_cls = registry.get(obj_type)
File "/home/dpr/.conda/envs/maskformer4/lib/python3.8/site-packages/mmengine/registry/build_functions.py", line 232, in build_model_from_cfg
return build_from_cfg(cfg, registry, default_args)
File "/home/dpr/.conda/envs/maskformer4/lib/python3.8/site-packages/mmengine/registry/registry.py", line 570, in build
return self.build_func(cfg, args, **kwargs, registry=self)
File "/home/dpr/.conda/envs/maskformer4/lib/python3.8/site-packages/mmengine/runner/runner.py", line 836, in build_model
model = MODELS.build(model)
File "/home/dpr/.conda/envs/maskformer4/lib/python3.8/site-packages/mmengine/runner/runner.py", line 429, in init
self.model = self.build_model(model)
File "/home/dpr/.conda/envs/maskformer4/lib/python3.8/site-packages/mmengine/runner/runner.py", line 462, in from_cfg
runner = cls(
File "/home/dpr/mmdetection/tools/train.py", line 110, in main
runner = Runner.from_cfg(cfg)
File "/home/dpr/mmdetection/tools/train.py", line 121, in
main()
File "/home/dpr/.conda/envs/maskformer4/lib/python3.8/runpy.py", line 87, in _run_code
exec(code, run_globals)
File "/home/dpr/.conda/envs/maskformer4/lib/python3.8/runpy.py", line 194, in _run_module_as_main (Current frame)
return _run_code(code, main_globals, None,
ImportError: cannot import name 'ConditionalDetrTransformerDecoder' from partially initialized module 'mmdet.models.layers' (most likely due to a circular import) (/home/dpr/mmdetection/mmdet/models/layers/init.py)