Comments (3)
Hi @anujdutt9
Thank you for the info.
- If you use their implementations, you will first need to prepare a model wrapper to align the interface of object detection models in torchvision since the example code in my repo is designed to work with them. To avoid that hassle, you can consider Faster R-CNN models with MobileNetV3 in torchvision that were recently released as pretrained models.
- KD by Hinton et al. trains student model in end-to-end manner, but this requires the shape of final output from teacher to match that from student, and it would be difficult to apply it to object detectors. While image classifiers always return a fixed-shape output (1 x num_classes) given an image, it may be not always true for object detectors in a sense that the number of bounding boxes predicted by teacher may be different from that by student. On top of that, the object detection task is a combination of regression (bbox coordinates) and classification (for each bbox), and the bboxes predicted by teacher and student may target different objects even if their final output shape matches, that will block knowledge distillation in end-to-end manner.
I'd suggest that you find a few papers about KD specifically for object detection so that you can see
- how the loss functions look,
- from what layers in student/teacher you'll need to extract the input/output in order to compute the losses, and
- whether or not the methods are applicable to your models
from torchdistill.
Hi @anujdutt9
Sure, I can help you use torchdistill for SSD object detectors.
Could you provide URLs for
- PyTorch models (e.g., PyTorch hub, package, or repo) and
- (optional) knowledge distillation approaches
that you want to use?
Basically, torchidistill provides model-agnostic pipelines, thus can collaborate with arbitrary models.
As you might know, this repo contains some official examples for R-CNN object detectors if you're interested in other detection models as well.
from torchdistill.
Hi, @yoshitomo-matsubara Thanks for your response. Yes sure.
-
To begin with, I am thinking of the SSD model provided by PyTorch here:
https://pytorch.org/hub/nvidia_deeplearningexamples_ssd/
as the teacher, and then I can either use this model with some changes or create a smaller version of it like using a smaller backbone and use that as a student.
An example could be using an SSD with MobileNetv2/3 as the backbone as implemented here:https://github.com/qfgaohao/pytorch-ssd
or since the SSD teacher model above uses a ResNet-50 model as the backbone, using a ResNet-18 as a backbone for the student model could work as well. -
As for the knowledge distillation approaches, I am looking at the general approach as mentioned in the original paper by Geoffery Hinton, to begin with.
Yes, I did look at the existing models, but I am looking at a bit lighter, faster version of the model capable of running on mobile/edge devices, hence SSD or YOLO-like models were my first choice. Thanks
from torchdistill.
Related Issues (20)
- Distilling Knowledge from a image classification model with sigmoid function and binary cross entropy HOT 3
- Bug. Bad implement. HOT 2
- Combine two distillation losses HOT 9
- Similarity Preserving KD HOT 2
- How to train my own COCO dataset for object detection? HOT 1
- Why using `log_softmax` instead of `softmax`? HOT 1
- ValueError: batchmean is not a valid value for reduction HOT 1
- Disagreement betweeen the log and configuration of kd-resnet18_from_resnet34 HOT 1
- Use different models as Teacher/Student HOT 1
- Custom Data HOT 1
- Where is trained model? HOT 1
- Not a bug but a discrepency between the log and config file for kd-resnet18_from_resnet34 HOT 1
- How should I use Torchdistill? HOT 1
- [BUG] Not supported to Nvidia 4090 HOT 1
- I tried with this script also, only single nproc seems to be working. Do i need to define any additional enviornment variables like RANK or LocaL HOST HOT 1
- [BUG] fp16 causes AssertionError: No inf checks were recorded for this optimizer HOT 4
- [BUG] Missing Link in Readme HOT 1
- [BUG]ImportError: cannot import name 'import_dependencies' from 'torchdistill.common.main_util' HOT 2
- is tochdistill support knowlede distillation for Vision Foundation Models like Grounding Dino / Grounding DinoSAM ? HOT 1
- [BUG] ModuleNotFoundError: No module named 'torch._six' HOT 3
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 torchdistill.