Template for projects in PyTorch powered with PyTorch Lightning + MLflow + Telegrad.
- Get model training updates on your phone on Telegram with the help of Telegrad.
- Log experiment hyperparameters, metrics and training losses with MLflow.
- Utilise Pytorch-Lightning to streamline the code and write less boilerplate.
- Linear Neural Networks:
- Convolutional Neural Networks:
- CNN
- Convolutional Autoencoder
- Convolutional Variational Autoencoder
- Convolutional GAN
- Graph Neural Networks:
- Graph Classification:
- Node Classification:
- Graph Conv
- Edge Conv
- RL algorithms:
- Value based:
- Deep Q-Networks
- Double Deep Q-Networks
- Dueling Double Deep Q-Networks
- Prioritized Replay Buffer for Q-Learning
- Noisy Deep Q-Networks
- RAINBOW
- Policy based:
- REINFORCE
- DDPG
- TD3
- A2C
- A3C
- SAC
- PPO
- TRPO
- Imitation Learning:
- Behaviour Cloning
- GAIL
- DAgger
- If time permits: HER, ACER, ACKTR
- Value based:
Use requirements.txt
to install libraries. Note RDkit requires 'conda install' and is not necessary if you are not going to use the graph neural network example given.
- PyTorch and Torchvision for deep learning models.
- PyTorch-Geometric for graph neural network models.
- PyTorch-Lightning for managing experiments.
- MLflow for managing experiments.
- Telegrad for monitoring training on mobile via telegram.
- OpenAI Gym for reinforcement learning environments.
- RDkit for graph neural networks example.
- First clone the repo:
git clone https://github.com/nsidn98/PyThor.git
- Change directory to the repo:
cd PyThor
- Then install all relevant libraries mentioned above.
- Setup telegram messaging by following the steps here
- Then run
python -W ignore pythor/Networks/Linear/MLP/mlp.py
which will run a linear MLP on the MNIST dataset. - Check other examples in Networks which include Linear, Convolutional and Graph.
- For RL algorithms check the RL folder. Note: The algorithms have been segregated according to their types.
- The MLflow board data will be stored in
mlruns
. To view the mlflow board runmlflow ui
which will open it on local host. This will store all the parameters used in the experiment, the metrics obtained during the experiment. You can add tags to each of the experiment.