Package: radionets
radionetsImaging Radio Interferometric Data with Neural NetworksDeep-learning framework for the simulation and analysis of radio interferometric data in Python. The goal is to reconstruct calibrated observations with
convolutional Neural Networks to create high-resolution images. For further information, please have a look at ourpaper.Analysis strategies leading to reproducible processing and evaluation of data recorded by radio interferometers:Simulation of datasets (see also theradiosimrepository)Simulation of radio interferometer observations (see also thepyvisgenrepository)Training of deep learning modelsReconstruction of radio interferometric dataInstallationThis repository is built as a python package. We recommend creating a mamba environment to handle the dependencies of all packages.
You can create one by running the following command in this repository:$ mamba env create -f environment.ymlDepending on yourcudaversion you have to specify thecudatoolkitversion used bypytorch. If you are working on machines
withcudaversions < 10.2, please change the version number in the environment.yml file. Since the packagepre-commitis used, you need to execute$ pre-commit installafter the installation.UsageFor each task, executables are installed to yourPATH. Each takestomlconfiguration files as input to manage data paths and options.
Simulated data is saved inhdf5; trained models are saved aspicklefiles.radionets_simulations <...>This script is used to simulate radio interferometric data sets for the training of deep learning models.radionets_training <...>This script is used to train a model on events with known truth
values for the target variable, usually Monte Carlo simulations.radionets_evaluation <...>This script is used to evaluate the performance of the trained deep-learning models.Default configuration files can be found in the examples directory. The examples directory containsjupyter notebooks, which show an example
analysis pipeline and the corresponding commands. (need a rework)Structure of the Repositorydl_frameworkThe used deep learning framework is based onpytorchandfastai.
An introduction to Neural Networks and an overview of the use of fastai to train deep learning models can be found inPractical Deep Learning for Coders, v3andfastbook.dl_trainingFunctions for handling the different training options. Currently, there are the training, the learning rate finder, and the loss plotting mode available.simulations (further developed inpyvisgenrepository)Functions to simulate and illustrate radio interferometric observations. At the moment simulations based on the MNIST dataset and
simulations of Gaussian sources are possible. We are currently working on simulating visibilities directly in Fourier space.
For more information, visit our corresponding repositorypyvisgen. In the future, the simulations will be created
using thepyvisgenrepository, while theradionetsrepository contains the training and evaluation methods.evaluationFunctions for the evaluation of the training sessions. The available options reach from single, exemplary plots in (u, v) space and image space to
methods computing characteristic values on large test datasets. In detail:Amplitude and phase for the prediction and the truth. Example image below includes the difference between prediction and truth.Reconstructed source images with additional features, such as MS-SSIM values or the viewing angle. Example image below.Histogram of differences between predicted and true viewing angles. The image includes a comparison withwsclean.Histogram of the ratio between predicted and true source areas. The image includes a comparison withwsclean.Histogram of flux difference in the core component. The image includes a comparison withwsclean.Included, but not yet fully operationalHistogram of differences between predicted and true MS-SSIM values on a dedicated test datasetHistogram of differences between predicted and true dynamic range values on a dedicated test datasetAll histograms are created on a dedicated test dataset.ContributorsKevin Schmidt@Kevin2Felix Geyer@FeGeyerArne Poggenpohl@ArnePoggenpohlStefan Fröse@StFroesePaul-Simon Blomenkamp@PBlomenkampOlivia Locke@olivialockeKevin Laudamus@K-LaudaEmiliano Miranda@emilianozm24Maximilian Büchel@MaxBueRune Dominik@RuneDominikVersions used and testedPython >= 3.8pyTorch >= 1.11.0torchvision >= 0.12.0cudatoolkit >= 11.3