VOIP / model /inference.py
Shymaa2611
update api
e9c79f8
import numpy as np
import torch
import joblib
from model.model import VOIPClassifier, get_top_features
scaler = joblib.load("scaler.pkl")
def load_model(model_path, input_dim):
model = VOIPClassifier(input_dim)
model.load_state_dict(torch.load(model_path, map_location=torch.device('cpu')))
model.eval()
return model
def predict(model, input_list, scaler):
input_array = np.array(input_list).reshape(1, -1)
input_scaled = scaler.transform(input_array)
input_tensor = torch.FloatTensor(input_scaled)
with torch.no_grad():
output = model(input_tensor)
probability = output.item()
predicted_class = 1 if probability >= 0.5 else 0
return {"probability": probability, "class": predicted_class}
def inference(input):
top_features = get_top_features()
model = load_model("VOIP_Classifier.pth", input_dim=len(top_features))
result = predict(model, input, scaler)
return result
if __name__ == "__main__":
top_features = get_top_features()
model = load_model("VOIP_Classifier.pth", input_dim=len(top_features))
sample_input = [2, 4, 5]
print(inference(sample_input))