In this tutorial, we are going to cover TensorFlow Serving, which is a system for serving machine learning models in production environments. TensorFlow Serving is a flexible, high-performance serving system for machine learning models, designed for production environments. It has a flexible architecture that allows you to deploy new algorithms and experiment with them easily.
For this tutorial, we are going to assume that you have some basic knowledge of TensorFlow and Python. If you are new to TensorFlow, we recommend checking out some of the introductory tutorials available on the TensorFlow website.
Let’s get started with our tutorial on TensorFlow Serving!
Step 1: Installing TensorFlow Serving
The first step is to install TensorFlow Serving on your machine. You can install TensorFlow Serving using Docker, but for this tutorial, we are going to install it using pip. Open your terminal and run the following command:
pip install tensorflow-serving-api
Step 2: Building a TensorFlow model
Next, we need to build a TensorFlow model that we want to serve using TensorFlow Serving. For this tutorial, we are going to build a simple model that classifies images of handwritten digits from the MNIST dataset. Here is the code to build the model:
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Flatten, Dense
# Load the MNIST dataset
mnist = tf.keras.datasets.mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()
# Normalize the pixel values
x_train, x_test = x_train / 255.0, x_test / 255.0
# Build the model
model = Sequential([
Flatten(input_shape=(28, 28)),
Dense(128, activation='relu'),
Dense(10, activation='softmax')
])
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
# Train the model
model.fit(x_train, y_train, epochs=5, validation_data=(x_test, y_test))
Step 3: Exporting the model for TensorFlow Serving
Once we have trained our model, we need to export it in a format that TensorFlow Serving can understand. We can do this using the SavedModel
format. Here is the code to export the model:
import os
# Define the directory to save the model
export_path = 'saved_model/1'
# Save the model in the SavedModel format
model.save(export_path)
Step 4: Running TensorFlow Serving
Now that we have exported our model, we can start TensorFlow Serving to serve it. Open your terminal and run the following command:
tensorflow_model_server --port=8500 --rest_api_port=8501 --model_name=mnist --model_base_path=/path/to/exported_model
Make sure to replace /path/to/exported_model
with the path to the directory where you saved your exported model.
Step 5: Making predictions using the served model
Once TensorFlow Serving is running, we can make predictions using the served model. We can use the REST API provided by TensorFlow Serving to make predictions. Here is an example code to make predictions using the served model:
import requests
import json
# Define the input data
data = json.dumps({"signature_name": "serving_default", "instances": x_test[0:3].tolist()})
# Make a POST request to the prediction endpoint
headers = {"content-type": "application/json"}
response = requests.post('http://localhost:8501/v1/models/mnist:predict', data=data, headers=headers)
# Print the predictions
predictions = json.loads(response.text)['predictions']
print(predictions)
And that’s it! You have successfully served a TensorFlow model using TensorFlow Serving and made predictions using the served model.
In this tutorial, we covered how to install TensorFlow Serving, build a TensorFlow model, export the model for serving, run TensorFlow Serving, and make predictions using the served model. TensorFlow Serving is a powerful tool for serving machine learning models in production environments, and we hope this tutorial helped you understand how to use it.
If you have any questions or run into any issues, feel free to ask for help in the comments section. Happy coding!
Check out our premium machine learning course with 2 Industry projects: https://codebasics.io/courses/machine-learning-for-data-science-beginners-to-advanced
{
"error": "Malformed request: POST /v1/models/garbage_model"
}
can someone help me, or maybe have some problem and solve
excellent content!
Tensorflow _text is not working or no module declared
localhost refused to connect is the error i am getting. Before that everything was exactly as you mentioned
bhai tu mast padhata ha
how to bind the tensorflow serving rest api to 0.0.0.0, by default it is binding to 127.0.0.1 so deploying to the cloud is problematic
Nice video, thank you!
Thanks a ton to the instructor!! Very straightforward and get-to-point tutorial for TensorFlow serving for beginners! Highly recommended!!!
Forgets this and using Flask and Fast API, we are looking for customizable Api serving our input and output, this is just temporary web serving and blind for changing thing 😅
I would like to ask about inference, what if the inference was an image? how to send it? or how do I preprocess the image first before inference?
Thank you!
{
"error": "JSON Parse error: The document is empty"
}
Thanks a lot Bhai 👍.
Simple and best explanation ever
Thanks for your tutorial. I configure as per your flow. When i use localhost its working. But instead of localhost when i use public ip its not working. Can you give some suggestions. Am using ubuntu server.
what sir how much time you are spending, so hardworking person you are
How about the exported Bert processor? Does it need to be served like the Bert model? Besides, is it only output the probability of the model? How about other responses?
thanks for the content , my question is if I have made the saved_model to accept a image as tf_example, then how to send the request
You are a god!
the music in BG is soooo annoying