Skip to main content

A TensorFlow-powered python toolbox to train deep neural networks to perform motor tasks.

Project description

MotorNet

This repository contains MotorNet, a python package that allows training recurrent neural networks to control for biomechanically realistic effectors. This toolbox is designed to meet several goals:

  • No hard dependencies beyond typically available python packages. This should make it easier to run this package on remote computing units.
  • Provide users with a variety of muscle types to chose from.
  • Flexibility in creating new, arbitrary muscle wrappings around the skeleton, to enable fast exploration of different potential effectors and how to control them. The moment arm are calculated online according to the geometry of the skeleton and the (user-defined) paths of the muscles.
  • User-friendly API, to allow for easier familiarization and intuitive usage. We want to enable a focus on ideas, not implementation. The toolbox focuses on subclassing to allow users to implement their custom task designs, custom plants, and custom controller networks.
  • Open-source, to allow for user contribution and community-driven incremental progress.

State of the project

The package is feature complete, and is used by several people to progress in their research. We are currently in beta phase, meaning the toolbox is publicly available but we are still on the lookout for potential bugs and fixes to apply. Please feel free to log an issue if you think you found a bug, we appreciate any contribution. Stay tuned for more!

An online documentation is available. Feel free to check it out.

How to Install

Install with pip

First, please make sure that the latest pip version is installed in your working environment.

python3 -m pip install -U pip

Then you can install MotorNet using a simple pip install command.

python3 -m pip install motornet

Requirements

There is no third-party software required to run MotorNet. However, some freely available python dependencies are required.

  • TensorFlow: MotorNet is first and foremost built on TensorFlow. However, the standard TensorFlow toolbox is not compatible with recent Apple machines equipped with M1 silicon chips, and users must rely on an adapted version called tensorflow-macos. When installing MotorNet, the setup.py routine will automatically check the machine' OS platform and hardware to assess whether to solve for the tensorflow or tensorflow-macos dependency.
  • NumPy: For array and matrix computations when not using tensors.
  • Matplotlib: For plotting utilities, mainly in the plotor module.
  • IPython: Mainly for callbacks that output training metrics during model training.
  • joblib: For parallelization routines in the parallelizer script.

Install with Anaconda

Installation via Anaconda is currently not supported.

Tutorials

There are several tutorials available to get you started, available in the repository's examples folder, as well as on the documentation website. Hopefully they will give a sense of how the API is supposed to work.

Changelog

See here for a curated log of update contents.

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

motornet-0.1.3.tar.gz (64.5 kB view details)

Uploaded Source

File details

Details for the file motornet-0.1.3.tar.gz.

File metadata

  • Download URL: motornet-0.1.3.tar.gz
  • Upload date:
  • Size: 64.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.8.6

File hashes

Hashes for motornet-0.1.3.tar.gz
Algorithm Hash digest
SHA256 dcf8c9d5cfd2b6e7b0af675035bab7ab9a7646f6b41921ae065ff72fb8970358
MD5 8603dc5e0b1c59a024b620cc104fbd5f
BLAKE2b-256 688e161f8fdc6752e827804eac72fa32082db748f137f9b0f0938a815e346898

See more details on using hashes here.

Supported by

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