{ "info": { "author": "yliess", "author_email": "hatiyliess86@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "\nTriplet Loss Utility for Pytorch Library.\n\n# TripletTorch\n\nTripletTorch is a small pytorch utility for triplet loss projects. It provides\nsimple way to create custom triplet datasets and common triplet mining loss\ntechniques.\n\n## Install\n\nInstall the module using the pip utility ( may require to run as sudo ).\n\n```bash\npip3 install triplettorch\n```\n\n## Usage\n\n### Triplet Dataset\n\n```python\nfrom triplettorch import TripletDataset\n\n# Create a triplet dataset given:\n# * labels : array of label ( class ) for each sample of the dataset\n# * data_fn : method to access data for a given index in the dataset\n# * size : number of samples in the dataset\n# * n_sample: number of sample per draw ( to increase probability to\n# contain valid triplets in a batch )\n# Do not forget to concatenate batch dimension and sample dimension\n# when used with a DataLoader as TripletDataset[ idx ] returns a\n# ( batch_size, n_sample, ... ) dimension tensor for labels and data\ndataset = TripletDataset( labels, data_fn, size, n_sample )\n```\n\n### Triplet Mining\n\n```python\nfrom triplettorch import AllTripletMiner, HardNegativeTripletMiner\n\n# Define the triplet mining loss given:\n# * margin: the margin float value from the triplet loss definition\nminer = AllTripletMiner( .5 ).cuda( )\nminer = HardNegativeTripletMiner( .5 ).cuda( )\n\n# Use the loss in training given:\n# * labels : array of label ( class ) for each sample of the batch\n# * embeddings: output of the neural network for each sample of the batch\n# Returns two values:\n# * loss : triplet loss value\n# * frac_pos: fraction of positive triplets\n# None ( None HardNegativeTripletMiner )\nloss, frac_pos = miner( labels, embeddings )\n```\n\n## Example\n\nThe repository provides an example application with the MNIST dataset.\n\n![ MNIST ]( examples/MNIST_AllTripletMiner.png )\n\n\n## References\n* [FaceNet: A Unified Embedding for Face Recognition and Clustering]\n* [Triplet Loss and Online Triplet Mining in TensorFlow]\n\n[FaceNet: A Unified Embedding for Face Recognition and Clustering]: https://arxiv.org/pdf/1503.03832.pdf\n[Triplet Loss and Online Triplet Mining in TensorFlow]:https://omoindrot.github.io/triplet-loss\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/TowardHumanizedInteraction/TripletTorch", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "TripletTorch", "package_url": "https://pypi.org/project/TripletTorch/", "platform": "", "project_url": "https://pypi.org/project/TripletTorch/", "project_urls": { "Homepage": "https://github.com/TowardHumanizedInteraction/TripletTorch" }, "release_url": "https://pypi.org/project/TripletTorch/0.1.2/", "requires_dist": [ "numpy (==1.17.2)", "torch (==1.2.0)", "torchvision (==0.4.0)", "tqdm (==4.36.1)", "matplotlib (==3.1.1)" ], "requires_python": ">=3.4, <4", "summary": "Triplet Loss Utils for Pytorch Library.", "version": "0.1.2" }, "last_serial": 5936256, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "0cbb69efa3bc9631f1b532b25f149a61", "sha256": "1e917cc54e6d097c72e523dd6fd6a88fa6f92c6bd8e724895ca49063346a11c0" }, "downloads": -1, "filename": "TripletTorch-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "0cbb69efa3bc9631f1b532b25f149a61", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4, <4", "size": 5228, "upload_time": "2019-10-06T21:49:31", "url": "https://files.pythonhosted.org/packages/de/c6/742aeb3951abdaf6e192341e3eb8dce168369befa196106f8ba3b093a434/TripletTorch-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fe73745d2b3ab95d455f29efb922f194", "sha256": "e2334d8428f7f06d133efd5cb01756033e77aad8774d4570c4f3d95de2564247" }, "downloads": -1, "filename": "TripletTorch-0.1.0.tar.gz", "has_sig": false, "md5_digest": "fe73745d2b3ab95d455f29efb922f194", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4, <4", "size": 4484, "upload_time": "2019-10-06T21:49:34", "url": "https://files.pythonhosted.org/packages/06/72/665194e3fd42331f040d9e26a70562dcd48ff232bdb507626e4eadea5f94/TripletTorch-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "7651e31a897763b3632238ca47a73188", "sha256": "4dab7890c209d327b2ca84ea61ffeb0c919c796e9248db0ec6041bd04aa4b529" }, "downloads": -1, "filename": "TripletTorch-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "7651e31a897763b3632238ca47a73188", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4, <4", "size": 5259, "upload_time": "2019-10-06T21:52:25", "url": "https://files.pythonhosted.org/packages/c2/31/673bc2686b6a61dd16642c7eedc59e493d899130e0e5d9ce6875754175dd/TripletTorch-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3e4f6f5ef3eae74b355faef940b09641", "sha256": "530a0d6303afab8c42442761bf60e03b1f3ccb1d896087b93902ce2509a5c19a" }, "downloads": -1, "filename": "TripletTorch-0.1.1.tar.gz", "has_sig": false, "md5_digest": "3e4f6f5ef3eae74b355faef940b09641", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4, <4", "size": 4486, "upload_time": "2019-10-06T21:52:27", "url": "https://files.pythonhosted.org/packages/d6/5c/5987b4989fda6759ad00e825206a0e50dbc01e3840064fe313de6e4d915f/TripletTorch-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "5424f3076bc867253b923c65e1bb110b", "sha256": "1825094af01e067d7afc2eed46fa58e3ceb51ff9f32febe31486152be9d8e991" }, "downloads": -1, "filename": "TripletTorch-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "5424f3076bc867253b923c65e1bb110b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4, <4", "size": 6130, "upload_time": "2019-10-06T22:53:41", "url": "https://files.pythonhosted.org/packages/07/d3/1c9f8221e173ed491c604472876e533beccb62ca2e20fd841e8c7d78b203/TripletTorch-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "61357944c38f8321cc52a92fce184941", "sha256": "f8a73c3eae348e3a56c2fafe3d7b20d962392b77604ee6ba3a9691eff87d7fd6" }, "downloads": -1, "filename": "TripletTorch-0.1.2.tar.gz", "has_sig": false, "md5_digest": "61357944c38f8321cc52a92fce184941", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4, <4", "size": 5502, "upload_time": "2019-10-06T22:53:42", "url": "https://files.pythonhosted.org/packages/09/42/53d62e2c287baf452e8d3f05814dfaaf745e76e20e13582cde77ccc08bd5/TripletTorch-0.1.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "5424f3076bc867253b923c65e1bb110b", "sha256": "1825094af01e067d7afc2eed46fa58e3ceb51ff9f32febe31486152be9d8e991" }, "downloads": -1, "filename": "TripletTorch-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "5424f3076bc867253b923c65e1bb110b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4, <4", "size": 6130, "upload_time": "2019-10-06T22:53:41", "url": "https://files.pythonhosted.org/packages/07/d3/1c9f8221e173ed491c604472876e533beccb62ca2e20fd841e8c7d78b203/TripletTorch-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "61357944c38f8321cc52a92fce184941", "sha256": "f8a73c3eae348e3a56c2fafe3d7b20d962392b77604ee6ba3a9691eff87d7fd6" }, "downloads": -1, "filename": "TripletTorch-0.1.2.tar.gz", "has_sig": false, "md5_digest": "61357944c38f8321cc52a92fce184941", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4, <4", "size": 5502, "upload_time": "2019-10-06T22:53:42", "url": "https://files.pythonhosted.org/packages/09/42/53d62e2c287baf452e8d3f05814dfaaf745e76e20e13582cde77ccc08bd5/TripletTorch-0.1.2.tar.gz" } ] }