Quantile regression neural networks (QRNNs)
An implementation of quantile regression neural networks (QRNNs) developed specifically for remote sensing applications providing a flexible interface for simple training and evaluation of QRNNs.
Overview
The QRNN implementation consists of two-layers:
A high-level interface provided by the
QRNN
classBackend-specific implementations of different neural network architectures to be used as models by the high-level implementation
The QRNN class
The QRNN
class provides the high-level
interface for QRNNs. This is all that is required to train a plain,
fully-connected QRNN. The class itself implements generic functionality related
to the evaluation of QRNNs and the post processing of results such as computing
the PSD or the posterior mean. For the rest it acts as a wrapper around its
model attribute, which encapsules all network- and DL-framework-specific code.
Backends
Currently both keras and pytorch
are supported as backends for neural networks. The QRNN implementation will
automatically use the one that is available on your system. If both are available
you can choose a specific backend using the set_backend()
function.
Neural network models
The typhon.retrieval.qrnn.QRNN
has designed to work with any generic
regression neural network model. This aim of this was to make the implementation
sufficiently flexible to allow special network architectures or customization of
the training process.
This gives the user the flexibility to design custom NN models in pytorch
or Keras and use them with the QRNN
class. Some predefined architectures
are defined in the typhon.retrieval.qrnn.models
submodule.
API documentation
typhon.retrieval.qrnn.qrnn
This module provides the QRNN class, which implements the high-level
functionality of quantile regression neural networks, while the neural
network implementation is left to the model backends implemented in the
typhon.retrieval.qrnn.models
submodule.
|
Quantile Regression Neural Network (QRNN) |
typhon.retrieval.qrnn.models.pytorch
This model provides Pytorch neural network models that can be used a backend
models for the typhon.retrieval.qrnn.QRNN
class.
|
Pytorch implementation of a fully-connected QRNN model. |
|
Pytorch implementation of the UNet architecture for image segmentation. |
typhon.retrieval.qrnn.models.keras
This module provides Keras neural network models that can be used as backend
models with the typhon.retrieval.qrnn.QRNN
class.
|
Keras implementation of fully-connected networks. |