distmsmatch

A MPI-distributed version of MSMatch integrating the PASEOS framework for physical modelling

https://github.com/gomezzz/distmsmatch

Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: arxiv.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.3%) to scientific vocabulary

Keywords from Contributors

automatic-differentiation integration monte-carlo-integration multidimensional-integration numerical-integration torchquad vegas vegas-enhanced
Last synced: 7 months ago · JSON representation ·

Repository

A MPI-distributed version of MSMatch integrating the PASEOS framework for physical modelling

Basic Info
  • Host: GitHub
  • Owner: gomezzz
  • License: mit
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 2.18 MB
Statistics
  • Stars: 0
  • Watchers: 2
  • Forks: 1
  • Open Issues: 5
  • Releases: 0
Created almost 4 years ago · Last pushed about 1 year ago
Metadata Files
Readme License Citation

README.md

DistMsMatch

Distributed Semi-Supervised Multispectral Scene Classification with Few Labels

Table of Contents
  1. About The Project
  2. Getting Started
  3. Contributing
  4. FAQ
  5. Contact
  6. License

About The Project

This is the code to realize DistMSMatch, a distributed version of MSMatch. The repository includes an implementation of FixMatch for the semi-supervised training of different convolutional neural networks, including a U-Net Encoder, EfficientNet and EfficientNet Lite to perform scene classification on the EuroSAT dataset. The code builds on and extends the FixMatch-pytorch implementation based on PyTorch.

Built With

Getting Started

This is a brief example of setting up DistMSMatch.

Prerequisites

We recommend using conda to set-up your environment. This will also automatically set up CUDA and the cudatoolkit for you, enabling the use of GPUs for training, which is recommended.

  • conda, which will take care of all requirements for you. For a detailed list of required packages, please refer to the conda environment file.

Installation

  1. Get miniconda or similar
  2. Clone the repo sh git clone https://github.com/gomezzz/DistMSMatch
  3. Setup the environment. This will create a conda environment called distmsmatch sh conda env create -f environment.yml

Set up datasets

To launch the training on EuroSAT (rgb), it is necessary to download the corresponding datasets. Please place the dataset in /data/EuroSAT_RGB. Alternatively, you can change the root_dir variable in the datasets/EurosatRGBDataset.py to point to the dataset. The dataset can be download here.

Run training

The training is performed using the mpi4py package and utilizes multiple processes to control the different spacecraft. Different configurations files in .toml format can be used to set-up DistMsMatch in swarm or federated mode. The federated mode may be performed using a ground station or a geostationary satellite as parameter server.

To run the training using 8 spacecraft, you can proceed as follows:

mpiexec -n 8 python main.py --cfg_path path_to_cfg_file `

If path_to_cfg_file is not specified, the default swarm learning scenario will be run using eight spacecraft.

Contributing

The project is open to community contributions. Feel free to open an issue or write us an email if you would like to discuss a problem or idea first.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Contact

Created by ESA's Advanced Concepts Team, $\Phi$-lab, and AI Sweden. - Johan Östman - johan.ostman at ai.se - Pablo Gómez - pablo.gomez at esa.int (ACT) - Vinutha Magal Shreenath - vinutha at ai.se - Gabriele Meoni - gabriele.meoni at esa.int ($\Phi$-lab)

Project Link: https://www.esa.int/gsp/ACT/projects/semisupervised/

License

Distributed under the MIT License. See LICENSE for more information.

Reference

If you have used DistMSMatch, please cite the following paper DistMSMatch: @article{ostman2023distmsmatch, author = {Östman, Johan and Gómez, Pablo and Shreenath, Vinutha Magal and Meoni, Gabriele}, title = {Decentralised Semi-supervised Onboard Learning for Scene Classification in Low-Earth Orbit}, journal = {arXiv:2305.04059 [cs.LG]}, year = {2023}, }

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
title: "Decentralised Semi-supervised Onboard Learning for Scene Classification in Low-Earth Orbit"
authors:
- given-names: Johan
  family-names: Östman
  affiliation: >-
    AI Sweden, Gothenburg, Sweden
  orcid: "https://orcid.org/0000-0003-4138-0508"
- given-names: Pablo  
  family-names: Gómez
  email: pablo.gomez@esa.int
  affiliation: >-
    Advanced Concepts Team, European Space Agency,
    Noordwijk, The Netherlands
    orcid: "https://orcid.org/0000-0002-5631-8240"
- given-names: Vinutha
  family-names: Magal Shreenath
  affiliation: >-
    AI Sweden, Gothenburg, Sweden
- given-names: Gabriele
  family-names: Meoni
  affiliation: >-
    Phi-Lab, European Space Agency, Rome, Italy
  orcid: "http://orcid.org/0000-0001-9311-6392"
repository-code: "https://github.com/aidotse/PASEOS"
url: "https://paseos.readthedocs.io/en/latest/"
repository-artifact: "https://pypi.org/project/paseos/"
license: GPL-3.0
preferred-citation:
  type: article
  authors:
  - given-names: Johan
    family-names: Östman
    affiliation: >-
      AI Sweden, Gothenburg, Sweden
    orcid: "https://orcid.org/0000-0003-4138-0508"
  - given-names: Pablo
    family-names: Gómez
    email: pablo.gomez@esa.int
    affiliation: >-
      Advanced Concepts Team, European Space Agency,
      Noordwijk, The Netherlands
    orcid: "https://orcid.org/0000-0002-5631-8240"
  - given-names: Vinutha
    family-names: Magal Shreenath
    affiliation: >-
      AI Sweden, Gothenburg, Sweden
  - given-names: Gabriele
    family-names: Meoni
    affiliation: >-
      Phi-Lab, European Space Agency, Rome, Italy
    orcid: "http://orcid.org/0000-0001-9311-6392"
  doi: "10.48550/arXiv.2305.04059"
  journal: "ArXiV"
  title: "Decentralised Semi-supervised Onboard Learning for Scene Classification in Low-Earth Orbit"
  year: 2023

GitHub Events

Total
  • Push event: 1
  • Fork event: 1
Last Year
  • Push event: 1
  • Fork event: 1

Committers

Last synced: about 1 year ago

All Time
  • Total Commits: 74
  • Total Committers: 4
  • Avg Commits per committer: 18.5
  • Development Distribution Score (DDS): 0.554
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
johanos1 o****n@g****m 33
Pablo Gómez c****t@p****t 22
GabrieleMeoni g****i@e****t 16
Gabriele Meoni 7****i 3
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 7 months ago

All Time
  • Total issues: 9
  • Total pull requests: 9
  • Average time to close issues: 26 days
  • Average time to close pull requests: 14 days
  • Total issue authors: 2
  • Total pull request authors: 3
  • Average comments per issue: 0.22
  • Average comments per pull request: 1.0
  • Merged pull requests: 6
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • gomezzz (5)
  • johanos1 (4)
Pull Request Authors
  • johanos1 (4)
  • gomezzz (3)
  • GabrieleMeoni (2)
Top Labels
Issue Labels
documentation (1) enhancement (1) bug (1)
Pull Request Labels