-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathpredict_api.py
31 lines (22 loc) · 948 Bytes
/
predict_api.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
import pandas as pd
from tensorflow.python.keras.models import load_model
import numpy as np
from api_reader.main_2 import get_apis_int_str, LinerMap, write_predict_csv
import csv
def api_predict(api_path, json_file_path, model_path):
my_model = load_model(model_path)
print(my_model.summary)
mp = LinerMap()
csv_reader = csv.reader(open(api_path))
for line in csv_reader:
mp.add(str(line[0]).lower(), line[1])
pre_data = pd.read_csv(write_predict_csv(get_apis_int_str(json_file_path, mp)[:100]))
pred = my_model.predict(pre_data)
print('Output of the softmax layer', pred[0])
print('Network prediction:', np.argmax([pred[0]]))
return pred
if __name__ == "__main__":
api_file = './api_reader/api.csv'
json_file = './api_reader/processes.json'
model_p = './classification_api/behavioral-malware-detection-based-on-api-calls_model.h5'
api_predict(api_file, json_file, model_p)