# Acknowledgements
### Contributors
Thanks to the contributors who made pull requests!
| Contributor | Highlights |
| ------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [domenicoMuscill0](https://github.com/domenicoMuscill0) | - [ManifoldLoss](https://kevinmusgrave.github.io/pytorch-metric-learning/losses/manifold_loss/#manifoldloss)
- [P2SGradLoss](https://kevinmusgrave.github.io/pytorch-metric-learning/losses/p2s_grad_loss/#p2sgradloss)
- [HistogramLoss](https://kevinmusgrave.github.io/pytorch-metric-learning/losses/histogram_loss/#histogramloss)
- [DynamicSoftMarginLoss](https://kevinmusgrave.github.io/pytorch-metric-learning/losses/dynamic_soft_margin_loss/#dynamicsoftmarginloss)
- [RankedListLoss](https://kevinmusgrave.github.io/pytorch-metric-learning/losses/ranked_list_loss/#rankedlistloss)
- Faiss GPU search without CPU transfers |
| [mlopezantequera](https://github.com/mlopezantequera) | - Made the testers, since replaced by the [evaluation recipe](https://kevinmusgrave.github.io/pytorch-metric-learning/recipes/evaluation/), work on any combination of query and reference sets
- Made [AccuracyCalculator](https://kevinmusgrave.github.io/pytorch-metric-learning/accuracy_calculation/) work with arbitrary label comparisons |
| [cwkeam](https://github.com/cwkeam) | - [SelfSupervisedLoss](https://kevinmusgrave.github.io/pytorch-metric-learning/losses/self_supervised_loss/#selfsupervisedloss)
- [VICRegLoss](https://kevinmusgrave.github.io/pytorch-metric-learning/losses/vicreg_loss/#vicregloss)
- Added mean reciprocal rank accuracy to [AccuracyCalculator](https://kevinmusgrave.github.io/pytorch-metric-learning/accuracy_calculation/)
- The BaseLossWrapper abstraction (version 2) |
| [ir2718](https://github.com/ir2718) | - [ThresholdConsistentMarginLoss](https://kevinmusgrave.github.io/pytorch-metric-learning/losses/threshold_consistent_margin_loss/#thresholdconsistentmarginloss)
- [SmoothAPLoss](https://kevinmusgrave.github.io/pytorch-metric-learning/losses/smooth_ap_loss/#smoothaploss)
- The Datasets module, removed in the next major release |
| [marijnl](https://github.com/marijnl) | - [BatchEasyHardMiner](https://kevinmusgrave.github.io/pytorch-metric-learning/miners/#batcheasyhardminer)
- The TwoStreamMetricLoss trainer (version 2)
- GlobalTwoStreamEmbeddingSpaceTester, preserved as [two-stream evaluation](https://kevinmusgrave.github.io/pytorch-metric-learning/recipes/evaluation/#two-stream-evaluation)
- Historical example using trainers.TwoStreamMetricLoss |
| [chingisooinar](https://github.com/chingisooinar) | - [SubCenterArcFaceLoss](https://kevinmusgrave.github.io/pytorch-metric-learning/losses/subcenter_arcface_loss/#subcenterarcfaceloss)
- [DynamicArcFaceLoss](https://kevinmusgrave.github.io/pytorch-metric-learning/losses/dynamic_arcface_loss/#dynamicarcfaceloss) |
| [elias-ramzi](https://github.com/elias-ramzi) | [HierarchicalSampler](https://kevinmusgrave.github.io/pytorch-metric-learning/samplers/#hierarchicalsampler) |
| [fjsj](https://github.com/fjsj) | [SupConLoss](https://kevinmusgrave.github.io/pytorch-metric-learning/losses/supcon_loss/#supconloss) |
| [AlenUbuntu](https://github.com/AlenUbuntu) | [CircleLoss](https://kevinmusgrave.github.io/pytorch-metric-learning/losses/circle_loss/#circleloss) |
| [interestingzhuo](https://github.com/interestingzhuo) | [PNPLoss](https://kevinmusgrave.github.io/pytorch-metric-learning/losses/pnp_loss/#pnploss) |
| [wconnell](https://github.com/wconnell) | Learning a scRNAseq Metric Embedding |
| [mkmenta](https://github.com/mkmenta) | Improved `get_all_triplets_indices` (fixed the `INT_MAX` error) |
| [AlexSchuy](https://github.com/AlexSchuy) | Optimized random triplet sampling (`utils.indexing.get_random_triplet_indices`) |
| [JohnGiorgi](https://github.com/JohnGiorgi) | `all_gather` in the [distributed wrappers](https://kevinmusgrave.github.io/pytorch-metric-learning/distributed) |
| [Hummer12007](https://github.com/Hummer12007) | The trainer key checker (version 2) |
| [vltanh](https://github.com/vltanh) | Dataset support in `InferenceModel.train_indexer` (version 2) |
| [btseytlin](https://github.com/btseytlin) | `InferenceModel.get_nearest_neighbors` (version 2) |
| [mlw214](https://github.com/mlw214) | Per-class accuracy in [AccuracyCalculator](https://kevinmusgrave.github.io/pytorch-metric-learning/accuracy_calculation/) |
| [layumi](https://github.com/layumi) | [InstanceLoss](https://kevinmusgrave.github.io/pytorch-metric-learning/losses/instance_loss/#instanceloss) |
| [NoTody](https://github.com/NoTody) | Helped add `ref_emb` and `ref_labels` to the distributed wrappers. |
| [ElisonSherton](https://github.com/ElisonSherton) | Fixed an edge case in ArcFaceLoss. |
| [stompsjo](https://github.com/stompsjo) | Improved documentation for NTXentLoss. |
| [Puzer](https://github.com/Puzer) | Bug fix for PNPLoss. |
| [elisim](https://github.com/elisim) | Developer improvements to DistributedLossWrapper. |
| [lucamarini22](https://github.com/lucamarini22) | [#743](https://github.com/KevinMusgrave/pytorch-metric-learning/pull/743) |
| [marcpaga](https://github.com/marcpaga) | Fixed options forwarding in SubCenterArcFaceLoss ([#746](https://github.com/KevinMusgrave/pytorch-metric-learning/pull/746)) |
| [GaetanLepage](https://github.com/GaetanLepage) | [#668](https://github.com/KevinMusgrave/pytorch-metric-learning/pull/668) |
| [z1w](https://github.com/z1w) | Fixed DistanceWeightedMiner weight underflow ([#278](https://github.com/KevinMusgrave/pytorch-metric-learning/pull/278)) |
| [thinline72](https://github.com/thinline72) | [#233](https://github.com/KevinMusgrave/pytorch-metric-learning/pull/233) |
| [tpanum](https://github.com/tpanum) | [#230](https://github.com/KevinMusgrave/pytorch-metric-learning/pull/230) |
| [fralik](https://github.com/fralik) | Moved the package to the `src` layout ([#36](https://github.com/KevinMusgrave/pytorch-metric-learning/pull/36)) |
| [joaqo](https://github.com/joaqo) | Fixed inference parameter overrides ([#286](https://github.com/KevinMusgrave/pytorch-metric-learning/pull/286)) |
| [JoOkuma](https://github.com/JoOkuma) | Fixed an MPerClassSampler bug ([#13](https://github.com/KevinMusgrave/pytorch-metric-learning/pull/13)) |
| [gkouros](https://github.com/gkouros) | [#322](https://github.com/KevinMusgrave/pytorch-metric-learning/pull/322) |
| [yutanakamura-tky](https://github.com/yutanakamura-tky) | Embedding type checks in inference ([#332](https://github.com/KevinMusgrave/pytorch-metric-learning/pull/332)) |
| [KinglittleQ](https://github.com/KinglittleQ) | [#364](https://github.com/KevinMusgrave/pytorch-metric-learning/pull/364) |
| [martin0258](https://github.com/martin0258) | [#522](https://github.com/KevinMusgrave/pytorch-metric-learning/pull/522) |
| [michaeldeyzel](https://github.com/michaeldeyzel) | Fixed NCALoss ([#514](https://github.com/KevinMusgrave/pytorch-metric-learning/pull/514)) |
| [HSinger04](https://github.com/HSinger04) | Logging preset fixes ([#592](https://github.com/KevinMusgrave/pytorch-metric-learning/pull/592)) |
| [rheum](https://github.com/rheum) | Sampler documentation ([#615](https://github.com/KevinMusgrave/pytorch-metric-learning/pull/615)) |
| [akshitkhokhani](https://github.com/akshitkhokhani) | Fixed large integer labels colliding in [AccuracyCalculator](https://kevinmusgrave.github.io/pytorch-metric-learning/accuracy_calculation/) ([#763](https://github.com/KevinMusgrave/pytorch-metric-learning/pull/763)) |
| [QibinLiang](https://github.com/QibinLiang) | [MultiSupConLoss](https://kevinmusgrave.github.io/pytorch-metric-learning/losses/multi_supcon_loss/#multisupconloss) |
| [bot66](https://github.com/bot66) | Documentation fix ([#644](https://github.com/KevinMusgrave/pytorch-metric-learning/pull/644)) |
### Facebook AI
Thank you to [Ser-Nam Lim](https://sites.google.com/site/sernam) at [Facebook AI](https://ai.facebook.com/), and my research advisor, [Professor Serge Belongie](https://www.belongielab.org/). This project began during my internship at Facebook AI where I received valuable feedback from Ser-Nam, and his team of computer vision and machine learning engineers and research scientists. In particular, thanks to [Ashish Shah](https://www.linkedin.com/in/ashish217/) and [Austin Reiter](https://www.linkedin.com/in/austin-reiter-3962aa7/) for reviewing my code during its early stages of development.
### Open-source repos
This library contains code adapted from several open-source repositories.
[THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md) lists each one, maps it to the
files it informed, and reproduces its license notice.
### Logo
Thanks to [Jeff Musgrave](https://www.designgenius.ca/) for designing the logo.