Python Libraries for Deep Learning
A quick intro to the Python ecosystem we use for deep learning research and development. Below are the libraries most commonly used in our group projects, along with some additional tools worth knowing.
π§° Core Libraries (Used in Most Projects)
NumPy
- Core for array computing, vectorization, indexing, and basic linear algebra.
- Foundation for most ML, AI, and data science libraries.
PyTorch & Torchvision
- PyTorch is our primary deep learning framework.
- Torchvision provides datasets, transforms, and pre-trained models.
- Also check out PyTorch Lightning β a lightweight wrapper for cleaner model code.
Torchmetrics
- Standardized metrics for model evaluation, works well with PyTorch Lightning.
Matplotlib
- Core library for plotting and visualizations.
Seaborn
- Statistical data visualization on top of Matplotlib. Good for grouped bar plots, heatmaps, etc.
Pandas
- Great for handling table-like data (DataFrames).
- Handy
.to_latex()export and HDF5 support. - Basic plotting support via Matplotlib.
PIL (Pillow)
- Basic image loading and processing.
Hydra
- Flexible configuration management system β useful for organizing experiments.
Weights & Biases
- Experiment tracking, visualization, and collaboration.
- Free student/academic plan available.
π Other Useful Libraries
These arenβt used all the time, but are great to have in your toolbox:
OpenCV
- Rich set of tools for computer vision and image processing.
Timm
- Huge collection of pretrained models, modern architectures, schedulers, and optimizers.
OpenMMLab
- Modular frameworks for tasks like segmentation, detection, pose estimation, etc.
- Easy to use for training with minimal setup.
Hugging Face
- Central platform for NLP and vision models, datasets, and tools.
- Hub: for uploading and sharing models (we may start using this for private model repos).
SciPy
- Scientific computing: signal processing, numerical integration, optimization, etc.
Plotly
- Interactive, browser-based plots (not built on Matplotlib).
- Great for working with geo or temporal data.
Jupyter Notebooks
- Interactive Python environment.
- Supports widgets (e.g.,
ipywidgets) β TODO: Add example notebook.
Albumentations
- Fast and flexible image augmentation library.
Kornia
- Differentiable computer vision and GPU-accelerated data augmentations.
π‘ Feel free to suggest other libraries you find useful β this list evolves with our projects.