From d1577c326e5b301751b34f6f0f1634cc9b51e79c Mon Sep 17 00:00:00 2001 From: Turgeon-Pelchat Date: Mon, 12 Feb 2024 13:05:14 -0500 Subject: [PATCH 01/11] update references in quickstart --- docs/source/quickstart.rst | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/source/quickstart.rst b/docs/source/quickstart.rst index 5fd89624..0f54f063 100755 --- a/docs/source/quickstart.rst +++ b/docs/source/quickstart.rst @@ -21,7 +21,7 @@ Examples used here are for a bash shell in an Ubuntu GNU/Linux environment. Installation ------------ -Miniconda is suggested as the package manager for GDL. However, users are advised to `switch to libmamba ` as conda's default solver or to __directly use mamba__ instead of conda if they are facing extended installation time or other issues. Additional problems are grouped in the `troubleshooting section `. If issues persist, users are encouraged to open a new issue for assistance. +Miniconda is suggested as the package manager for GDL. However, users are advised to `switch to libmamba `_ as conda's default solver or to directly use mamba instead of conda if they are facing extended installation time or other issues. Additional problems are grouped in the `troubleshooting section `_. If issues persist, users are encouraged to open a new issue for assistance. Quickstart with conda @@ -37,14 +37,15 @@ python environment with the following commands: Tested on Ubuntu 20.04, Windows 10 and WSL 2. -Change conda's default solver for faster install (__Optional__) +Change conda's default solver for faster install (Optional) .. code-block:: console $ conda install -n base conda-libmamba-solver $ conda config --set solver libmamba -.. _troubleshooting +.. _troubleshooting: + Troubleshooting ---------------- From 07089efb1e42f316cda3262e071d560029ccff61 Mon Sep 17 00:00:00 2001 From: Turgeon-Pelchat Date: Mon, 12 Feb 2024 13:26:57 -0500 Subject: [PATCH 02/11] update references in quickstart --- docs/source/quickstart.rst | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/docs/source/quickstart.rst b/docs/source/quickstart.rst index 0f54f063..69d224c2 100755 --- a/docs/source/quickstart.rst +++ b/docs/source/quickstart.rst @@ -21,7 +21,7 @@ Examples used here are for a bash shell in an Ubuntu GNU/Linux environment. Installation ------------ -Miniconda is suggested as the package manager for GDL. However, users are advised to `switch to libmamba `_ as conda's default solver or to directly use mamba instead of conda if they are facing extended installation time or other issues. Additional problems are grouped in the `troubleshooting section `_. If issues persist, users are encouraged to open a new issue for assistance. +Miniconda is suggested as the package manager for GDL. However, users are advised to `switch to libmamba `_ as conda's default solver or to directly use mamba instead of conda if they are facing extended installation time or other issues. Additional problems are grouped in the :ref:`troubleshooting`. If issues persist, users are encouraged to open a new issue for assistance. Quickstart with conda @@ -44,15 +44,14 @@ Change conda's default solver for faster install (Optional) $ conda install -n base conda-libmamba-solver $ conda config --set solver libmamba + .. _troubleshooting: - Troubleshooting ----------------- +Troubleshooting +--------------- .. code-block:: console $ *ImportError: /lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found* - -.. code-block:: console $ # Export path to library or set it permenantly in your .bashrc file (example with conda) : $ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CONDA_PREFIX/lib/ From 3f5b47566524b02c49e03ddf2c543640a48a7776 Mon Sep 17 00:00:00 2001 From: Turgeon-Pelchat Date: Mon, 12 Feb 2024 13:28:32 -0500 Subject: [PATCH 03/11] update references in quickstart --- docs/source/quickstart.rst | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/source/quickstart.rst b/docs/source/quickstart.rst index 69d224c2..649acb0c 100755 --- a/docs/source/quickstart.rst +++ b/docs/source/quickstart.rst @@ -49,9 +49,12 @@ Change conda's default solver for faster install (Optional) Troubleshooting --------------- +Import error: + +.. code-block:: console - .. code-block:: console $ *ImportError: /lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found* + $ $ # Export path to library or set it permenantly in your .bashrc file (example with conda) : $ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CONDA_PREFIX/lib/ From f388f39fd6d0a37908d126c544e71f7bd845d73b Mon Sep 17 00:00:00 2001 From: Turgeon-Pelchat Date: Mon, 12 Feb 2024 14:04:12 -0500 Subject: [PATCH 04/11] add schema for GDL modes --- docs/source/mode.rst | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/source/mode.rst b/docs/source/mode.rst index 96bd2fe9..3e4220b9 100755 --- a/docs/source/mode.rst +++ b/docs/source/mode.rst @@ -5,6 +5,10 @@ Mode The **mode** represent the assignment that you give to the code. +The following schema describes GDL's modes and concepts. +.. image:: img/overview.png + :width: 600 + .. _datatiling: Data Tiling @@ -21,7 +25,7 @@ preparation phase creates `chips Date: Mon, 12 Feb 2024 14:04:49 -0500 Subject: [PATCH 05/11] add schema for GDL modes --- docs/source/mode.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/source/mode.rst b/docs/source/mode.rst index 3e4220b9..b13fab01 100755 --- a/docs/source/mode.rst +++ b/docs/source/mode.rst @@ -6,6 +6,7 @@ Mode The **mode** represent the assignment that you give to the code. The following schema describes GDL's modes and concepts. + .. image:: img/overview.png :width: 600 From 4bd6b636d26a3660ee8c000a069201e02e995e2f Mon Sep 17 00:00:00 2001 From: Turgeon-Pelchat Date: Mon, 12 Feb 2024 14:07:25 -0500 Subject: [PATCH 06/11] add schema for GDL modes --- docs/img/overview.png | Bin 0 -> 86246 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/img/overview.png diff --git a/docs/img/overview.png b/docs/img/overview.png new file mode 100644 index 0000000000000000000000000000000000000000..4b406cf6511e4d1ce4529ce7fe3de8c741a9fbf5 GIT binary patch literal 86246 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 eoAr3aP=bYJk*!dwYNHi01p>Br?b-#jS6j!$ugf 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 literal 0 HcmV?d00001 From 9a7b65e48d4d1d32e671b002f21b1aa2211739d0 Mon Sep 17 00:00:00 2001 From: Turgeon-Pelchat Date: Mon, 12 Feb 2024 14:09:06 -0500 Subject: [PATCH 07/11] add schema for GDL modes --- docs/source/mode.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/mode.rst b/docs/source/mode.rst index b13fab01..ef42c381 100755 --- a/docs/source/mode.rst +++ b/docs/source/mode.rst @@ -7,7 +7,7 @@ The **mode** represent the assignment that you give to the code. The following schema describes GDL's modes and concepts. -.. image:: img/overview.png +.. image:: docs/img/overview.png :width: 600 .. _datatiling: From d33be8ae455d62cca7580f5f9c39007c355fc413 Mon Sep 17 00:00:00 2001 From: Turgeon-Pelchat Date: Mon, 12 Feb 2024 14:13:20 -0500 Subject: [PATCH 08/11] add schema for GDL modes --- docs/source/mode.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/mode.rst b/docs/source/mode.rst index ef42c381..2579b8a8 100755 --- a/docs/source/mode.rst +++ b/docs/source/mode.rst @@ -7,7 +7,7 @@ The **mode** represent the assignment that you give to the code. The following schema describes GDL's modes and concepts. -.. image:: docs/img/overview.png +.. image:: ../img/overview.png :width: 600 .. _datatiling: From 32dd02824a3694ea561bdfd93d8460616166fc49 Mon Sep 17 00:00:00 2001 From: Turgeon-Pelchat Date: Mon, 12 Feb 2024 16:15:53 -0500 Subject: [PATCH 09/11] update mode docs --- docs/source/mode.rst | 43 +++++++++++++++++++++++++++++++++++++++---- 1 file changed, 39 insertions(+), 4 deletions(-) diff --git a/docs/source/mode.rst b/docs/source/mode.rst index 2579b8a8..6af17d8d 100755 --- a/docs/source/mode.rst +++ b/docs/source/mode.rst @@ -111,9 +111,9 @@ Training # Training the neural network (geo_deep_env) $ python GDL.py mode=train -Training, along with validation and testing phase is where the neural network learns to use the data prepared in -the previous phase to make all the predictions. The crux of the learning process is the training phase. -During the training the data are separated in three for training, validation and test. The samples labeled "*trn*" +Training, along with validation and testing phase is where the neural network learns, from the data prepared in +the tiling mode to make all the predictions. The crux of the learning process is the training phase. +During the training the data are separated in three datasets for training, validation and test. The samples labeled "*trn*" as per above are used to train the neural network. The samples labeled "*val*" are used to estimate the training error (i.e. loss) on a set of sub-images not used for training. After every epoch and at the end of all epochs, the model with the lowest error on validation data is loaded and use on the samples labeled "*tst*" if they exist. @@ -125,7 +125,42 @@ and this configuration file look a like: .. literalinclude:: ../../../config/training/default_training.yaml :language: yaml -This section will follow soon. + +- ``num_gpus`` (int) + Number of GPUs used for training. The value does not matter if Pytorch is installed cpu-only. +- ``batch_size`` (int) + Number of training tiles in one forward/backward pass. +- ``eval_batch_size`` (int) + Number of validation tiles in one forward/backward pass. +- ``batch_metrics`` (int) + Compute metrics every n batches. If set to 1, will calculate metrics for every batch during validation. Calculating + metrics is time-consuming, therefore it is not always required to calculate it on every batch, for every epoch. +- ``lr`` (float) + Learning rate at first epoch. +- ``max_epochs`` (int) + Maximum number of epoch for one training session. +- ``min_epochs`` (int) + Minimum number of epoch for one training session. +- ``num_workers`` (int, optional) + Number of workers assigned for the dataloader. If not provided, will be deduced from the number of GPU (num_workers = 4 * num_GPU). + `References `_ +- ``mode`` (str) + 'min' or 'max', will minimize or maximize the chosen loss. +- ``max_used_ram`` (int, optional) + Used to calculate wether or not the process can use the GPU. If a GPU is already used by another process, the training can still be + pushed to this GPU if ``max_used_ram`` is not met. +- ``max_used_perc`` (int, optional) + Value between 0-100. Used to calculate wether or not the process can use the GPU. If a GPU is already used by another process, + the training can still be pushed to this GPU if ``max_used_perc`` is not met. +- ``state_dict_path`` (str, optional) + Path to a pretrained model (.pth.tar). +- ``state_dict_strict_load`` (bool, optional) + Defines whether to strictly enforce that the keys in state_dict match the keys returned by this Pytorch's state_dict() function. + Default: True. `Reference `_ +- ``compute_sampler_weights`` (bool, optional) + If provided, estimate sample weights by class for unbalanced datasets. + Uses `Sk-learn `_ + .. _inference: From 07f658331d85ae7e22557619f2ab8850aa47309d Mon Sep 17 00:00:00 2001 From: Turgeon-Pelchat Date: Mon, 12 Feb 2024 16:17:48 -0500 Subject: [PATCH 10/11] update mode docs --- docs/source/mode.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/source/mode.rst b/docs/source/mode.rst index 6af17d8d..7fab5980 100755 --- a/docs/source/mode.rst +++ b/docs/source/mode.rst @@ -120,7 +120,7 @@ the model with the lowest error on validation data is loaded and use on the samp The result of those "*tst*" images is used to estimate the accuracy of the model, since those images were unseen during training nor validation. For all those steps, we have the parameters that can be found in :ref:`configurationdefaultparam` under ``training`` -and this configuration file look a like: +and this configuration file looks like: .. literalinclude:: ../../../config/training/default_training.yaml :language: yaml @@ -175,7 +175,7 @@ Inference The inference phase is the last one, it allows the use of a trained model to predict on new input data without ground truth. For this final step in the process, it need to assign every pixel in the original image a value corresponding to the most probable class with a certain level of confidence. Like the other two mode, the parameter -will be found in :ref:`configurationdefaultparam` under ``inference`` and this configuration file look a like +will be found in :ref:`configurationdefaultparam` under ``inference`` and this configuration file looks like (for binary inference): .. literalinclude:: ../../../config/inference/default_binary.yaml From 2b5cc4e45a4fcdccff582882b28f9264c4c36130 Mon Sep 17 00:00:00 2001 From: Turgeon-Pelchat Date: Mon, 12 Feb 2024 16:22:23 -0500 Subject: [PATCH 11/11] update dataset --- docs/source/dataset.rst | 39 +++++++++++++++++++++++++++------------ 1 file changed, 27 insertions(+), 12 deletions(-) diff --git a/docs/source/dataset.rst b/docs/source/dataset.rst index b2b132e4..e5a5f746 100755 --- a/docs/source/dataset.rst +++ b/docs/source/dataset.rst @@ -3,11 +3,10 @@ Dataset +++++++ -The dataset configuration can be found :ref:`here `, this file contain -specific information about input data parameters for the execution of your command. The documentation -on the parameters use is explain in the :ref:`yaml ` section. +The dataset configuration defines the data (images, ground truth) and their parameters. The documentation +on the parameters used is explained in the :ref:`yaml ` section. -The sampling and inference steps requires a csv referencing input data. An example of input csv for +The tiling and inference steps requires a csv referencing input data. An example of input csv for massachusetts buildings dataset can be found in `tests `_. Each row of this csv is considered, in geo-deep-learning terms, to be an @@ -46,7 +45,22 @@ Dataset splits Split in csv should be either "trn", "tst" or "inference". The tiling script outputs lists of patches for "trn", "val" and "tst" and these lists are used as is during training. -Its proportion is set by the :ref:`tiling config `. +Its proportion is set by the :ref:`tiling config `. + +AOI +--- +An AOI is defined as an image (single imagery scene or mosaic), its content and metadata and the associated ground truth vector (optional). + +.. note:: + + AOI without ground truth vector can only be used for inference purposes. + + +The AOI's implementation in the code is as follow: + +.. autoclass:: dataset.aoi.AOI + :members: + :special-members: Raster and vector file compatibility ------------------------------------ @@ -66,15 +80,15 @@ Remote sensing is known to deal with raster files from a wide variety of formats To provide as much flexibility as possible with variable input formats for raster data, geo-deep-learning supports: -#. Multi-band raster files, to be used as is (all bands needed, all bands is expected order) -#. Multi-band raster files with more bands than needed (e.g. Actual is "BGRN", needed is "BGR") -#. Multi-band raster files with bands in different order than needed (e.g. Actual is "BGR", needed is "RGB") -#. Single-band raster files, identified with a common string pattern (see details below) -#. Single-band raster files, identified as assets in a stac item (see details below) +#. :ref:`Multi-band raster files, used as is ` (all bands needed, all bands is in the expected order) +#. :ref:`Multi-band raster files with more bands or different order than needed ` (e.g. Actual is "BGRN", needed is "BGR" OR Actual is "BGR", needed is "RGB") +#. :ref:`Single-band raster files, identified with a common string pattern ` (see details below) +#. :ref:`Single-band raster files, identified as assets in a stac item ` (see details below) To support these variable inputs, geo-deep-learning expects the first column of an input csv to be in the following formats. +.. _datasetmultiband: Multi-band raster files, used as is ==================================== @@ -87,7 +101,8 @@ This is the default and basic use. - ... * - my_dir/my_multiband_geofile.tif - ... - + +.. _datasetmultibandmorebands: Multi-band raster files with more bands or different order than needed ====================================================================== @@ -116,7 +131,7 @@ The ``bands`` parameter is set in the indexed from 1 (`docs `_). - +.. _datasetsingleband: Single-band raster files, identified with a common string pattern =================================================================