File size: 1,271 Bytes
2ff7669
1c37b3b
2ff7669
1c37b3b
 
2ff7669
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8dfb85e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
from fastapi import FastAPI, HTTPException
from keras.models import model_from_json,Model
from pydantic import BaseModel
from keras.models import Sequential
from keras.layers import Dense
import numpy as np

# Definición del modelo de datos de entrada
class InputData(BaseModel):
    data: list  # Asumiendo que la entrada es una lista de características numéricas

app = FastAPI()

# Carga del modelo
def load_model():
    json_file = open("model.json", 'r')
    loaded_model_json = json_file.read()
    json_file.close()
    loaded_model = model_from_json(loaded_model_json)
    loaded_model.load_weights("model.h5")
    print("Cargado el modelo en el disco")
    loaded_model.compile(loss='mean_squared_error', optimizer='adam', metrics=['binary_accuracy'])
    return loaded_model

model = load_model()

@app.post("/predict/")
async def predict(data: InputData):
    try:
        # Convertir la lista de entrada a un array de NumPy para la predicción
        input_data = np.array(data.data).reshape(1, -1)  # Asumiendo que la entrada debe ser de forma (1, num_features)
        prediction = model.predict(input_data).round()
        return {"prediction": prediction.tolist()}
    except Exception as e:
        raise HTTPException(status_code=500, detail=str(e))