Unverified Commit 3a18c6ab authored by Dan Anghel's avatar Dan Anghel Committed by GitHub
Browse files

Added hyperparameter guidelines for DELF training (#9219)

* Merged commit includes the following changes:
326369548  by Andre Araujo:

    Fix import issues.

--
326159826  by Andre Araujo:

    Changed the implementation of the cosine weights from Keras layer to tf.Variable to manually control for L2 normalization.

--
326139082  by Andre Araujo:

    Support local feature matching using ratio test.

    To allow for easily choosing which matching type to use, we rename a flag/argument and modify all related files to avoid breakages.

    Also include a small change when computing nearest neighbors for geometric matching, to parallelize computation, which saves a little bit of time during execution (argument "n_jobs=-1").

--
326119848  by Andre Araujo:

    Option to measure DELG latency taking binarization into account.

--
324316608  by Andre Araujo:

    DELG global features training.

--
323693131  by Andre Araujo:

    PY3 conversion for delf public lib.

--
32104...
parent 23e26542
...@@ -143,6 +143,8 @@ curl -Os http://storage.googleapis.com/delf/resnet50_imagenet_weights.tar.gz ...@@ -143,6 +143,8 @@ curl -Os http://storage.googleapis.com/delf/resnet50_imagenet_weights.tar.gz
tar -xzvf resnet50_imagenet_weights.tar.gz tar -xzvf resnet50_imagenet_weights.tar.gz
``` ```
### Training with Local Features
Assuming the TFRecord files were generated in the `gldv2_dataset/tfrecord/` Assuming the TFRecord files were generated in the `gldv2_dataset/tfrecord/`
directory, running the following command should start training a model and directory, running the following command should start training a model and
output the results in the `gldv2_training` directory: output the results in the `gldv2_training` directory:
...@@ -156,13 +158,7 @@ python3 train.py \ ...@@ -156,13 +158,7 @@ python3 train.py \
--logdir=gldv2_training/ --logdir=gldv2_training/
``` ```
On a multi-GPU machine the batch size can be increased to speed up the training ### Training with Local and Global Features
using the `--batch_size` parameter. On a 8 Tesla P100 GPUs machine you can set
the batch size to `256`:
```
--batch_size=256
```
It is also possible to train the model with an improved global features head as It is also possible to train the model with an improved global features head as
introduced in the [DELG paper](https://arxiv.org/abs/2001.05027). To do this, introduced in the [DELG paper](https://arxiv.org/abs/2001.05027). To do this,
...@@ -179,6 +175,15 @@ python3 train.py \ ...@@ -179,6 +175,15 @@ python3 train.py \
--delg_global_features --delg_global_features
``` ```
### Hyperparameter Guidelines
In order to improve the convergence of the training, the following
hyperparameter values have been tested and validated on the following
infrastructures, the remaining `train.py` flags keeping their **default
values**:
* 8 Tesla P100 GPUs: `--batch_size=256`, `--initial_lr=0.01`
* 4 Tesla P100 GPUs: `--batch_size=128`, `--initial_lr=0.005`
*NOTE*: We are currently working on adding the autoencoder described in the DELG *NOTE*: We are currently working on adding the autoencoder described in the DELG
paper to this codebase. Currently, it is not yet implemented here. Stay tuned! paper to this codebase. Currently, it is not yet implemented here. Stay tuned!
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment