Biogeme 3.3.0
In this major release, arithmetic expressions and their derivatives are no longer evaluated using cythonbiogeme.
Instead, Biogeme now relies on JAX, a high-performance numerical computing library for Python.
This transition required substantial changes to the underlying codebase. A large portion had to be re-implemented from scratch.
Although the release has undergone extensive testing, some issues may still persist.
If you encounter any problems, please report them on the user group.
To the extent possible, the user interface, namely the syntax for model specification, remains consistent with previous versions.
As a result, we anticipate only minor adjustments will be needed in existing code. However, some updates may be necessary.
The impact on computation time is substantial. Preliminary tests on the Swissmetro dataset show the following improvements:
| Model | Computation | Speedup (3.3.0 vs 3.2.14) |
|---|---|---|
| Logit | Function only | 60.0× |
| Logit | Function + Gradient | 164.8× |
| Logit | Function + Gradient + Hessian | 54.7× |
| CNL | Function only | 120.0× |
| CNL | Function + Gradient | 42.7× |
| CNL | Function + Gradient + Hessian | 2.7× |
| Mixtures_100 | Function only | 29.0× |
| Mixtures_100 | Function + Gradient | 89.2× |
| Mixtures_100 | Function + Gradient + Hessian | 13.2× |