| import tensorflow as tf |
| import numpy as np |
| import os |
| import pandas as pd |
| from flask import Flask, request, jsonify |
| import joblib |
| import sklearn |
| from werkzeug.exceptions import RequestEntityTooLarge |
| model=tf.keras.models.load_model('model_beta2_1.keras') |
| preprocessor=joblib.load('preprocessor_beta2.pkl') |
| app = Flask(__name__) |
| app.config['MAX_CONTENT_LENGTH'] = 100 * 1024 * 1024 |
| BATCH_SIZE=128 |
|
|
| @app.route('/') |
| def success(): |
| return "Model Deployed Successfully!!" |
|
|
| @app.route('/predict', methods=['POST']) |
| def predict(): |
| try: |
| data=request.get_json() |
| if isinstance(data,dict): |
| data=pd.DataFrame([data]) |
| else: |
| data=pd.DataFrame(data) |
|
|
| preds=[] |
| for i in range(0,len(data), BATCH_SIZE): |
| X=preprocessor.transform(data.iloc[i:i+BATCH_SIZE]) |
| pred_probs=model.predict(X) |
| pred=(pred_probs>0.632).astype(int) |
| preds.extend(zip(pred_probs.tolist(),pred.tolist())) |
| return jsonify(preds) |
| |
| except RequestEntityTooLarge: |
| return jsonify({'Error: Request Entity Too Large'}), 413 |
| |
|
|
| |
| except Exception as e: |
| return f'Error: {e}', 500 |
|
|
| if __name__ == '__main__': |
| app.run(host='0.0.0.0' ,port=7860, debug=False) |
|
|
|
|
| |
|
|