Why do I get this error when i try to run my own fisher prunning template :
Traceback (most recent call last):
File "/content/mmrazor/mmpose/tools/train.py", line 162, in
main()
File "/content/mmrazor/mmpose/tools/train.py", line 155, in main
runner = Runner.from_cfg(cfg)
File "/usr/local/lib/python3.10/dist-packages/mmengine/runner/runner.py", line 462, in from_cfg
runner = cls(
File "/usr/local/lib/python3.10/dist-packages/mmengine/runner/runner.py", line 429, in init
self.model = self.build_model(model)
File "/usr/local/lib/python3.10/dist-packages/mmengine/runner/runner.py", line 836, in build_model
model = MODELS.build(model)
File "/usr/local/lib/python3.10/dist-packages/mmengine/registry/registry.py", line 570, in build
return self.build_func(cfg, *args, **kwargs, registry=self)
File "/usr/local/lib/python3.10/dist-packages/mmengine/registry/build_functions.py", line 232, in build_model_from_cfg
return build_from_cfg(cfg, registry, default_args)
File "/usr/local/lib/python3.10/dist-packages/mmengine/registry/build_functions.py", line 121, in build_from_cfg
obj = obj_cls(**args) # type: ignore
File "/content/mmrazor/mmrazor/implementations/pruning/group_fisher/algorithm.py", line 57, in init
self.mutator.prepare_from_supernet(self.architecture)
File "/content/mmrazor/mmrazor/models/mutators/channel_mutator/channel_mutator.py", line 113, in prepare_from_supernet
units = self._prepare_from_tracer(supernet, self.parse_cfg)
File "/content/mmrazor/mmrazor/models/mutators/channel_mutator/channel_mutator.py", line 311, in _prepare_from_tracer
unit_configs = tracer.analyze(model)
File "/content/mmrazor/mmrazor/models/task_modules/tracer/channel_analyzer.py", line 107, in analyze
fx_graph = self._fx_trace(model)
File "/content/mmrazor/mmrazor/models/task_modules/tracer/channel_analyzer.py", line 132, in _fx_trace
args = self.demo_input.get_data(model)
File "/content/mmrazor/mmrazor/models/task_modules/demo_inputs/demo_inputs.py", line 34, in get_data
data = self._get_data(model, input_shape, training)
File "/content/mmrazor/mmrazor/models/task_modules/demo_inputs/default_demo_inputs.py", line 108, in _get_data
return defaul_demo_inputs(model, input_shape, training, self.scope)
File "/content/mmrazor/mmrazor/models/task_modules/demo_inputs/default_demo_inputs.py", line 79, in defaul_demo_inputs
return demo_input().get_data(model, input_shape, training)
File "/content/mmrazor/mmrazor/models/task_modules/demo_inputs/demo_inputs.py", line 34, in get_data
data = self._get_data(model, input_shape, training)
File "/content/mmrazor/mmrazor/models/task_modules/demo_inputs/demo_inputs.py", line 57, in _get_data
data = self._get_mm_data(model, input_shape, training)
File "/content/mmrazor/mmrazor/models/task_modules/demo_inputs/demo_inputs.py", line 147, in _get_mm_data
data = demo_mmpose_inputs(model, input_shape)
File "/content/mmrazor/mmrazor/models/task_modules/demo_inputs/mmpose_demo_input.py", line 32, in demo_mmpose_inputs
from mmpose.models.heads import RTMHead
ImportError: cannot import name 'RTMHead' from 'mmpose.models.heads' (/content/mmrazor/mmpose/mmpose/models/heads/init.py)
Thank you fro the attention
Please show your versions of mmpose, mmrazor and so on. It seems you are using latest mmpose which may be not supported by mmrazor.
The version of mmpose is 1.1.0 and teh version of mmrazor is the most recent one
Fixed by changing
https://github.com/open-mmlab/mmrazor/blob/90c7af1fdf35a606a2fceaaeb4b6be2f0dac4eb7/mmrazor/models/task_modules/demo_inputs/mmpose_demo_input.py#L32
to
from mmpose.models.heads import RTMCCHead as RTMHead