👍🎉 First off, thanks for taking the time to contribute! 🎉👍
The following is a set of guidelines for contributing to ERU.
- Join ERU slack channel
- Or email me at [email protected] for questions
- Experienced in Python
- Have a deep understanding of pytorch and some high-level frameworks such as Keras
- Understand basics of ERU backend packages
- Experienced in some use cases of deep learning
The current ERU package implemented basic layers (Dense, Dropout, Softmax, Sigmoid..) and some advanced layers (GRU, Embeddings). But we need much more layers like Convolution, Pooling, RNN, LSTM... If you are interested in implementing those layers, please look into how we wrote other layers and use the base Layer class to implement. Since we are still testing the general framework and might change the implementation of layers, we suggest adding only popular layers for now.
We only implemented Adam optimizer and cross-entropy loss functions. Despite those being the popular ones, we need to add other optimizers and loss functions.
The current Model API and layer code are developed without much checking and handling exceptions. You can help to tidy up some of those code with decorators and add exceptions.
There are some nice updates on Pytorch side, and we need to upgrade as well.
To save time during the development, we the code only support GPU. We need to add CPU support as well.
We have struggled with the data pipeline for some time and the current implementation is similar to Keras, where users can dump x, y into the model API or write a generator. We want to support some preprocessing and ready to use generators. If you have experience in numpy and data processing, you can start to write some data processing code.
Given we are still working on the backend code, We suggest not add to many examples for now. But here are some examples we envision to have:
- MNIST with MLP
- MNIST with CNN
- IMBD/Yelp sentiment classification with LSTM
- IMBD/Yelp sentiment classification with Conv1D
- Language modeling on PTB dataset
- Sequence to sequence translation
Private message me (Shawn Shan) directly on Slack for things you want to work on, and we will discuss.