|
1 | 1 | # Image Classification Using Distributed Training |
2 | 2 |
|
3 | | -This example is using TensorFlow, Horovod, and Nuclio demonstrating end to end solution for image classification, |
4 | | -it consists of 4 MLRun and Nuclio functions: |
| 3 | +- [Overview](#image-classif-demo-overview) |
| 4 | +- [Notebooks and Code](#image-classif-demo-nbs-n-code) |
5 | 5 |
|
6 | | -1. import an image archive from S3 to the cluster file system |
7 | | -2. Tag the images based on their name structure |
8 | | -3. Distrubuted training using TF, Keras and Horovod |
9 | | -4. Automated deployment of Nuclio model serving function (form [Notebook](nuclio-serving-tf-images.ipynb) and from [Dockerfile](./inference-docker)) |
| 6 | +<a id="image-classif-demo-overview"></a> |
| 7 | +## Overview |
10 | 8 |
|
11 | | -<br><p align="center"><img src="workflow.png" width="600"/></p><br> |
| 9 | +This demo demonstrates an end-to-end solution for image recognition: the application uses TensorFlow, Keras, Horovod, and Nuclio to build and train an ML model that identifies (recognizes) and classifies images. |
| 10 | +The application consists of four MLRun and Nuclio functions for performing the following operations: |
| 11 | + |
| 12 | +1. Import an image archive from from an Amazon Simple Storage (S3) bucket to the platform's data store. |
| 13 | +2. Tag the images based on their name structure. |
| 14 | +3. Train the image-classification ML model by using [TensorFlow](https://www.tensorflow.org/) and [Keras](https://keras.io/); use [Horovod](https://eng.uber.com/horovod/) to perform distributed training over either GPUs or CPUs. |
| 15 | +4. Automatically deploy a Nuclio model-serving function from [Jupyter Notebook](nuclio-serving-tf-images.ipynb) or from a [Dockerfile](./inference-docker). |
12 | 16 |
|
13 | | -The Example also demonstrate an [automated pipeline](mlrun_mpijob_pipe.ipynb) using MLRun and KubeFlow pipelines |
| 17 | +<br><p align="center"><img src="workflow.png" width="600"/></p><br> |
14 | 18 |
|
15 | | -## Notebooks & Code |
| 19 | +This demo also provides an example of an [automated pipeline](image-classification/02-create_pipeline.ipynb) using [MLRun](https://github.com/mlrun/mlrun) and [Kubeflow pipelines](https://github.com/kubeflow/pipelines). |
16 | 20 |
|
17 | | -* [All-in-one: Import, tag, launch training, deploy serving](01-image-classification.ipynb) |
18 | | -* [Training function code](horovod-training.py) |
19 | | -* [Serving function development and testing](nuclio-serving-tf-images.ipynb) |
20 | | -* [Auto generation of KubeFlow pipelines workflow](02-create_pipeline.ipynb) |
21 | | -* [Building serving function using Dockerfile](./inference-docker) |
22 | | - * [function code](./inference-docker/main.py) |
23 | | - * [Dockerfile](./inference-docker/Dockerfile) |
| 21 | +<a id="image-classif-demo-nbs-n-code"></a> |
| 22 | +## Notebooks and Code |
24 | 23 |
|
| 24 | +- [**01-image-classification.ipynb**](01-image-classification.ipynb) — all-in-one: import, tag, launch train, deploy, and serve |
| 25 | +- [**horovod-training.py**](horovod-training.py) — train function code |
| 26 | +- [**nuclio-serving-tf-images.ipynb**](nuclio-serving-tf-images.ipynb) — serve function development and test |
| 27 | +- [**02-create_pipeline.ipynb**](02-create_pipeline.ipynb) — auto-generate a Kubeflow pipeline workflow |
| 28 | +- **inference-docker/** — build and serve functions using a Dockerfile: |
| 29 | + - [**main.py**](./inference-docker/main.py) — function code |
| 30 | + - [**Dockerfile**](./inference-docker/Dockerfile) — a Dockerfile |
0 commit comments