Spaces:
Sleeping
Sleeping
File size: 2,013 Bytes
c7dae18 0380be0 2ff7669 896731f 2ff7669 1afba3c 2ff7669 896731f 0380be0 2ff7669 0380be0 034c215 1afba3c c7dae18 1afba3c c7dae18 034c215 0380be0 3225e13 0380be0 2ff7669 6c6f69c 2ff7669 0380be0 6c6f69c 2ff7669 6c6f69c c14b26c 11d018e c480d50 b8c76b7 a20c10f 11d018e 80acb4b 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 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
import tensorflow as tf
from keras.api.models import Sequential
from keras.api.layers import InputLayer, Dense
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
import numpy as np
from typing import List
from keras.models import Sequential, Model, load_model
from keras.layers import Dropout, Flatten, Dense
from keras import optimizers
from keras.models import model_from_json
class InputData(BaseModel):
data: List[float] # Lista de caracter铆sticas num茅ricas (flotantes)
app = FastAPI()
# Funci贸n para construir el modelo manualmente
def build_model():
"""
with open('model.json','r') as f:
json = f.read()
model = model_from_json(json)
"""
model = Sequential(
[
InputLayer(
shape=(2,), name="dense_2_input"
), # Ajusta el tama帽o de entrada seg煤n tu modelo
Dense(16, activation="relu", name="dense_2"),
Dense(1, activation="sigmoid", name="dense_3"),
]
)
model.load_weights(
"model.h5"
) # Aseg煤rate de que los nombres de las capas coincidan para que los pesos se carguen correctamente
model.compile(
loss="mean_squared_error", optimizer="adam", metrics=["binary_accuracy"]
)
return model
model = build_model() # Construir el modelo al iniciar la aplicaci贸n
# Ruta de predicci贸n
@app.post("/predict/")
async def predict(data: InputData):
print(f"Data: {data}")
global model
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)
#print(input_data)
prediction = model.predict(input_data).round()
#return {"prediction": prediction.tolist()}
#prediction = 9
#print(prediction)
return {"prediction": prediction}
except Exception as e:
raise HTTPException(status_code=500, detail=str(e))
|