model module¶
This module contains classes used for wrapping denoising algorithms in order to provide common functionality and behavior.
The frst distinction we make is between deep learning based denoising algorithms, and filtering algorithms. The functionality
of these two models is standardized by model.AbstractDenoiser.
Deep Learning models, however, are based on frameworks such as Keras and Pytorch which differ in syntax. To standardize the behavior of Deep Learning models across frameworks,
we propose the
model.AbstractDeepLearningModel interface, which unifies three kinds of functionalities that all deep learning models
should provide:
- charge_model, which builds the computational graph of the network.
- train, which trains the network on data.
- inference, which denoises data.
To give a better idea of the class structure and its relations to the other modules, we show the following UML class diagram,
The documentation of this module is divided as follows,
- Interface Classes: Documents the two main abstract classes which are AbstractDenoiser and AbstractDeepLearningModel.
- Wrapper Classes: Documents the 6 wrapper classes in the benchmark, which are FilteringModel, KerasModel, PytorchModel, TfModel, MatlabModel, OnnxModel, MatconvnetModel.
- Built-in Architectures: Documents the neural network architectures already provided by the benchmark.
- Filtering functions: Documents the filtering functions already provided by the benchmark.
- Model utilities: Documents functions for model conversion and graph editing.