Comments (5)
I think i've found the problem. type=mmfewshot.TFA
in config file cannot be recognized as well as other repo algorithms, for example type=mmdet.retinanet
.
Maybe It's mainly due to different file structure between mmfewshot
and the other openmmlab repo such as mmdetection
. So builder.py
in mmfewshot
cannot be correctly found for Registry(model)
class.
Also mmfewshot
is mainly built on mmcls
and mmdet
, so components in model TFA
in repo mmfewshot
, for example Faster RCNN
are originally buildt and registered in mmdet
, which makes Registry
function fail to find them under mmfewshot
Switch to type=TFA
and applying mmfewshot builder function to build models directly in MMFewShotArchitecture
works fine for me currently.
from mmrazor.
Can you make a PR so we can develop it together? @Chan-Sun
from mmrazor.
Can you make a PR so we can develop it together? @Chan-Sun
that's cool, but i only use only detection part from mmfewshot and kd part from mmrazor. i'm not sure if it works well for other parts.
i'll try to make a PR when finishing this work.
from mmrazor.
Welcome!
from mmrazor.
This problem seems to be common on other openmmlab repo, for example mmocr.
Here is my solution.Take TFA model in mmfewshot as an example.
- for architecture code. Add class
MMFewShotArchitecture
and slightly modify the originalBaseArchitecture
code
# Copyright (c) OpenMMLab. All rights reserved.
from mmcv.cnn import MODELS
from mmcv.runner import BaseModule
class BaseArchitecture(BaseModule):
"""Base class for architecture.
Args:
model (:obj:`torch.nn.Module`): Model to be slimmed, such as
``DETECTOR`` in MMDetection.
"""
def __init__(self, model, **kwargs):
super(BaseArchitecture, self).__init__(**kwargs)
#### modification code
if isinstance(model,dict):
self.model = MODELS.build(model)
else:
self.model = model
# Copyright (c) OpenMMLab. All rights reserved.
from mmrazor.models.builder import ARCHITECTURES
from mmfewshot.detection.models.builder import build_detector
@ARCHITECTURES.register_module()
class MMFewShotArchitecture(BaseArchitecture):
"""Architecture based on MMFewShot."""
def __init__(self,**kwargs):
#### This is for student model
model = build_detector(kwargs["model"])
super(MMFewShotArchitecture, self).__init__(model)
- for config code
model = dict(
type='TFA',
………………
- For distillation framework in mmrazor, take
SingleTeacherDistiller
as example
do not forget to modifybuild_teacher
function
from mmfewshot.detection.models import build_detector
@DISTILLERS.register_module()
class SingleTeacherDistiller(BaseDistiller):
def __init__(self,
teacher,
teacher_trainable=False,
teacher_norm_eval=True,
components=tuple(),
**kwargs):
super().__init__(**kwargs)
self.teacher = self.build_teacher(teacher)
def build_teacher(self, cfg):
###This is for teacher model
"""Build a model from the `cfg`."""
teacher = build_detector(cfg)
return teacher
from mmrazor.
Related Issues (20)
- I can't reproduce dfad results
- How to get started??
- [Bug] TypeError: 'NoneType' object is not iterable
- Try to reproduce CWD in VOC data set
- [Bug] (suggested temporary fix) Pytorch >= 2 causes mmrazor.engine to fail HOT 4
- [Bug] (suggested fix) `nn.Parameter` are not added to root after being traced in `mmrazor.models.task_utils.tracer.fx.custom_tracer.build_graphmodule()` HOT 2
- [Bug] (suggested fix) `mmrazor.models.algorithms.quantization.mm_architecture.MMArchitectureQuant.sync_qparams()` fails if there are modules present in other modes but not in forward `mode='tensor'` HOT 4
- I want to obtain the current epoch value and associate it with the custom distillation loss
- cannot use recorder to obtain panoptic_head info from mask2former
- [Bug] `mmrazor.engine.runner.quantization_loops.QATValLoop` calls `after_val_epoch` hook twice with different keys, causing `mmengine.hooks.checkpoint_hook._save_best_checkpoint()` to fail with `KeyError` for the `save_best` config
- [Bug] Custom Distillation MMSeg CWD loss nan problem
- When I use methodoutputs to access the results of assigner, I only obtain one sample
- Regarding tables and accuracy
- [Bug] (suggested fix) `mmrazor.models.algorithms.mm_architecture.MMArchitectureQuant.get_deploy_model()` fails if `predict` mode lacks nodes from the `model.quantizer.tracer.skipped_methods` configuration, but the architecture `quantizer.prepare(fp32_model)` has these nodes. HOT 4
- Is this a dead project ? HOT 1
- 我在用mmrazor通过yolov5-x蒸馏yolov5-s时候遇到了问题 HOT 1
- No Sign of activation quantization with QAT HOT 1
- MAP is stucked at 0 for Mobilenet V2 SSD QAT without pretrained model [Bug]
- [Docs] A100算力加持!书生大模型实战营第3期全面升级,趣味闯关模式等你开启
- Missing keys after RTMDET knowledge distillation HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mmrazor.