/Threepio

A multi-language library for translating commands between PyTorch, TensorFlow, and TensorFlow.js

Primary LanguagePythonApache License 2.0Apache-2.0

Threepio logo

Coverage License OpenCollective

Threepio

Threepio makes it dead simple to translate commands between machine learning frameworks such as PyTorch, Tensorflow.js, and Tensorflow Python. It acts as a core component in PySyft and syft.js. Some of the life changing features this library provides are:

  • 🤖 Automatic bi-directional translation between same named commands add, abs, etc.
  • 🧠 Smart argument mapping between automaticaly translated commands
  • 🔁 Word level translation between libraries
  • 🔧 Custom command translation
  • 🌿 One to many command translation
  • ⚡ Translation of tensor methods (in progress)
  • 🔍 Support for fuzzy match in automatic command translation (in progress)
  • 🗂️ Support for framework versioning in automatic translation (in progress)
  • 🧙‍♂️ Support for automatic argument type casting (tensorflow tensor -> pytorch tensor) (in progress)

Threepio is made up of three main components:

And has clients in both Python and Javascript!

Installation

Depending on your language, installation will differ.

Python

Use the package manager pip to install threepio.

pip install 3p0

Usage

Please check out our usage document for further guidelines.

Javascript

Use the package manager npm to install threepio.

npm install @openmined/threepio

Usage

Please check out our usage document for further guidelines.

Support

For support in using this library, please join the #lib_threepio Slack channel. If you'd like to follow along with any code changes to the library, please join the #code_threepio Slack channel. Click here to join our Slack community!

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

Contributors

Please make sure to fill this section in with all former and current contributors to the project. Documentation on how to do this is located here.

License

Apache License 2.0