.. vim: set fileencoding=utf-8 : .. Tiago de Freitas Pereira ====================== Domain Specific Units ====================== This section contains instructions on how to reproduce the experiments from Section 5 **Results and Discussion**. Exceptionally, these instructions will cover only the **Thermal** database. This would avoid this section to be extremely large. However, the same set of instructions applies to ALL heterogeneous face databases. To see all the available databases, check:: $ resources.py --types database List of registered databases: - bob.bio.htface 1.0.0 @ /bob.bio.htface: + casia-nir-vis-2 --> bob.bio.htface.configs.databases.casia_nir_vis: database + cuhk-cufs --> bob.bio.htface.configs.databases.cuhk_cufs: database + cuhk-cufsf --> bob.bio.htface.configs.databases.cuhk_cufsf: database + eprip --> bob.bio.htface.configs.databases.eprip: database + fargo --> bob.bio.htface.configs.databases.fargo: database + fargo_depth --> bob.bio.htface.configs.databases.fargo_depth: database + ldhf --> bob.bio.htface.configs.databases.ldhf: database + nivl --> bob.bio.htface.configs.databases.nivl: database + pola_thermal --> bob.bio.htface.configs.databases.pola_thermal: database + thermal --> bob.bio.htface.configs.databases.thermal: database Thermal Experiments =================== The sequence of experiments in this subsection generates the necessary data that creates Figures 5.16, 5.17 and Table 5.10. This covers the training using Siamese/Triplet Networks, using Incep. Res. v2 and Incep. Res. v1 as DCNN basis and adaptation of :math:`\beta + W` and :math:`\beta`. Inception Resnet v2 ------------------- The code below generates the cropped faces that are used to train the DSU for all the cases:: $ bob bio htface htface_baseline htface_idiap_msceleb_inception_v2_centerloss_gray thermal -- preprocess-training-data # generating prior Siamese training adapting :math:`\beta + W` ........................................... The code below trains the DSUs for: :math:`\theta_{[1-1](\beta + W)}`, :math:`\theta_{[1-2](\beta + W)}`, :math:`\theta_{[1-4](\beta + W)}`, :math:`\theta_{[1-5](\beta + W)}` and :math:`\theta_{[1-6](\beta + W)}`:: $ bob bio htface htface_train_dsu siamese_inceptionv2_first_layer_nonshared_batch_norm thermal # Training DSU 1-1 $ bob bio htface htface_train_dsu siamese_inceptionv2_adapt_1_2_nonshared_batch_norm thermal # Training DSU 1-2 $ bob bio htface htface_train_dsu siamese_inceptionv2_adapt_1_4_nonshared_batch_norm thermal # Training DSU 1-4 $ bob bio htface htface_train_dsu siamese_inceptionv2_adapt_1_5_nonshared_batch_norm thermal # Training DSU 1-5 $ bob bio htface htface_train_dsu siamese_inceptionv2_adapt_1_6_nonshared_batch_norm thermal # Training DSU 1-6 With all the DSUs trained, the corresponding experiments are generated via the following bash commands:: $ bob bio htface htface_baseline siamese_inceptionv2_first_layer_nonshared_batch_norm thermal -vv $ bob bio htface htface_baseline siamese_inceptionv2_adapt_1_2_nonshared_batch_norm thermal -vv $ bob bio htface htface_baseline siamese_inceptionv2_adapt_1_4_nonshared_batch_norm thermal -vv $ bob bio htface htface_baseline siamese_inceptionv2_adapt_1_5_nonshared_batch_norm thermal -vv $ bob bio htface htface_baseline siamese_inceptionv2_adapt_1_6_nonshared_batch_norm thermal -vv Finally, after the execution of the experiments, Figure 5.16 (a) can be generated:: $ bob htface evaluate_and_squash \ \ /thermal/htface_idiap_msceleb_inception_v2_centerloss_gray/ \ /thermal/siamese_inceptionv2_first_layer_nonshared_batch_norm/ \ /thermal/siamese_inceptionv2_adapt_1_2_nonshared_batch_norm/ \ /thermal/siamese_inceptionv2_adapt_1_4_nonshared_batch_norm/ \ /thermal/siamese_inceptionv2_adapt_1_5_nonshared_batch_norm/ \ /thermal/siamese_inceptionv2_adapt_1_6_nonshared_batch_norm/ \ \ --legends "Incep. Res. v2 gray" --legends "$\theta_{t[1-1]}(\beta + W)$" --legends "$\theta_{t[1-2]}(\beta + W)$" \ --legends "$\theta_{t[1-4]}(\beta + W)$" --legends "$\theta_{t[1-5]}(\beta + W)$" --legends "$\theta_{t[1-6]}(\beta + W)$" \ --special-linestyle \ --report-name "v2_siamese.pdf" \ --x-min 0 \ --title "" .. Note:: It's not necessary to run everything at once. Generate partial plots is a possibility. For more info check:: $ bob bio htface evaluate_and_squash --help If everything goes alright the following plot should be dumped .. image:: ./img/chap5/v2_siamese.png :scale: 100 % Siamese training adapting :math:`\beta` ....................................... The code below trains the DSUs for: :math:`\theta_{[1-1](\beta)}`, :math:`\theta_{[1-2](\beta)}`, :math:`\theta_{[1-4](\beta)}`, :math:`\theta_{[1-5](\beta)}` and :math:`\theta_{[1-6](\beta)}`:: $ bob bio htface htface_train_dsu siamese_inceptionv2_first_layer_betas_nonshared_batch_norm thermal # Training DSU 1-1 $ bob bio htface htface_train_dsu siamese_inceptionv2_adapt_1_2_betas_nonshared_batch_norm thermal # Training DSU 1-2 $ bob bio htface htface_train_dsu siamese_inceptionv2_adapt_1_4_betas_nonshared_batch_norm thermal # Training DSU 1-4 $ bob bio htface htface_train_dsu siamese_inceptionv2_adapt_1_5_betas_nonshared_batch_norm thermal # Training DSU 1-5 $ bob bio htface htface_train_dsu siamese_inceptionv2_adapt_1_6_betas_nonshared_batch_norm thermal # Training DSU 1-6 With all the DSUs trained, the corresponding experiments are generated via the following bash commands:: $ bob bio htface htface_baseline siamese_inceptionv2_first_layer_betas_nonshared_batch_norm thermal -vv $ bob bio htface htface_baseline siamese_inceptionv2_adapt_1_2_betas_nonshared_batch_norm thermal -vv $ bob bio htface htface_baseline siamese_inceptionv2_adapt_1_4_betas_nonshared_batch_norm thermal -vv $ bob bio htface htface_baseline siamese_inceptionv2_adapt_1_5_betas_nonshared_batch_norm thermal -vv $ bob bio htface htface_baseline siamese_inceptionv2_adapt_1_6_betas_nonshared_batch_norm thermal -vv Finally, after the execution of the experiments, Figure 5.17 (a) can be generated:: $ bob htface evaluate_and_squash \ \ /thermal/htface_idiap_msceleb_inception_v2_centerloss_gray/ \ /thermal/siamese_inceptionv2_first_layer_betas_nonshared_batch_norm/ \ /thermal/siamese_inceptionv2_adapt_1_2_betas_nonshared_batch_norm/ \ /thermal/siamese_inceptionv2_adapt_1_4_betas_nonshared_batch_norm/ \ /thermal/siamese_inceptionv2_adapt_1_5_betas_nonshared_batch_norm/ \ /thermal/siamese_inceptionv2_adapt_1_6_betas_nonshared_batch_norm/ \ \ --legends "Incep. Res. v2 gray" --legends "$\theta_{t[1-1]}(\beta)$" --legends "$\theta_{t[1-2]}(\beta)$" \ --legends "$\theta_{t[1-4]}(\beta)$" --legends "$\theta_{t[1-5]}(\beta)$" --legends "$\theta_{t[1-6]}(\beta)$" \ --special-linestyle \ --report-name "v2_siamese_betas.pdf" \ --x-min 0 \ --title "" .. Note:: It's not necessary to run everything at once. Generate partial plots is a possibility. For more info check:: $ bob bio htface evaluate_and_squash --help If everything goes alright the following plot should be dumped .. image:: ./img/chap5/v2_siamese_bias.png :scale: 100 % Triplet training adapting :math:`\beta + W` ........................................... The code below trains the DSUs for: :math:`\theta_{[1-1](\beta + W)}`, :math:`\theta_{[1-2](\beta + W)}`, :math:`\theta_{[1-4](\beta + W)}`, :math:`\theta_{[1-5](\beta + W)}` and :math:`\theta_{[1-6](\beta + W)}`:: $ bob bio htface htface_train_dsu triplet_inceptionv2_first_layer_nonshared_batch_norm thermal # Training DSU 1-1 $ bob bio htface htface_train_dsu triplet_inceptionv2_layers_1_2_nonshared_batch_norm thermal # Training DSU 1-2 $ bob bio htface htface_train_dsu triplet_inceptionv2_layers_1_4_nonshared_batch_norm thermal # Training DSU 1-4 $ bob bio htface htface_train_dsu triplet_inceptionv2_layers_1_5_nonshared_batch_norm thermal # Training DSU 1-5 $ bob bio htface htface_train_dsu triplet_inceptionv2_layers_1_6_nonshared_batch_norm thermal # Training DSU 1-6 With all the DSUs trained, the corresponding experiments are generated via the following bash commands:: $ bob bio htface htface_baseline triplet_inceptionv2_first_layer_nonshared_batch_norm thermal -vv $ bob bio htface htface_baseline triplet_inceptionv2_layers_1_2_nonshared_batch_norm thermal -vv $ bob bio htface htface_baseline triplet_inceptionv2_layers_1_4_nonshared_batch_norm thermal -vv $ bob bio htface htface_baseline triplet_inceptionv2_layers_1_5_nonshared_batch_norm thermal -vv $ bob bio htface htface_baseline triplet_inceptionv2_layers_1_6_nonshared_batch_norm thermal -vv Finally, after the execution of the experiments the CMC curves can be generated as:: $ bob htface evaluate_and_squash \ \ /thermal/htface_idiap_msceleb_inception_v2_centerloss_gray/ \ /thermal/triplet_inceptionv2_first_layer_nonshared_batch_norm/ \ /thermal/triplet_inceptionv2_layers_1_2_nonshared_batch_norm/ \ /thermal/triplet_inceptionv2_layers_1_4_nonshared_batch_norm/ \ /thermal/triplet_inceptionv2_layers_1_5_nonshared_batch_norm/ \ /thermal/triplet_inceptionv2_layers_1_6_nonshared_batch_norm/ \ \ --legends "Incep. Res. v2 gray" --legends "$\theta_{t[1-1]}(\beta + W)$" --legends "$\theta_{t[1-2]}(\beta + W)$" \ --legends "$\theta_{t[1-4]}(\beta + W)$" --legends "$\theta_{t[1-5]}(\beta + W)$" --legends "$\theta_{t[1-6]}(\beta + W)$" \ --special-linestyle \ --report-name "v2_triplet.pdf" \ --x-min 0 \ --title "" .. Note:: It's not necessary to run everything at once. Generate partial plots is a possibility. For more info check:: $ bob bio htface evaluate_and_squash --help Triplet training adapting :math:`\beta` ....................................... The code below trains the DSUs for: :math:`\theta_{[1-1](\beta)}`, :math:`\theta_{[1-2](\beta)}`, :math:`\theta_{[1-4](\beta)}`, :math:`\theta_{[1-5](\beta)}` and :math:`\theta_{[1-6](\beta)}`:: $ bob bio htface htface_train_dsu triplet_inceptionv2_first_layer_nonshared_betas_batch_norm thermal # Training DSU 1-1 $ bob bio htface htface_train_dsu triplet_inceptionv2_layers_1_2_betas_nonshared_batch_norm thermal # Training DSU 1-2 $ bob bio htface htface_train_dsu triplet_inceptionv2_layers_1_4_betas_nonshared_batch_norm thermal # Training DSU 1-4 $ bob bio htface htface_train_dsu triplet_inceptionv2_layers_1_5_betas_nonshared_batch_norm thermal # Training DSU 1-5 $ bob bio htface htface_train_dsu triplet_inceptionv2_layers_1_6_betas_nonshared_batch_norm thermal # Training DSU 1-6 With all the DSUs trained, the corresponding experiments are generated via the following bash commands:: $ bob bio htface htface_baseline triplet_inceptionv2_first_layer_nonshared_betas_batch_norm thermal -vv $ bob bio htface htface_baseline triplet_inceptionv2_layers_1_2_betas_nonshared_batch_norm thermal -vv $ bob bio htface htface_baseline triplet_inceptionv2_layers_1_4_betas_nonshared_batch_norm thermal -vv $ bob bio htface htface_baseline triplet_inceptionv2_layers_1_5_betas_nonshared_batch_norm thermal -vv $ bob bio htface htface_baseline triplet_inceptionv2_layers_1_6_betas_nonshared_batch_norm thermal -vv Finally, after the execution of the experiments the CMC curves can be generated as:: $ bob htface evaluate_and_squash \ \ /thermal/htface_idiap_msceleb_inception_v2_centerloss_gray/ \ /thermal/triplet_inceptionv2_first_layer_nonshared_betas_batch_norm/ \ /thermal/triplet_inceptionv2_layers_1_2_betas_nonshared_batch_norm/ \ /thermal/triplet_inceptionv2_layers_1_4_betas_nonshared_batch_norm/ \ /thermal/triplet_inceptionv2_layers_1_5_betas_nonshared_batch_norm/ \ /thermal/triplet_inceptionv2_layers_1_6_betas_nonshared_batch_norm/ \ \ --legends "Incep. Res. v2 gray" --legends "$\theta_{t[1-1]}(\beta)$" --legends "$\theta_{t[1-2]}(\beta)$" \ --legends "$\theta_{t[1-4]}(\beta)$" --legends "$\theta_{t[1-5]}(\beta)$" --legends "$\theta_{t[1-6]}(\beta)$" \ --special-linestyle \ --report-name "v2_triplet_betas.pdf" \ --x-min 0 \ --title "" .. Note:: It's not necessary to run everything at once. Generate partial plots is a possibility. For more info check:: $ bob bio htface evaluate_and_squash --help Inception Resnet v1 ------------------- The code below generates the cropped faces that are used to train the DSU for all the cases:: $ bob bio htface htface_baseline htface_idiap_msceleb_inception_v1_centerloss_gray thermal -- preprocess-training-data # generating prior Siamese training adapting :math:`\beta + W` ........................................... The code below trains the DSUs for: :math:`\theta_{[1-1](\beta + W)}`, :math:`\theta_{[1-2](\beta + W)}`, :math:`\theta_{[1-4](\beta + W)}`, :math:`\theta_{[1-5](\beta + W)}` and :math:`\theta_{[1-6](\beta + W)}`:: $ bob bio htface htface_train_dsu siamese_inceptionv1_first_layer_nonshared_batch_norm thermal # Training DSU 1-1 $ bob bio htface htface_train_dsu siamese_inceptionv1_adapt_1_2_nonshared_batch_norm thermal # Training DSU 1-2 $ bob bio htface htface_train_dsu siamese_inceptionv1_adapt_1_4_nonshared_batch_norm thermal # Training DSU 1-4 $ bob bio htface htface_train_dsu siamese_inceptionv1_adapt_1_5_nonshared_batch_norm thermal # Training DSU 1-5 $ bob bio htface htface_train_dsu siamese_inceptionv1_adapt_1_6_nonshared_batch_norm thermal # Training DSU 1-6 With all the DSUs trained, the corresponding experiments are generated via the following bash commands:: $ bob bio htface htface_baseline siamese_inceptionv1_first_layer_nonshared_batch_norm thermal -vv $ bob bio htface htface_baseline siamese_inceptionv1_adapt_1_2_nonshared_batch_norm thermal -vv $ bob bio htface htface_baseline siamese_inceptionv1_adapt_1_4_nonshared_batch_norm thermal -vv $ bob bio htface htface_baseline siamese_inceptionv1_adapt_1_5_nonshared_batch_norm thermal -vv $ bob bio htface htface_baseline siamese_inceptionv1_adapt_1_6_nonshared_batch_norm thermal -vv Finally, after the execution of the experiments, Figure 5.16 (b) can be generated:: $ bob htface evaluate_and_squash \ \ /thermal/htface_idiap_msceleb_inception_v1_centerloss_gray/ \ /thermal/siamese_inceptionv1_first_layer_nonshared_batch_norm/ \ /thermal/siamese_inceptionv1_adapt_1_2_nonshared_batch_norm/ \ /thermal/siamese_inceptionv1_adapt_1_4_nonshared_batch_norm/ \ /thermal/siamese_inceptionv1_adapt_1_5_nonshared_batch_norm/ \ /thermal/siamese_inceptionv1_adapt_1_6_nonshared_batch_norm/ \ \ --legends "Incep. Res. v1 gray" --legends "$\theta_{t[1-1]}(\beta + W)$" --legends "$\theta_{t[1-2]}(\beta + W)$" \ --legends "$\theta_{t[1-4]}(\beta + W)$" --legends "$\theta_{t[1-5]}(\beta + W)$" --legends "$\theta_{t[1-6]}(\beta + W)$" \ --special-linestyle \ --report-name "v1_siamese.pdf" \ --x-min 0 \ --title "" .. Note:: It's not necessary to run everything at once. Generate partial plots is a possibility. For more info check:: $ bob bio htface evaluate_and_squash --help If everything goes alright the following plot should be dumped .. image:: ./img/chap5/v1_siamese.png :scale: 100 % Siamese training adapting :math:`\beta` ....................................... The code below trains the DSUs for: :math:`\theta_{[1-1](\beta)}`, :math:`\theta_{[1-2](\beta)}`, :math:`\theta_{[1-4](\beta)}`, :math:`\theta_{[1-5](\beta)}` and :math:`\theta_{[1-6](\beta)}`:: $ bob bio htface htface_train_dsu siamese_inceptionv1_first_layer_betas_nonshared_batch_norm thermal # Training DSU 1-1 $ bob bio htface htface_train_dsu siamese_inceptionv1_adapt_1_2_betas_nonshared_batch_norm thermal # Training DSU 1-2 $ bob bio htface htface_train_dsu siamese_inceptionv1_adapt_1_4_betas_nonshared_batch_norm thermal # Training DSU 1-4 $ bob bio htface htface_train_dsu siamese_inceptionv1_adapt_1_5_betas_nonshared_batch_norm thermal # Training DSU 1-5 $ bob bio htface htface_train_dsu siamese_inceptionv1_adapt_1_6_betas_nonshared_batch_norm thermal # Training DSU 1-6 With all the DSUs trained, the corresponding experiments are generated via the following bash commands:: $ bob bio htface htface_baseline siamese_inceptionv1_first_layer_betas_nonshared_batch_norm thermal -vv $ bob bio htface htface_baseline siamese_inceptionv1_adapt_1_2_betas_nonshared_batch_norm thermal -vv $ bob bio htface htface_baseline siamese_inceptionv1_adapt_1_4_betas_nonshared_batch_norm thermal -vv $ bob bio htface htface_baseline siamese_inceptionv1_adapt_1_5_betas_nonshared_batch_norm thermal -vv $ bob bio htface htface_baseline siamese_inceptionv1_adapt_1_6_betas_nonshared_batch_norm thermal -vv Finally, after the execution of the experiments, Figure 5.17 (a) can be generated:: $ bob htface evaluate_and_squash \ \ /thermal/htface_idiap_msceleb_inception_v1_centerloss_gray/ \ /thermal/siamese_inceptionv1_first_layer_betas_nonshared_batch_norm/ \ /thermal/siamese_inceptionv1_adapt_1_2_betas_nonshared_batch_norm/ \ /thermal/siamese_inceptionv1_adapt_1_4_betas_nonshared_batch_norm/ \ /thermal/siamese_inceptionv1_adapt_1_5_betas_nonshared_batch_norm/ \ /thermal/siamese_inceptionv1_adapt_1_6_betas_nonshared_batch_norm/ \ \ --legends "Incep. Res. v1 gray" --legends "$\theta_{t[1-1]}(\beta)$" --legends "$\theta_{t[1-2]}(\beta)$" \ --legends "$\theta_{t[1-4]}(\beta)$" --legends "$\theta_{t[1-5]}(\beta)$" --legends "$\theta_{t[1-6]}(\beta)$" \ --special-linestyle \ --report-name "v1_siamese_betas.pdf" \ --x-min 0 \ --title "" .. Note:: It's not necessary to run everything at once. Generate partial plots is a possibility. For more info check:: $ bob bio htface evaluate_and_squash --help If everything goes alright the following plot should be dumped .. image:: ./img/chap5/v1_siamese_bias.png :scale: 100 % Triplet training adapting :math:`\beta + W` ........................................... The code below trains the DSUs for: :math:`\theta_{[1-1](\beta + W)}`, :math:`\theta_{[1-2](\beta + W)}`, :math:`\theta_{[1-4](\beta + W)}`, :math:`\theta_{[1-5](\beta + W)}` and :math:`\theta_{[1-6](\beta + W)}`:: $ bob bio htface htface_train_dsu triplet_inceptionv1_first_layer_nonshared_batch_norm thermal # Training DSU 1-1 $ bob bio htface htface_train_dsu triplet_inceptionv1_layers_1_2_nonshared_batch_norm thermal # Training DSU 1-2 $ bob bio htface htface_train_dsu triplet_inceptionv1_layers_1_4_nonshared_batch_norm thermal # Training DSU 1-4 $ bob bio htface htface_train_dsu triplet_inceptionv1_layers_1_5_nonshared_batch_norm thermal # Training DSU 1-5 $ bob bio htface htface_train_dsu triplet_inceptionv1_layers_1_6_nonshared_batch_norm thermal # Training DSU 1-6 With all the DSUs trained, the corresponding experiments are generated via the following bash commands:: $ bob bio htface htface_baseline triplet_inceptionv1_first_layer_nonshared_batch_norm thermal -vv $ bob bio htface htface_baseline triplet_inceptionv1_layers_1_2_nonshared_batch_norm thermal -vv $ bob bio htface htface_baseline triplet_inceptionv1_layers_1_4_nonshared_batch_norm thermal -vv $ bob bio htface htface_baseline triplet_inceptionv1_layers_1_5_nonshared_batch_norm thermal -vv $ bob bio htface htface_baseline triplet_inceptionv1_layers_1_6_nonshared_batch_norm thermal -vv Finally, after the execution of the experiments the CMC curves can be generated as:: $ bob htface evaluate_and_squash \ \ /thermal/htface_idiap_msceleb_inception_v1_centerloss_gray/ \ /thermal/triplet_inceptionv1_first_layer_nonshared_batch_norm/ \ /thermal/triplet_inceptionv1_layers_1_2_nonshared_batch_norm/ \ /thermal/triplet_inceptionv1_layers_1_4_nonshared_batch_norm/ \ /thermal/triplet_inceptionv1_layers_1_5_nonshared_batch_norm/ \ /thermal/triplet_inceptionv1_layers_1_6_nonshared_batch_norm/ \ \ --legends "Incep. Res. v1 gray" --legends "$\theta_{t[1-1]}(\beta + W)$" --legends "$\theta_{t[1-2]}(\beta + W)$" \ --legends "$\theta_{t[1-4]}(\beta + W)$" --legends "$\theta_{t[1-5]}(\beta + W)$" --legends "$\theta_{t[1-6]}(\beta + W)$" \ --special-linestyle \ --report-name "v1_triplet.pdf" \ --x-min 0 \ --title "" .. Note:: It's not necessary to run everything at once. Generate partial plots is a possibility. For more info check:: $ bob bio htface evaluate_and_squash --help Triplet training adapting :math:`\beta` ....................................... The code below trains the DSUs for: :math:`\theta_{[1-1](\beta)}`, :math:`\theta_{[1-2](\beta)}`, :math:`\theta_{[1-4](\beta)}`, :math:`\theta_{[1-5](\beta)}` and :math:`\theta_{[1-6](\beta)}`:: $ bob bio htface htface_train_dsu triplet_inceptionv1_first_layer_nonshared_betas_batch_norm thermal # Training DSU 1-1 $ bob bio htface htface_train_dsu triplet_inceptionv1_layers_1_2_betas_nonshared_batch_norm thermal # Training DSU 1-2 $ bob bio htface htface_train_dsu triplet_inceptionv1_layers_1_4_betas_nonshared_batch_norm thermal # Training DSU 1-4 $ bob bio htface htface_train_dsu triplet_inceptionv1_layers_1_5_betas_nonshared_batch_norm thermal # Training DSU 1-5 $ bob bio htface htface_train_dsu triplet_inceptionv1_layers_1_6_betas_nonshared_batch_norm thermal # Training DSU 1-6 With all the DSUs trained, the corresponding experiments are generated via the following bash commands:: $ bob bio htface htface_baseline triplet_inceptionv1_first_layer_nonshared_betas_batch_norm thermal -vv $ bob bio htface htface_baseline triplet_inceptionv1_layers_1_2_betas_nonshared_batch_norm thermal -vv $ bob bio htface htface_baseline triplet_inceptionv1_layers_1_4_betas_nonshared_batch_norm thermal -vv $ bob bio htface htface_baseline triplet_inceptionv1_layers_1_5_betas_nonshared_batch_norm thermal -vv $ bob bio htface htface_baseline triplet_inceptionv1_layers_1_6_betas_nonshared_batch_norm thermal -vv Finally, after the execution of the experiments the CMC curves can be generated as:: $ bob htface evaluate_and_squash \ \ /thermal/htface_idiap_msceleb_inception_v1_centerloss_gray/ \ /thermal/triplet_inceptionv1_first_layer_nonshared_betas_batch_norm/ \ /thermal/triplet_inceptionv1_layers_1_2_betas_nonshared_batch_norm/ \ /thermal/triplet_inceptionv1_layers_1_4_betas_nonshared_batch_norm/ \ /thermal/triplet_inceptionv1_layers_1_5_betas_nonshared_batch_norm/ \ /thermal/triplet_inceptionv1_layers_1_6_betas_nonshared_batch_norm/ \ \ --legends "Incep. Res. v1 gray" --legends "$\theta_{t[1-1]}(\beta)$" --legends "$\theta_{t[1-2]}(\beta)$" \ --legends "$\theta_{t[1-4]}(\beta)$" --legends "$\theta_{t[1-5]}(\beta)$" --legends "$\theta_{t[1-6]}(\beta)$" \ --special-linestyle \ --report-name "v1_triplet_betas.pdf" \ --x-min 0 \ --title "" .. Note:: It's not necessary to run everything at once. Generate partial plots is a possibility. For more info check:: $ bob bio htface evaluate_and_squash --help