From 3a571bf78a266c1ce6f9368a5e34804285158a32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sol=C3=A8ne?= <solene@MacBook-Air.local> Date: Sat, 26 Jun 2021 19:26:01 +0200 Subject: [PATCH] Initial commit --- arborescence_protocol.pdf | Bin 0 -> 15922 bytes main.py | 5 +---- readme.md | 32 ++++++++++++++++++-------------- 3 files changed, 19 insertions(+), 18 deletions(-) create mode 100644 arborescence_protocol.pdf diff --git a/arborescence_protocol.pdf b/arborescence_protocol.pdf new file mode 100644 index 0000000000000000000000000000000000000000..b92b8e207250d0b0d1bb9d4022ec4d1c0da20934 GIT binary patch literal 15922 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 literal 0 HcmV?d00001 diff --git a/main.py b/main.py index 454d089..9d56d5c 100644 --- a/main.py +++ b/main.py @@ -119,10 +119,7 @@ def p_error(params, iteration_f, model): PE_test.append(pe_test) PE_valid = np.asarray(PE_valid) mini = np.argmin(PE_valid) - dir_log = params.data_dir_prot+'train_'+model+'_'+str(iteration_f) - #np.save(dir_log+'p_error/train.npy',PE_train[mini]) - #np.save(dir_log+'p_error/valid.npy',PE_valid[mini]) - #np.save(dir_log+'p_error/test.npy',PE_test[mini]) + dir_log = params.data_dir_prot+'train_'+model+'_'+str(iteration_f) return(PE_train[mini], PE_valid[mini], PE_test[mini]) def run_job(params, mode, command, iteration, gpu=True, batch_adv=None): # Index if generation of adversarial embedding diff --git a/readme.md b/readme.md index 5cbbcca..2bece6f 100644 --- a/readme.md +++ b/readme.md @@ -1,18 +1,5 @@ The protocol is made to run on a multi-GPU platform, with orders in .slurm files. - -### How are trained the classifiers -The classifiers are trained between cover images, and new stegos are generated in each batch with the corresponding cost map. It allows to train the classifier, if desired (depending on parameters --CL and --start_emb_rate) to use curriculum learning during the training, such as new stegos embedding any size of payload can be generated during the training. - - - -### Structure of the results of a run of the protocol -A run of a protocol is an experiment for given values of QF, emb_rate, intial cost_maps, different steganalysts... -A run of the protocol will save all values in a folder, which is defined in the parameter --data_dir_prot. -The organization of this folder is described by the illustration, and in the following. -At the beginning, it creates file description.txt which resumes all parameters parsed at the beggining of run of main.py. - -Adversarial images are saved in "data_adv_$i/adv_final/" and optimized cost maps in "data_adv_$i/adv_cost/". -Evalution of classifier with architecture $model trained at iteration $j on adversarial images generated at iteration $i are saved in "data_adv_$i/eval_$model_$j/". There are two files: "logits.npy" of size (10000,2) containing the raw logits given by the classifier, and "probas.npy" of size (10000,) which are the stego class probability given by the softmax of the logits. The images are ordred are in the file --permutation_files.npy given in input of the protocol. +This is the main.py to launch. It will create slurm files with CLI commands depending on the task of the protocol, such as it can run on a cluster. ### Here are the steps of the protocol: If --begin_step=0, the run of the protocol will begin with initialization which contains the following steps: @@ -28,6 +15,18 @@ It produces files at iteration $k are: + +### Structure of the results of a run of the protocol +A run of a protocol is an experiment for given values of QF, emb_rate, intial cost_maps, different steganalysts... +A run of the protocol will save all values in a folder, which is defined in the parameter --data_dir_prot. +The organization of this folder is described by the illustration, and in the following. +At the beginning, it creates file description.txt which resumes all parameters parsed at the beggining of run of main.py. + +Adversarial images are saved in "data_adv_$i/adv_final/" and optimized cost maps in "data_adv_$i/adv_cost/". +Evalution of classifier with architecture $model trained at iteration $j on adversarial images generated at iteration $i are saved in "data_adv_$i/eval_$model_$j/". There are two files: "logits.npy" of size (10000,2) containing the raw logits given by the classifier, and "probas.npy" of size (10000,) which are the stego class probability given by the softmax of the logits. The images are ordred are in the file --permutation_files.npy given in input of the protocol. + + + # Parameters to pass in main.py: * begin_step: first iteration of the protocol. Should be equals to 0 if you never launched it. * number_step: for how many further iteration to lauchn the protocol @@ -60,6 +59,8 @@ It produces files at iteration $k are: * lr: float value for the value of the learning rate to use in ADAM optimizer for the gradient descent. Advices: use 0.5 for QF 75 and 0.05 for QF 100. +### How are trained the classifiers +The classifiers are trained between cover images, and new stegos are generated in each batch with the corresponding cost map. It allows to train the classifier, if desired (depending on parameters --CL and --start_emb_rate) to use curriculum learning during the training, such as new stegos embedding any size of payload can be generated during the training. # In this folder: @@ -85,6 +86,9 @@ It produces files at iteration $k are: * train.py: definition of the class Fitter useful for training a classifier. + +Format:  + -- GitLab