Hoperrs commited on
Commit
bad916a
verified
1 Parent(s): 425d75c

Upload 4 files

Browse files
Files changed (4) hide show
  1. Dockerfile +16 -0
  2. app.py +41 -0
  3. mimodelo.weights.h5 +3 -0
  4. requirements.txt +6 -0
Dockerfile ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Usa una imagen base de Python
2
+ FROM python:3.9
3
+ # Establece el directorio de trabajo
4
+ WORKDIR /code
5
+
6
+ # Copia los archivos necesarios al contenedor
7
+ COPY ./requirements.txt /code/requirements.txt
8
+ RUN pip install --no-cache-dir -r /code/requirements.txt
9
+ RUN pip install fastapi uvicorn
10
+
11
+ COPY . .
12
+
13
+ RUN chmod -R 777 /code
14
+
15
+ # Comando para ejecutar la aplicaci贸n
16
+ CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860"]
app.py ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import tensorflow as tf
2
+ from fastapi import FastAPI, HTTPException
3
+ from pydantic import BaseModel
4
+ import numpy as np
5
+ from typing import List
6
+
7
+ class InputData(BaseModel):
8
+ data: List[float] # Lista de caracter铆sticas num茅ricas (flotantes)
9
+
10
+ app = FastAPI()
11
+
12
+ # Funci贸n para construir el modelo manualmente
13
+ def build_model():
14
+ model = tf.keras.Sequential([
15
+ tf.keras.layers.Dense(units=4, activation='sigmoid', input_shape=(2,)),
16
+ tf.keras.layers.Dense(units=1, activation='sigmoid')
17
+ ])
18
+ model.load_weights(
19
+ "mimodelo.weights.h5"
20
+ ) # Aseg煤rate de que los nombres de las capas coincidan para que los pesos se carguen correctamente
21
+ model.compile(
22
+ loss="mean_squared_error", optimizer="adam", metrics=["accuracy"]
23
+ )
24
+ return model
25
+
26
+ model = build_model() # Construir el modelo al iniciar la aplicaci贸n
27
+
28
+ # Ruta de predicci贸n
29
+ @app.post("/predict/")
30
+ async def predict(data: InputData):
31
+ print(f"Data: {data}")
32
+ global model
33
+ try:
34
+ # Convertir la lista de entrada a un array de NumPy para la predicci贸n
35
+ input_data = np.array(data.data).reshape(
36
+ 1, -1
37
+ ) # Asumiendo que la entrada debe ser de forma (1, num_features)
38
+ prediction = model.predict(input_data).round()
39
+ return {"prediction": prediction.tolist()}
40
+ except Exception as e:
41
+ raise HTTPException(status_code=500, detail=str(e))
mimodelo.weights.h5 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f37c17c6ceeea16f7c3d1c03a86551def6d8b2b2d3bcf4805375325dd2296888
3
+ size 19896
requirements.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ tensorflow[cuda]
2
+ keras
3
+ fastapi
4
+ numpy
5
+ pydantic
6
+ uvicorn