aboutsummaryrefslogtreecommitdiff
path: root/backend
diff options
context:
space:
mode:
Diffstat (limited to 'backend')
-rw-r--r--backend/microservice/PythonServer/project/api/api.py15
-rw-r--r--backend/microservice/mlservice.py18
2 files changed, 25 insertions, 8 deletions
diff --git a/backend/microservice/PythonServer/project/api/api.py b/backend/microservice/PythonServer/project/api/api.py
index b2fb503b..75df26b8 100644
--- a/backend/microservice/PythonServer/project/api/api.py
+++ b/backend/microservice/PythonServer/project/api/api.py
@@ -8,6 +8,7 @@ import keras
import csv
import json
import mlservice
+import h5py
from mlservice import obuka
app = flask.Flask(__name__)
@@ -21,8 +22,14 @@ def index():
@app.route('/data', methods = ['GET', 'POST'])
def data():
if request.method == 'POST':
- f = request.json['filepath']
- data = pd.read_csv(f)
- print(data)
- return obuka(data,request.json)
+ print(request.json['filepath'])
+ f = request.json['filepath']
+
+ data1 = pd.read_csv(f)
+
+ m=request.json['modelpath']
+ model=tf.keras.models.load_model(m)
+
+ #print(data)
+ return obuka(data1,request.json,model)
app.run() \ No newline at end of file
diff --git a/backend/microservice/mlservice.py b/backend/microservice/mlservice.py
index 40dd691d..a244e700 100644
--- a/backend/microservice/mlservice.py
+++ b/backend/microservice/mlservice.py
@@ -1,3 +1,4 @@
+from statistics import mode
from typing_extensions import Self
import pandas as pd
import tensorflow as tf
@@ -10,6 +11,7 @@ from flask import request, jsonify, render_template
from sklearn.preprocessing import LabelEncoder
import csv
import json
+import h5py
class Response:
def __init__(self,tacnost,preciznost,recall,spec,f1,mse,mae,mape,rmse):
@@ -33,12 +35,16 @@ class fCallback(tf.keras.callbacks.Callback):
print('Evaluation: ', self.model.evaluate(self.x_test,self.y_test),"\n")#broj parametara zavisi od izabranih metrika loss je default
-def obuka(dataunos,params):
+def obuka(dataunos,params,modelunos):
import numpy as np
import pandas as pd
import tensorflow as tf
import matplotlib.pyplot as plt
-
+ ### -1) Ucitavanje h5 modela PART3
+ if(modelunos!=None):
+ # print("Model je unet")
+ model=modelunos
+
### 0) Pretvaranje data seta u novi, sa kolonama koje je korisnik izabrao za obuku
data=pd.DataFrame()
@@ -47,6 +53,7 @@ def obuka(dataunos,params):
data[zeljenekolone[i]]=dataunos[zeljenekolone[i]]
#print(data.head(10))
+
#predvidetikol=input("UNETI NAZIV KOLONE ČIJU VREDNOST TREBA PREDVIDETI ")
###sta se cuva od promenjivih broj kolone ili naziv kolone???
predvidetikol=params["columnToPredict"]
@@ -346,10 +353,13 @@ def obuka(dataunos,params):
plt.ylabel('True Positive Rate')
plt.show()
'''
-
+ ##### H5 CUVANJE ##### PART3
+ nazivmodela=params['h5ModelName']
+ classifier.save(nazivmodela, save_format='h5')
+
r=Response(float(tacnost),float(preciznost),float(recall),float(spec),float(f1),float(mse),float(mae),float(mape),float(rmse))
import jsonpickle
- return json.dumps(json.loads(jsonpickle.encode(r)), indent=2)
+ return json.dumps(json.loads(jsonpickle.encode(r)), indent=2)
return "Done"