forked from santiagosil/Vigen-Repository
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpredict.py
56 lines (51 loc) · 1.57 KB
/
predict.py
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
from cProfile import label
from ctypes import Union
from unittest import result
from tensorflow import keras
import numpy as np
import pandas as pd
from fastapi import FastAPI
from pydantic import BaseModel
from keras.models import load_model
from typing import Union
from fastapi.middleware.cors import CORSMiddleware
app = FastAPI()
app.add_middleware(
CORSMiddleware,
allow_origins = ["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
class Item(BaseModel):
genero: Union[int,None] = None
orientacionSexual: Union[int,None] = None
edad: Union[int,None] = None
municipio: Union[int,None] = None
sector: Union[int,None] = None
nivelEducativo: Union[int,None] = None
estadoCivil: Union[int,None] = None
etnia: Union[int,None] = None
ingresos: Union[int,None] = None
ocupacion: Union[int,None] = None
p1: Union[int,None] = None
p2: Union[int,None] = None
p3: Union[int,None] = None
p4: Union[int,None] = None
p5: Union[int,None] = None
p6: Union[int,None] = None
p7: Union[int,None] = None
@app.post("/")
def Prediccion(resp:Item):
vector = []
for x in resp:
vector.append(x[1])
vector.pop()
model = load_model('model/myModel.h5')
model.load_weights('model/myWeights.h5')
label =['Ninguna','Violencia Infantil','Violencia intrafamiliar',
'Violencia Adulto Mayor','Violencia de Género']
prediccion=model.predict(np.array([vector]))
predict=np.argmax(prediccion)
resp.p7=int(predict)
return {'Label':label[predict], 'Responce':resp}