# Benchmarx

Benchmarx provides a convenient interface for benchmarking optimization 
methods. This package provides a simple implementation of benchmarking 
functions for optimization tasks and provides the ability to use standard 
methods from jaxopt as well as to implement your own method. The results 
of the experiments are saved in all details in a json file, which can be 
used to visualize the data in graphs. Refer to the examples for details.

## Installation

To install the latest release of Benchmarx, use the following command:

```bash
$ pip install benchmarx
```

Alternatively, it can be installed from sources with the following command:

```bash
$ python setup.py install
```

## Examples

Refer to the examples provided in the repository for details on how to use this package.

- Gradient Descent on Quadratic problem [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/drive/13bX2ZeOASEEKBWSbaTeY0Sm5g3ImaoLk?usp=sharing)

- Gradient Descent with custom Line Search [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/drive/1me6sE5W7SML6Ww-pBgpjmlJBKz8x3qUv?usp=sharing)

- Your own custom method [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/drive/1DCNgjb3_9ITQy93dZg0fUbV2BRB_MuLL?usp=sharing)

- Stochastic Gradient Descent on Quadratic Problem [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/drive/1bD7eM9NNZqEvMjlTl6OKvN_vcmtHSMAd?usp=sharing)

- Quadratic Problem based on real data [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/drive/1k3-ul8o9_wdsNko51t0-UNpHOwTemJ6o?usp=sharing)

- Neural Network training [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/drive/1W2vP5NRCnv6aFVgSm9pzmWZ7l0i3SCmm?usp=sharing)

## Contribution

Contributions are welcome! If you have any suggestions or issues, feel free to open an issue or submit a pull request.