Neural Modules (NeMo): a framework-agnostic toolkit for building AI applications powered by Neural Modules
VIDEO
A Short VIDEO walk-through about using NEMO to experiment with ASR systems.
Core Concepts and Features
- NeuralModule class - represents and implements a neural module.
- NmTensor - represents activation flow between neural modules' ports.
- NeuralType - represents types of modules' ports and NmTensors.
- NeuralFactory - to create neural modules and manage training.
- Lazy execution - when describing activation flow between neural modules, nothing happens until an "action" (such as optimizer.optimize(...) is called.
- Collections - NEMO comes with collections - related group of modules such as nemo_asr (for Speech Recognition) and nemo_nlp for NLP
Documentation
Please refer to the HTML documentation in the docs folder
Requirements
- Python 3.6 or 3.7
- Pytorch >=1.0 with GPU support
- NVIDIA APEX: https://github.com/NVIDIA/apex
- (for nemo_asr do: apt-get install libsndfile1)
Unittests
Run this:
./reinstall.sh
python -m unittest tests/*.py
Getting started
- Clone the repository and run unittests
- Go to nemo folder and do: python setup.py install
- Install collections:
- ASR collection from collections/nemo_asr do: python setup.py install
- NLP collection coming soon ...
- For development do: python setup.py develop instead of python setup.py install in Step (3) above
- Go to examples/start_here to get started with few simple examples
- To get started with speech recognition:
- head to the ASR tutorial in the documentation
- head to examples/asr/ASR_made_simple.ipynb