# TensorFlow Similarity: Metric Learning for Humans
TensorFlow Similarity is a [TensorFLow](https://tensorflow.org) package focused on making metric learning easy. Whether you are looking to train and serve models meant to find similar items (images/text/sounds) or apply semi-supervised contrastive techniques to boost models accuracy TensorFlow Similarity can help you start quickly and scale up efficiently. Its set of well-tested composable components that follows Keras best practices are meant to be seamlessly integrated into your TensorFlow workflows to get you results faster whether you are doing research or building products.
## Getting Started
### Installation
Use pip to install the library
```python
pip install tensorflow_similarity
```
### Tutorials
We created a few tutorials that highlights TF similarity core features to help you getting started:
| Tutorial | Learning Type | Description |
| ------ | :-----: | ---------- |
| [Hello World](notebooks/hello_world.ipynb) | Supervised | Train and use an image similarity model to find related MNIST digits |
| TODO | Semi-supervised| Train a semi-supervised model on CIFAR10 using contrastive learning |
| [Stanford Dogs](notebooks/supervised_advanced.ipynb) | Supervised | Train an image similarity classifiers on the Stanford Dogs dataset using some of the TF Similarity advanced features such as the TFRecordSampler and Evaluation Callbacks|
## Available components
![TensorFlow Similarity Overview](documentations/images/tfsim_overview.png)
As visible in the diagram above, TensorFlow Similiarity offers the following components:
- **`SimilarityModel()`**: This class subclasses the `tf.keras.model` class and extends it with additional properties that are useful for metric learning. For example it adds the methods:
1. `index()`: Enables indexing of the embedding
2. `lookup()`: Takes samples, calls predict(), and searches for neighbors within the index.
- **`MetricLoss()`**: This virtual class, that extends the `tf.keras.Loss` class, is the base class from which Metric losses are derived from. This subclassing ensures proper error checking, i.e., ensures the user is using a loss metric to train the models, perform better static analysis, and enforces additional constraints such as having a distance function that is supported by the index. Additionally, Metric losses make use of the fully tested and highly optimized pairwise distances functions provided by TF Similarity that are available under the `Distances.*` classes.
- **`Samplers()`**: Samplers are meant to ensure that each batch has at least n (with n >=2) examples of each class, as losses such as TripletLoss can’t work properly if this condition is not met. TF similarity offers an in-memory sampler for small dataset and a TFRecordDatasets for large scales one.
- **`Indexer()`**: The Indexer and its sub-component are meant to index known embeddings alongside their metadata. The embedding metadata is stored within `Table()`, while the `Matcher()` is used to perform [fast approximate neighboor searches](https://en.wikipedia.org/wiki/Nearest_neighbor_search) that are meant to quickly retrieve the indexed elements that are the closest to the embeddings supplied in the `lookup()` and `single_lookup()` function.
The `Evaluator()` component is used to compute EvalMetrics() on the specific index for evaluation and calibration purpose.
The default `Index()` sub-compoments run in-memory and are optimized to be used in interactive settings such as jupyter notebooks, colab, and metric computation during training (e.g using the `EvalCallback()` provided). Index are serialized as part of `model.save()` so you can reload them via `model.index_load()` for serving purpose or futher training / evaluation.
The default implementation can scale up to medium deployement (1M-10M+ points) easily provided the computers used have enough memory. For very large scale deployement you will need to sublcass the compoments to match your own architetctue. See FIXME colab to see how to deploy TF simialrity in production.
For more information about a given component head to the [API documentation](FIXME) or read [the TensorFlow Similarity paper](FIXME).
## Reference
Please cite this reference if you use TensorFlow similarity in your research
```bibtex
@article{EBSIM21,
title={TensorFlow Similarity: A Usuable, High-Performance Metric Learning Library},
author={Elie Bursztein, James Long, Shun Lim, Owen Vallis, Francois Chollet},
journal={Fixme},
year={2021}
}
```
## Disclaimer
This is not an official Google product.
没有合适的资源?快使用搜索试试~ 我知道了~
tensorflow_similarity-0.13.1.tar.gz
需积分: 1 0 下载量 71 浏览量
2024-03-24
23:50:57
上传
评论
收藏 53KB GZ 举报
温馨提示
Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。
资源推荐
资源详情
资源评论
收起资源包目录
tensorflow_similarity-0.13.1.tar.gz (56个子文件)
tensorflow_similarity-0.13.1
setup.py 2KB
LICENSE 11KB
PKG-INFO 650B
tests
__init__.py 107B
samplers
__init__.py 0B
test_memory_samplers.py 2KB
test_distance_metrics.py 3KB
evaluators
__init__.py 0B
test_memory_evaluator.py 5KB
test_distances.py 3KB
test_model.py 1KB
test_losses.py 4KB
test_algebra.py 3KB
matchers
__init__.py 0B
test_nmslib_matcher.py 2KB
test_indexer.py 5KB
test_callbacks.py 2KB
test_metrics.py 4KB
tables
__init__.py 0B
test_memory_table.py 2KB
conftest.py 135B
tensorflow_similarity.egg-info
SOURCES.txt 2KB
top_level.txt 28B
PKG-INFO 650B
requires.txt 234B
dependency_links.txt 1B
tensorflow_similarity
utils.py 565B
__init__.py 23B
losses.py 19KB
samplers
utils.py 1KB
__init__.py 226B
samplers.py 5KB
memory_samplers.py 7KB
tddataset_sampler.py 5KB
metrics.py 15KB
evaluators
evaluator.py 3KB
__init__.py 102B
memory_evaluator.py 10KB
layers.py 771B
algebra.py 3KB
visualization.py 3KB
matchers
__init__.py 86B
matcher.py 3KB
nmslib_matcher.py 5KB
indexer.py 23KB
types.py 4KB
models
__init__.py 54B
similarity_model.py 21KB
callbacks.py 6KB
tables
__init__.py 79B
table.py 3KB
memory_table.py 6KB
distances.py 7KB
distance_metrics.py 6KB
setup.cfg 38B
README.md 4KB
共 56 条
- 1
资源评论
程序员Chino的日记
- 粉丝: 3676
- 资源: 5万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功