Spaces:
Runtime error
Runtime error
from graphCodeBert import GraphCodeBert | |
from keras.models import load_model, Model | |
import numpy as np, json | |
class Predict: | |
def __generate_code_embedding(self,code_snippet): | |
embedding = np.array(GraphCodeBert().generate_individual_embedding(code_snippet)).reshape((1,768)) | |
return embedding | |
def __calculate_loss(self,code_embedding,model_name): | |
model:Model = load_model(f'results/{model_name}.hdf5') | |
return model.evaluate(code_embedding,code_embedding) | |
def predict(self,code_snippet): | |
model_name="autoencoder_25" | |
code_embedding = self.__generate_code_embedding(code_snippet) | |
print("Input code snippet shape: ",code_embedding.shape) | |
loss = self.__calculate_loss(code_embedding,model_name) | |
print("Reconstruction Loss: ",loss) | |
with open('./results/metrics.json',"r") as fp: | |
metric_json = json.loads(fp.read()) | |
threshold = metric_json["Threshold"] | |
return "Not a candidate for refactoring" if loss>threshold else "Is a candidate for refactoring" | |
if __name__=="__main__": | |
Predict().predict(""" public void sleep(){ | |
int s1 = 1; | |
int s2 = 2; | |
int s3 = 3; | |
int s4 = 4; | |
int s5 = 5; | |
int s6 = 6; | |
int s7 = 7; | |
int s8 = 8; | |
}""") | |