From d993e28caf5bcc083338c77bf161d192aaf6a98d Mon Sep 17 00:00:00 2001 From: TAMARA JERINIC Date: Sun, 20 Mar 2022 00:42:15 +0100 Subject: Omogućeni su učitavanje i čuvanje h5 fajla. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/microservice/PythonServer/project/api/api.py | 15 +++++++++++---- backend/microservice/mlservice.py | 18 ++++++++++++++---- 2 files changed, 25 insertions(+), 8 deletions(-) (limited to 'backend') 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" -- cgit v1.2.3