|  | |
| # TensorFlow Official Models | |
| The TensorFlow official models are a collection of models | |
| that use TensorFlow’s high-level APIs. | |
| They are intended to be well-maintained, tested, and kept up to date | |
| with the latest TensorFlow API. | |
| They should also be reasonably optimized for fast performance while still | |
| being easy to read. | |
| These models are used as end-to-end tests, ensuring that the models run | |
| with the same or improved speed and performance with each new TensorFlow build. | |
| ## More models to come! | |
| The team is actively developing new models. | |
| In the near future, we will add: | |
| * State-of-the-art language understanding models: | |
| More members in Transformer family | |
| * Start-of-the-art image classification models: | |
| EfficientNet, MnasNet, and variants | |
| * A set of excellent objection detection models. | |
| ## Table of Contents | |
| - [Models and Implementations](#models-and-implementations) | |
| * [Computer Vision](#computer-vision) | |
| + [Image Classification](#image-classification) | |
| + [Object Detection and Segmentation](#object-detection-and-segmentation) | |
| * [Natural Language Processing](#natural-language-processing) | |
| * [Recommendation](#recommendation) | |
| - [How to get started with the official models](#how-to-get-started-with-the-official-models) | |
| ## Models and Implementations | |
| ### Computer Vision | |
| #### Image Classification | |
| | Model | Reference (Paper) | | |
| |-------|-------------------| | |
| | [MNIST](vision/image_classification) | A basic model to classify digits from the [MNIST dataset](http://yann.lecun.com/exdb/mnist/) | | |
| | [ResNet](vision/image_classification) | [Deep Residual Learning for Image Recognition](https://arxiv.org/abs/1512.03385) | | |
| | [EfficientNet](vision/image_classification) | [EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks](https://arxiv.org/abs/1905.11946) | | |
| #### Object Detection and Segmentation | |
| | Model | Reference (Paper) | | |
| |-------|-------------------| | |
| | [RetinaNet](vision/detection) | [Focal Loss for Dense Object Detection](https://arxiv.org/abs/1708.02002) | | |
| | [Mask R-CNN](vision/detection) | [Mask R-CNN](https://arxiv.org/abs/1703.06870) | | |
| | [ShapeMask](vision/detection) | [ShapeMask: Learning to Segment Novel Objects by Refining Shape Priors](https://arxiv.org/abs/1904.03239) | | |
| ### Natural Language Processing | |
| | Model | Reference (Paper) | | |
| |-------|-------------------| | |
| | [ALBERT (A Lite BERT)](nlp/albert) | [ALBERT: A Lite BERT for Self-supervised Learning of Language Representations](https://arxiv.org/abs/1909.11942) | | |
| | [BERT (Bidirectional Encoder Representations from Transformers)](nlp/bert) | [BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding](https://arxiv.org/abs/1810.04805) | | |
| | [NHNet (News Headline generation model)](nlp/nhnet) | [Generating Representative Headlines for News Stories](https://arxiv.org/abs/2001.09386) | | |
| | [Transformer](nlp/transformer) | [Attention Is All You Need](https://arxiv.org/abs/1706.03762) | | |
| | [XLNet](nlp/xlnet) | [XLNet: Generalized Autoregressive Pretraining for Language Understanding](https://arxiv.org/abs/1906.08237) | | |
| ### Recommendation | |
| | Model | Reference (Paper) | | |
| |-------|-------------------| | |
| | [NCF](recommendation) | [Neural Collaborative Filtering](https://arxiv.org/abs/1708.05031) | | |
| ## How to get started with the official models | |
| * The models in the master branch are developed using TensorFlow 2, | |
| and they target the TensorFlow [nightly binaries](https://github.com/tensorflow/tensorflow#installation) | |
| built from the | |
| [master branch of TensorFlow](https://github.com/tensorflow/tensorflow/tree/master). | |
| * The stable versions targeting releases of TensorFlow are available | |
| as tagged branches or [downloadable releases](https://github.com/tensorflow/models/releases). | |
| * Model repository version numbers match the target TensorFlow release, | |
| such that | |
| [release v2.2.0](https://github.com/tensorflow/models/releases/tag/v2.2.0) | |
| are compatible with | |
| [TensorFlow v2.2.0](https://github.com/tensorflow/tensorflow/releases/tag/v2.2.0). | |
| Please follow the below steps before running models in this repository. | |
| ### Requirements | |
| * The latest TensorFlow Model Garden release and TensorFlow 2 | |
| * If you are on a version of TensorFlow earlier than 2.2, please | |
| upgrade your TensorFlow to [the latest TensorFlow 2](https://www.tensorflow.org/install/). | |
| ```shell | |
| pip3 install tf-nightly | |
| ``` | |
| ### Installation | |
| #### Method 1: Install the TensorFlow Model Garden pip package | |
| **tf-models-nightly** is the nightly Model Garden package | |
| created daily automatically. pip will install all models | |
| and dependencies automatically. | |
| ```shell | |
| pip install tf-models-nightly | |
| ``` | |
| Please check out our [example](colab/fine_tuning_bert.ipynb) | |
| to learn how to use a PIP package. | |
| #### Method 2: Clone the source | |
| 1. Clone the GitHub repository: | |
| ```shell | |
| git clone https://github.com/tensorflow/models.git | |
| ``` | |
| 2. Add the top-level ***/models*** folder to the Python path. | |
| ```shell | |
| export PYTHONPATH=$PYTHONPATH:/path/to/models | |
| ``` | |
| If you are using a Colab notebook, please set the Python path with os.environ. | |
| ```python | |
| import os | |
| os.environ['PYTHONPATH'] += ":/path/to/models" | |
| ``` | |
| 3. Install other dependencies | |
| ```shell | |
| pip3 install --user -r official/requirements.txt | |
| ``` | |
| ## Contributions | |
| If you want to contribute, please review the [contribution guidelines](https://github.com/tensorflow/models/wiki/How-to-contribute). | |