Skip to main content

Knowledge-aware machine learning from multiple sources in Python

Project description

project-pykale

Very cool library with lots of great ideas on moving toward 'green', efficient multimodal machine learning and AI.

Kevin Carlberg, AI Research Science Manager at Facebook Reality Labs (quoted from tweet).


tests Documentation Status PyPI version codecov PyPI downloads

Getting Started | Documentation | Contributing | Discussions | Changelog

PyKale is a PyTorch library for multimodal learning and transfer learning with deep learning and dimensionality reduction on graphs, images, texts, and videos. By adopting a unified pipeline-based API design, PyKale enforces standardization and minimalism, via green machine learning concepts of reducing repetitions and redundancy, reusing existing resources, and recycling learning models across areas. PyKale aims to facilitate interdisciplinary, knowledge-aware machine learning research for graphs, images, texts, and videos in applications including bioinformatics, graph analysis, image/video recognition, and medical imaging. It focuses on leveraging knowledge from multiple sources for accurate and interpretable prediction. See our arXiv preprint and a 12-minute introduction video on YouTube.

Pipeline-based API (generic and reusable)

  • loaddata loads data from disk or online resources as input
  • prepdata preprocesses data to fit machine learning modules below (transforms)
  • embed embeds data in a new space to learn a new representation (feature extraction/selection)
  • predict predicts a desired output
  • evaluate evaluates the performance using some metrics
  • interpret interprets the features and outputs via post-prediction analysis mainly via visualization
  • pipeline specifies a machine learning workflow by combining several other modules

Example usage

  • examples demonstrate real applications on specific datasets.

How to Use

Step 0: Installation

PyKale supports Python 3.6+. Before installing pykale, we suggest you to first install PyTorch matching your hardware, and if graphs will be used, install PyTorch Geometric following its official instructions.

Simple installation of pykale from PyPI:

pip install pykale

For more details and other options, please refer to the installation guide.

Step 1: Tutorials and Examples

Start with a brief tutorial walking through API usage in examples or interactive Jupyter notebook tutorials, e.g. Open in Colab or Binder for a basic digit classification problem.

Browse through the examples to see the usage of PyKale in performing various prediction tasks in a wide range of applications, using a variety of settings, e.g. with or without PyTorch Lightning.

Ask questions on PyKale's GitHub Discussions tab if you need help or create an issue if you find som

Step 2: Building and Contributing

Build new modules and/or projects with PyKale referring to the tutorial, e.g., on how to modify an existing pipeline or build a new one.

This is an open-source project welcoming your contributions. You can contribute in three ways:

  • Star and fork PyKale to follow its latest developments, share it with your networks, and ask questions about it.
  • Use PyKale in your project and let us know any bugs (& fixes) and feature requests/suggestions via creating an issue.
  • Contribute via branch, fork, and pull for minor fixes and new features, functions, or examples to become one of the contributors.

See contributing guidelines for more details. You can also reach us via email if needed. The participation in this open source project is subject to Code of Conduct.

Who We Are

The Team

PyKale is primarily maintained by a group of researchers at the University of Sheffield: Haiping Lu, Raivo Koot, Xianyuan Liu, Shuo Zhou, Peizhen Bai, and Robert Turner.

We would like to thank our other contributors including (but not limited to) Cameron McWilliam, David Jones, and Will Furnass.

Citation

    @article{pykale,
      title   = {PyKale: Knowledge-Aware Machine Learning from Multiple Sources in Python},
      author  = {Haiping Lu and Xianyuan Liu and Robert Turner and Peizhen Bai and Raivo Koot and Shuo Zhou and Mustafa Chasmai and Lawrence Schobs},
      journal = {arXiv:2106.09756 [cs.LG]},
      year    = {2021}
    }

Acknowledgements

The development of PyKale is partially supported by the following project(s).

  • Wellcome Trust Innovator Awards: Digital Technologies Ref 215799/Z/19/Z "Developing a Machine Learning Tool to Improve Prognostic and Treatment Response Assessment on Cardiac MRI Data".

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

pykale-0.1.0rc3.tar.gz (110.6 kB view details)

Uploaded Source

Built Distribution

pykale-0.1.0rc3-py2.py3-none-any.whl (144.3 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file pykale-0.1.0rc3.tar.gz.

File metadata

  • Download URL: pykale-0.1.0rc3.tar.gz
  • Upload date:
  • Size: 110.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.9.7

File hashes

Hashes for pykale-0.1.0rc3.tar.gz
Algorithm Hash digest
SHA256 36af92bda937fff6fca29777a779898257a2285bd7d82c092b8e2230d05b44cb
MD5 c76889741b33742138afd351c1f04f00
BLAKE2b-256 343ab3caad7d169f829597d4e4aef416d1da44d8bc69f525093893a776f0dfc4

See more details on using hashes here.

File details

Details for the file pykale-0.1.0rc3-py2.py3-none-any.whl.

File metadata

  • Download URL: pykale-0.1.0rc3-py2.py3-none-any.whl
  • Upload date:
  • Size: 144.3 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.9.7

File hashes

Hashes for pykale-0.1.0rc3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 a486918eb8c33b0de2a2e67d1be28ac3c259e7148926b874087fb55c3dc8ce59
MD5 d5255f26a14abcbf8b3fa413bb155478
BLAKE2b-256 3e278fe404ad17d06ddf49030d8c975eab4f40ed5474600683416fb970f1f55b

See more details on using hashes here.

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