Load & run a pre-trained (prediction) model¶
Download notebook View source code
Prediction models are a typical data science application. They are very straightforward to deploy on UbiOps and in this deployment package you can see how it works. We have put the deployment.py
here as well for your reference:
import os
import pandas as pd
from tensorflow.keras.models import load_model
class Deployment:
def __init__(self, base_directory, context):
print("Initialising KNN model")
model_file = os.path.join(base_directory, "tensorflow_model.h5")
self.model = load_model(model_file)
def request(self, data):
# Loading in the data that was sent with the request.
print('Loading data')
input_data = pd.read_csv(data['data'])
# Calling the model for a prediction
print("Prediction being made")
prediction = self.model.predict(input_data)
# After the prediction is made you can perform additional processing steps as you please
# We simply write the prediction to a csv
print('Writing prediction to csv')
pd.DataFrame(prediction).to_csv('prediction.csv', header = ['MPG'], index_label= 'index')
return {
"prediction": 'prediction.csv'
}
In the __init__
method of the Deployment class we load in a trained model file. In the request
method we call model.predict
to actually make the prediction. This structure works for models created with Tensorflow, ScikitLearn or other standard data science libraries. For more info on that please see the Tensorflow and the Scikit-learn examples.
Running the example in UbiOps¶
To deploy this example model to your own UbiOps environment you can log in to the WebApp and create a new deployment in the deployment tab. You will be prompted to fill in certain parameters, you can use the following:
Deployment configuration | |
---|---|
Name | prediction-model |
Description | A standard prediction model |
Input field: | name = data, datatype = file |
Output field: | name = prediction, datatype = file |
Version name | v1 |
Description | leave blank |
Environment | Python 3.11 |
Upload code | deployment zip do not unzip! |
Request retention | Leave on default settings |
The advanced parameters and labels can be left as they are. They are optional.
After uploading the code and with that creating the deployment version UbiOps will start deploying. Once you're deployment version is available you can make requests to it. Here you can find some dummy data to use as input for this model.