Spaces:
Sleeping
Sleeping
File size: 1,485 Bytes
2ff7669 6c6f69c 2ff7669 38d9065 2ff7669 38d9065 2ff7669 6c6f69c 2ff7669 6c6f69c 2ff7669 9edaeee 6c6f69c 9edaeee 6c6f69c 2ff7669 6c6f69c 2ff7669 6c6f69c 2ff7669 6c6f69c 2ff7669 9edaeee |
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 36 37 38 39 40 41 42 |
from fastapi import FastAPI, HTTPException
from keras.models import model_from_json
from pydantic import BaseModel
import numpy as np
from typing import List
class InputData(BaseModel):
data: List[float] # Lista de características numéricas (flotantes)
app = FastAPI()
model = None # Inicializa el modelo como None
# Carga del modelo
def load_model():
try:
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")
loaded_model.compile(loss='mean_squared_error', optimizer='adam', metrics=['binary_accuracy'])
return loaded_model
except Exception as e:
print(f"Error al cargar el modelo: {e}")
return None
# Ruta de predicción
@app.post("/predict/")
async def predict(data: InputData):
global model
if model is None:
model = load_model()
if model is None:
raise HTTPException(status_code=500, detail="Model could not be loaded")
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))
|