- Pytorch, optuna, sklearn, pyod, tensorboard packages are required.

- BO_Objective contains the core class.

- use BO_{UAD Method}_main_small.py to run the experiments.

- For metric choice,
    - 'generated' for NDP
    - 'relative-topk-median' for RTM
    - 'avg-var-20-k' for EAG
    - 'EM' for EM/MV where MV is used.

- The random seed is saved in "dataset_permutation_record.tar" to make sure different UAD method use the same data split
- To change the seed, modify permutation_seed argument in BO_Objective.Objective object.

- For grid search, use **_grid_main.py

- The results for each BO search is stored in {save_path}/data

**There are many metric options in the code, DO NOT use them as they are attempts at the early stage of this work.
