Skip to main content

ChildGrowthMonitor's ML Common code

Project description

codecov Python package Supported Python Versions Binder CodeFactor

Child Growth Monitor Machine Learning

Child Growth Monitor (CGM) is a game-changing app to detect malnutrition. If you have questions about the project, reach out to info@childgrowthmonitor.org.

This is the Machine Learnine repository associated with the CGM project.

Introduction

This project uses machine learning to identify malnutrition from 3D scans of children under 5 years of age. This one-minute video explains.

Getting started

Requirements

You will need:

  • Python 3.6 or Python 3.7
  • TensorFlow version 2
  • other libraries

To install, run:

pip install -r requirements.txt

We use Microsoft Azure ML to manage our datasets, experiments, and models internally. You can also run most of the code without AzureML though.

Dataset access

Data access is provided on as-needed basis following signature of the Welthungerhilfe Data Privacy & Commitment to Maintain Data Secrecy Agreement. If you need data access (e.g. to train your machine learning models), please contact Markus Matiaschek for details.

If you have access to scan data, you can use: cgmml/data_utils to understand and visualize the data.

Repository structure

The source code is in cgmml/.

Due to AzureML, all code for a single experiment run needs to reside in one directory. Example: All code for one specific training, e.g. a ResNet training, needs to be in this training directory.

However, many of our trainings (and also evaluation runs) share large portions of code. In order to reduce code duplication, we copy shared(a.k.a. common) utility code with copy_dir() from cgmml/common/ into the training/evaluation directory. This way, during the experiment run, the code is in the directory and can be used during the run.

Run linting / tests

# Make sure to be in the root dir of this repository
flake8 cgmml/
pytest

Release cgm-ml-common

Common functionalities of this repo are released on pypi: https://pypi.org/project/cgm-ml-common/

To release a new version of cgm-ml-common:

  • Configure the version you wish to release in setup.py
  • Publish the release using the pipeline .github/workflows/pypi-release.yml

Contributing

Please see CONTRIBUTING.md for details.

Versioning

Our releases use semantic versioning. You can find a chronologically ordered list of notable changes in CHANGELOG.md.

License

This project is licensed under the GNU General Public License v3.0. See LICENSE for details and refer to NOTICE for additional licensing notes and use of third-party components.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cgm-ml-common-3.1.7.tar.gz (853.4 kB view hashes)

Uploaded Source

Built Distribution

cgm_ml_common-3.1.7-py3-none-any.whl (971.3 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page