StickStick is an innovative educational framework designed to help you grasp deep learning concepts smoothly. It comes packed with fantastic features like automatic differentiation, various optimizers, and more. This guide will walk you through the process of running StickStick, especially on your Mac M1 system, and provide troubleshooting tips along the way.
Features of StickStick
- Common operators (e.g. matmul, conv), optimizers (e.g. SGD, Adam), and models (e.g. ResNet, LSTM)
- Automatic differentiation
- Supports CPU (C++) and GPU (CUDA) NDArray backends
- Checkpointing (rematerialization)
- Dynamic tensor rematerialization (DTR)
The checkpointing and DTR features are sourced from Tianqi Chen’s and Marisa Kirisame’s research papers. They serve as exemplary integrations of academic concepts into a DIY deep learning framework, making StickStick a valuable resource for learning.
How to Run StickStick
You can run StickStick on Google Colab, which provides a unified environment along with free GPU resources. Start by visiting the Colab.ipynb documentation for detailed instructions.
Running on Mac M1
- Download the Repository: Clone the StickStick repository using the following command:
- Create a Conda Environment: Set up your Conda environment to manage dependencies:
- Install Required Packages: Use pip to install necessary packages:
- Compile NDArray Backends: Compile using the following command:
- Run Tests: Test your installation either in the terminal or Jupyter Notebook:
git clone https://github.com/Sunt-ing/stick
Note: The repository contains multiple datasets (~205MB), so the download may take some time.
conda create --name dlsys python=3.9
Activate the environment:
conda activate dlsys
pip3 install numpy typing pybind11
pip3 install numdifftools pytest torch
make
pytest
Or in Jupyter Notebook:
!python3 -m pytest
Troubleshooting Tips
If you encounter any issues while running StickStick, consider the following troubleshooting tips:
- Ensure you have all dependencies properly installed within your Conda environment.
- Check for any typos in the commands, especially URLs.
- If you face memory allocation errors, try adjusting the batch size in your configurations.
- Run
conda infoto confirm your environment is activated.
For more insights, updates, or to collaborate on AI development projects, stay connected with fxis.ai.
Conclusion
To help you better understand how StickStick works, you can think of it as a beautifully intricate factory. Just like in a factory, various workers (operators), machines (optimizers), and assembly lines (models) come together to produce a final product (your deep learning model). Each part must function in harmony, ensuring smooth operation and high output quality.
At fxis.ai, we believe that such advancements are crucial for the future of AI, as they enable more comprehensive and effective solutions. Our team is continually exploring new methodologies to push the envelope in artificial intelligence, ensuring that our clients benefit from the latest technological innovations.

