Use deep learning to perform website fingerprinting.
mkdir outputs data
mv full.zip ./data/full.zip
unzip data/full.zip ./data/full
conda env create -f environment.yml
If you are having trouble getting GPU support with TensorFlow, try
pip uninstall black
conda uninstall black
conda install tensorflow-gpu
conda activate WF_Assigment
Please the code and comments contained within the main clause in main.py carefully. Adjust as desired.
python main.py
-- "outputs"
-- {OPTIMIZER}
-- {LEARNING_RATE}
-- {"RNN|LSTM|GRU"}
-- {HIDDEN_UNITS}
-- {NUM_LAYERS}
-- {BIDIRECTIONAL}
-- "models"
-- "{EPOCH}.pt"
-- reports
-- "{EPOCH}.pt"
-- report.json
-- "CNN"
-- {FILTER_SIZE}
-- {ACTIVATION_FUNCTION}
-- history.json
-- report.json
file: outputs/{OPTIMIZER}/{RNN|LSTM|GRU}/{HIDDEN_UNITS}/{NUM_LAYERS}/{BIDIRECTIONAL}/models/0.pt
example: output_file_examples/1.pt
description: saved model at a particular epoch
file: outputs/{OPTIMIZER}/{RNN|LSTM|GRU}/{HIDDEN_UNITS}/{NUM_LAYERS}/{BIDIRECTIONAL}/reports/0.pt
example: output_file_examples/2.json
description: model evaluated on the validation set at a particular epoch
file: outputs/{OPTIMIZER}/{RNN|LSTM|GRU}/{HIDDEN_UNITS}/{NUM_LAYERS}/{BIDIRECTIONAL}/report.json
example: output_file_examples/3.json
description: best model (PATIENCE epochs before early stopping) evaluated on the test set
file: outputs/{OPTIMIZER}/CNN/{FILTER_SIZE}/{ACTIVATION_FUNCTION}/history.json
example: output_file_examples/4.json
description: model evaluated on the validation set at every epoch
file: outputs/{OPTIMIZER}/CNN/{FILTER_SIZE}/{ACTIVATION_FUNCTION}/report.json
example: output_file_examples/5.json
description: best model (PATIENCE epochs before early stopping) evaluated on the test set