The following diagram provides an overview of our system:
![](https://static.packt-cdn.com/products/9781786462961/graphics/assets/4775f600-6347-406f-a60f-5ed63c7486f9.png)
In this system, we will use an initial dataset to train a convolutional neural network model on a training server. Then, the model will be served in a production server with TensorFlow Serving. On the production server, there will be a Flask server that allows users to upload a new image and correct the label if the model goes wrong. At a defined time in the day, the training server will combine all the user-labeled images with the current dataset to automatically fine-tune the model and send it to the production server. Here is the wireframe of the web interface that allows users to upload and receive the result:
![](https://static.packt-cdn.com/products/9781786462961/graphics/assets/2e689f45-e3c9-41c9-afd5-9a2780a8c0ad.png)