ItsProtesilaus's picture
Update app.py
fee8390 verified
Raw
History Blame Contribute Delete
1.28 kB
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)