Accke commited on
Commit
1b666e3
1 Parent(s): e39093b

Upload 2 files

Browse files
Files changed (2) hide show
  1. app.py +36 -0
  2. requirements.txt +9 -0
app.py ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import numpy as np
2
+ from fastapi import FastAPI, HTTPException
3
+ from pydantic import BaseModel
4
+ from typing import List
5
+ from tensorflow.keras.models import model_from_json
6
+ from sklearn.preprocessing import StandardScaler
7
+
8
+ class InputData(BaseModel):
9
+ data: List[float] # Lista de características numéricas (flotantes)
10
+
11
+ app = FastAPI()
12
+
13
+ # Cargar el modelo desde JSON
14
+ with open("model.json", "r") as json_file:
15
+ model_json = json_file.read()
16
+ model = model_from_json(model_json)
17
+
18
+ # Cargar los pesos en el modelo
19
+ model.load_weights("model_weights.h5")
20
+
21
+ # Ruta de predicción
22
+ @app.post("/predict/")
23
+ async def predict(data: InputData):
24
+ try:
25
+ # Convertir la lista de entrada a un array de NumPy para la predicción
26
+ input_data = np.array(data.data).reshape(1, -1)
27
+
28
+ # Escalar los datos (asegúrate de que el escalador ha sido entrenado y guardado adecuadamente)
29
+ scaler = StandardScaler()
30
+ input_data = scaler.fit_transform(input_data)
31
+
32
+ # Realizar la predicción
33
+ prediction = model.predict(input_data).round()
34
+ return {"prediction": prediction.tolist()}
35
+ except Exception as e:
36
+ raise HTTPException(status_code=500, detail=str(e))
requirements.txt ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ fastapi
2
+ pydantic
3
+ numpy
4
+ pandas
5
+ matplotlib
6
+ seaborn
7
+ scikit-learn
8
+ tensorflow
9
+ uvicorn