Introduction
A REST API lets you send data to your machine learning model from anywhere and get predictions back easily.
from flask import Flask, request, jsonify import tensorflow as tf app = Flask(__name__) model = tf.keras.models.load_model('your_model_path') @app.route('/predict', methods=['POST']) def predict(): data = request.json['input'] data_np = tf.convert_to_tensor([data]) prediction = model.predict(data_np) return jsonify({'prediction': prediction.tolist()}) if __name__ == '__main__': app.run(debug=True)
curl -X POST http://localhost:5000/predict -H "Content-Type: application/json" -d '{"input": [5.1, 3.5, 1.4, 0.2]}'
import requests response = requests.post('http://localhost:5000/predict', json={'input': [5.1, 3.5, 1.4, 0.2]}) print(response.json())
from flask import Flask, request, jsonify import tensorflow as tf import numpy as np # Create a simple model for demonstration model = tf.keras.Sequential([ tf.keras.layers.Dense(3, activation='softmax', input_shape=(4,)) ]) model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy']) # Dummy training data X_train = np.array([[5.1, 3.5, 1.4, 0.2], [6.2, 3.4, 5.4, 2.3], [5.9, 3.0, 5.1, 1.8]]) y_train = np.array([0, 2, 2]) model.fit(X_train, y_train, epochs=5, verbose=0) app = Flask(__name__) @app.route('/predict', methods=['POST']) def predict(): data = request.json['input'] data_np = np.array([data]) prediction = model.predict(data_np) predicted_class = int(np.argmax(prediction[0])) return jsonify({'prediction': predicted_class}) if __name__ == '__main__': app.run(debug=False)
from flask import Flask, request, jsonify
app = Flask(__name__)
@app.route('/predict', methods=['POST'])
def predict():
data = request.get_json()
inputs = data['input']
prediction = sum(inputs)
return jsonify({'prediction': prediction})from flask import Flask, request, jsonify
app = Flask(__name__)
@app.route('/predict')
def predict():
data = request.get_json()
prediction = model.predict(data['input'])
return jsonify({'prediction': prediction.tolist()})Pass the test and this pattern moves unknown