示例#1
0
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