def forecast_lstm(actions): lstm = LSTM(CONFIG) model = lstm.load_model() vocabulary = restore_vocabulary() actions_scores = readScores(CONFIG) previous_action = None for action in actions: if (action != ''): # Compare previous action with the incoming action. action = json.loads(action) incoming_action = action_to_vector(action, vocabulary) if (previous_action == None): previous_action = incoming_action continue score = getScore(actions_scores, action['name']) previous_action_transformed = lstm.pretransform_dataset( [previous_action], reshape=True) incoming_action_transformed = lstm.pretransform_dataset( [incoming_action], reshape=True) predicted = lstm.forecast(model, previous_action_transformed, incoming_action_transformed) # Print anomaly score and set the new one now as previous action. print lstm.calculate_score(incoming_action_transformed, predicted, score) previous_action = incoming_action