Theano
Optimizing compiler for evaluating mathematical expressions on CPUs and GPUs.
What it is and what it does
Theano is a compiler for mathematical expressions that translates high-level symbolic descriptions into optimized CPU or GPU code. It combines a NumPy-like interface with automatic differentiation and dynamic C code generation, historically used for large-scale scientific computing and machine learning research since 2007.
The package is now abandoned and has received no updates since July 2020. While it was groundbreaking for its time, the deep learning ecosystem has moved toward actively maintained alternatives. Installing Theano today carries significant risk: compilation may fail on modern systems, GPU support may not work with current hardware drivers, and NumPy compatibility is uncertain. It should only be considered for maintaining legacy codebases, not for new projects.
Use it for:
- Maintaining or running legacy research code or academic projects built on Theano before 2020
- Understanding historical approaches to symbolic differentiation and GPU-accelerated computing in machine learning
- Educational exploration of how mathematical expression compilers work, using classroom examples from that era
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Theano is a Python library for defining, optimizing, and evaluating mathematical expressions on CPUs and GPUs, with symbolic differentiation and tight NumPy integration.
No. Theano is abandoned (last release July 2020, 2209 days ago) with no maintenance. High install friction, uncertain NumPy compatibility, and no active support make it unsuitable for new projects. Install only if required to run existing legacy code, and expect significant friction on modern systems.
Install
theano on PyPI
pip
pip install theanouv
uv add theanopoetry
poetry add theanoInstalling Theano
Before you install
High install friction due to compilation requirements and system dependencies. The package is abandoned as of 2020 with no active maintenance, making it unsuitable for new projects despite its historical significance.
License in practice
BSD permissive license allows commercial and private use with minimal restrictions, but the abandoned status means no ongoing legal or security updates.
Quickstart
import theano
import theano.tensor as T
x = T.dscalar('x')
y = T.sin(x)
f = theano.function([x], y)
Requires C compiler, BLAS library, and NumPy. GPU support requires CUDA/cuDNN. No active maintenance since 2020.
Verify before relying
- Current compatibility with modern Python versions beyond 3.8 and modern NumPy releases
- Whether GPU support (CUDA/cuDNN) still functions with current hardware and driver versions
- Availability and stability of system-level compilation dependencies on modern systems
Package facts
| License | BSD (permissive) |
| Python support | not specified |
| Install friction | high — source build required |
| Runtime dependencies | none |
| Maintenance | abandoned — 2,209 days since the last release |
| First released | |
| Downloads | 168,498/month — #10,445 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: Theano-1.0.5.tar.gz
Keywords: theano, math, numerical, symbolic, blas, numpy, gpu, autodiff, differentiation
Tags
More Mathematics packages
NetworkX provides data structures and…
permissive · top 1,000 on PyPI
kiwisolverkiwisolver is a Python binding to a fast C++…
permissive · top 1,000 on PyPI
sympySymPy is a Python library for symbolic…
permissive · top 1,000 on PyPI
contourpyContourPy calculates contours of 2D…
permissive · top 1,000 on PyPI
torchPyTorch provides GPU-accelerated tensor…
permissive · top 1,000 on PyPI
onnxruntimeonnxruntime loads and executes Open Neural…
permissive · top 1,000 on PyPI
Theano-PyMCTheano-PyMC is an optimizing compiler for…
permissive · top 15,000 on PyPI
pytensorPyTensor is a Python library for defining,…
permissive · top 5,000 on PyPI
casadiCasADi is a framework for algorithmic…
copyleft · top 5,000 on PyPI
numexprNumExpr evaluates numerical expressions on…
permissive · top 5,000 on PyPI
audmathaudmath provides mathematical functions…
permissive · top 15,000 on PyPI
nvidia-cublasProvides NVIDIA CUBLAS native runtime libraries…
unclear · top 1,000 on PyPI
mklIntel oneAPI Math Kernel Library provides…
unclear · top 15,000 on PyPI
symenginePython wrappers for SymEngine, a fast C++…
permissive · top 15,000 on PyPI
autograd-gammaProvides autograd-compatible derivatives for…
permissive · top 5,000 on PyPI