Geoffrey Hinton, Oriol Vinyals, Jeff Dean
We lifted 37 functions out of this paper's own repositories and ran 16 of them in a sandbox. "Ran" means the function executed on a synthesized input and returned a value. It is not a reproduction of the paper's results.
| Repository | Role | Ran |
|---|---|---|
| stdereka/knowledge-distillation | reimplementation | 3 of 3 |
| chumingqian/Model_Compression_For_YOLOV3-V4 | extension | 3 of 3 |
| KellyYutongHe/Knowledge-Distillation-Net-with-Swish | reimplementation | 2 of 2 |
| DunZhang/KnowledgeDistillation | reimplementation | 2 of 2 |
| mckunkel/DistillingObjectDetector | pwc_unofficial | 1 of 9 |
| knotgrass/Knowledge-Distillation | pwc_unofficial | 1 of 9 |
| yoshitomo-matsubara/torchdistill | reimplementation | 1 of 1 |
| MasLiang/Learning-without-Forgetting-using-Pytorch | reimplementation | 1 of 1 |
| wonbeomjang/Knowledge-Distilling-PyTorch | reimplementation | 1 of 1 |
| scy-x/d3still | extension | 1 of 1 |
| copy not recorded | — | 0 of 1 |
| yangze01/Distilling_the_Knowledge_in_a_Neural_Network_pytorch | reimplementation | 0 of 1 |
| trqminh/knowledge-distillation | reimplementation | 0 of 1 |
| KaiyuYue/mgd | reimplementation | 0 of 1 |
| JunzWu/Distilling-the-Knowledge-in-a-Neural-Network | reimplementation | 0 of 1 |
| Function | Status | Where it lives |
|---|---|---|
| compute_accuracy | Ran | yoshitomo-matsubara/torchdistill/examples/torchvision/image_classification.py code served (permissive licence) · get_code("a427a6169de8f607") |
| compute_mean_and_std | Ran | MasLiang/Learning-without-Forgetting-using-Pytorch/dataset.py pointer only (licence: NONE) · get_code("2cbf06e40dbf54ee") |
| conv_block | Ran | wonbeomjang/Knowledge-Distilling-PyTorch/models.py code served (permissive licence) · get_code("0a330946ecfac712") |
| d3_loss | Ran | scy-x/d3still/AIR_Distiller/distillers/D3.py pointer only (licence: NONE) · get_code("274528b19a06a729") |
| eval_epoch | Ran | stdereka/knowledge-distillation/training.py code served (permissive licence) · get_code("7308ca9b35a3b212") |
| fetch_teacher_outputs | Ran | KellyYutongHe/Knowledge-Distillation-Net-with-Swish/kd.py pointer only (licence: NONE) · get_code("7ee88cf415894459") |
| fit_epoch | Ran | stdereka/knowledge-distillation/training.py code served (permissive licence) · get_code("62f639fec5cb08e5") |
| loss_fn_kd | Ran | KellyYutongHe/Knowledge-Distillation-Net-with-Swish/kd.py pointer only (licence: NONE) · get_code("8a5635108617215c") |
| obtain_avg_forward_time | Ran | chumingqian/Model_Compression_For_YOLOV3-V4/normal_prune.py code served (permissive licence) · get_code("9c20329610d8c5e5") |
| obtain_filters_mask | Ran | chumingqian/Model_Compression_For_YOLOV3-V4/normal_prune.py code served (permissive licence) · get_code("acb7b29614f1a161") |
| output_adaptor | Ran | DunZhang/KnowledgeDistillation/Examples/example_multi_layer_based_model/distill_bert.py pointer only (licence: NOASSERTION) · get_code("0bd196791b1b86e6") |
| preprocess_input | Ran | mckunkel/DistillingObjectDetector/models/microxception.py code served (permissive licence) · get_code("bee766c6e15044c2") |
| prune_and_eval | Ran | chumingqian/Model_Compression_For_YOLOV3-V4/normal_prune.py code served (permissive licence) · get_code("ec78bec91ac01396") |
| softmax | Ran | knotgrass/Knowledge-Distillation/distiller/loss.py code served (permissive licence) · get_code("cb5cbea0e8219ff5") |
| train | Ran | stdereka/knowledge-distillation/training.py code served (permissive licence) · get_code("00a58257f6886584") |
| train_data_adaptor | Ran | DunZhang/KnowledgeDistillation/Examples/example_multi_layer_based_model/distill_bert.py pointer only (licence: NOASSERTION) · get_code("95712f5d0bd66d34") |
| SqueezeNet | Not yet run | mckunkel/DistillingObjectDetector/models/squeezenet.py code served (permissive licence) · get_code("f0854de100bbea76") |
| SqueezeNet | Not yet run | mckunkel/DistillingObjectDetector/models/squeezenet_model.py code served (permissive licence) · get_code("6300eb91406d21bf") |
| accuracy | Not yet run | this paper's copy was not recorded; identical code first harvested from zbh2047/clipping-algorithms pointer only · get_code("9b8289076669fe4f") |
| albumen_loader | Not yet run | knotgrass/Knowledge-Distillation/distiller/datasets.py code served (permissive licence) · get_code("77551a1423d80be3") |
| check_same_order | Not yet run | knotgrass/Knowledge-Distillation/distiller/sorted_same_order.py code served (permissive licence) · get_code("00c0d849e940be32") |
| conv2d_bn | Not yet run | mckunkel/DistillingObjectDetector/models/inceptionV3.py code served (permissive licence) · get_code("f14f766b7e289b16") |
| desc | Not yet run | knotgrass/Knowledge-Distillation/distiller/print_utils.py code served (permissive licence) · get_code("671c7f056497a8b6") |
| fire_module | Not yet run | mckunkel/DistillingObjectDetector/models/squeezenet.py code served (permissive licence) · get_code("1b249ba85d8cf4ba") |
| get_mobilenet | Not yet run | mckunkel/DistillingObjectDetector/models/mobilenet.py code served (permissive licence) · get_code("978081881d93f4be") |
| get_order | Not yet run | knotgrass/Knowledge-Distillation/distiller/sorted_same_order.py code served (permissive licence) · get_code("a8b17275da494ca9") |
| loss_fn_kd | Not yet run | knotgrass/Knowledge-Distillation/distiller/loss.py code served (permissive licence) · get_code("240a91c16bc48dd5") |
| mean_std | Not yet run | knotgrass/Knowledge-Distillation/distiller/pseudo_label.py code served (permissive licence) · get_code("9f00b79fbcd75706") |
| microXception | Not yet run | mckunkel/DistillingObjectDetector/models/microxception.py code served (permissive licence) · get_code("2d50b69c5762cfbe") |
| miniXception | Not yet run | mckunkel/DistillingObjectDetector/models/minixception.py code served (permissive licence) · get_code("3ec85b13b3da58a4") |
| preprocess_input | Not yet run | mckunkel/DistillingObjectDetector/models/squeezenet.py code served (permissive licence) · get_code("9eb8ac7c03e9b11b") |
| sort_by_order | Not yet run | knotgrass/Knowledge-Distillation/distiller/sorted_same_order.py code served (permissive licence) · get_code("37db7f404db2f6ab") |
| train | Not yet run | knotgrass/Knowledge-Distillation/distiller/distiller.py code served (permissive licence) · get_code("f7005e3d307e1c00") |
| train_body | Not yet run | yangze01/Distilling_the_Knowledge_in_a_Neural_Network_pytorch/joint_main.py pointer only (licence: NONE) · get_code("c3041253233293ca") |
| train_student_model | Not yet run | trqminh/knowledge-distillation/train/train_student.py pointer only (licence: NONE) · get_code("b7e8ebfd9b3a5233") |
| validate | Not yet run | KaiyuYue/mgd/cls/main_mgd.py code served (permissive licence) · get_code("41bcf9c6e97f30d5") |
| validate | Not yet run | JunzWu/Distilling-the-Knowledge-in-a-Neural-Network/main_imagenet.py pointer only (licence: NONE) · get_code("5b365f68a2be17aa") |
More are linked than shown here.
Some links come from the archived Papers with Code dataset (CC BY-SA 4.0): attribution and licence.
A very simple way to improve the performance of almost any machine learning algorithm is to train many different models on the same data and then to average their predictions [3]. Unfortunately, making predictions using a whole ensemble of models is cumbersome and may be too computationally expensive to allow deployment to a large number of users, especially if the individual models are large neural nets. Caruana and his collaborators [1] have shown that it is possible to compress the knowledge in an ensemble into a single model which is much easier to deploy and we develop this approach further using a different compression technique. We achieve some surprising results on MNIST and we show that we can significantly improve the acoustic model of a heavily used commercial system by distilling the knowledge in an ensemble of models into a single model. We also introduce a new type of ensemble composed of one or more full models and many specialist models which learn to distinguish fine-grained classes that the full models confuse. Unlike a mixture of experts, these specialist models can be trained rapidly and in parallel.
The same record, over MCP at https://syntology.ai/mcp:
get_harvested_code_for_paper("1503.02531")
get_code_for_paper("1503.02531")
have("1503.02531")
Connect an agent — have() is free.