Installation
Gradient-Free-Optimizers can be installed via pip and supports Python 3.10+.
Installing Gradient-Free-Optimizers
Basic Installation
Install GFO from PyPI using pip:
pip install gradient-free-optimizers
This installs GFO with its core dependencies (NumPy, SciPy, and pandas), which is sufficient for all core optimization algorithms.
Installation with Extras
For additional functionality, you can install optional extras:
pip install gradient-free-optimizers[progress]
Adds tqdm for progress bars during optimization.
pip install gradient-free-optimizers[sklearn]
Adds scikit-learn for surrogate models used in Bayesian Optimization,
TPE, and Forest Optimizer.
pip install gradient-free-optimizers[full]
Installs all optional dependencies (tqdm + scikit-learn).
Development Installation
To install GFO for development (from source):
# Clone the repository
git clone https://github.com/SimonBlanke/Gradient-Free-Optimizers.git
cd Gradient-Free-Optimizers
# Install in development mode with test dependencies
pip install -e ".[test]"
# Or install with all development dependencies
pip install -e ".[test,docs]"
# Run tests to verify installation
pytest tests/
Dependencies
Core Dependencies
Gradient-Free-Optimizers requires the following packages (automatically installed):
Package |
Purpose |
|---|---|
|
Numerical operations, array handling, and search space definition |
|
Scientific computing and statistical functions |
|
Search data storage and manipulation |
Optional Dependencies
Package |
Purpose |
|---|---|
|
Progress bars during optimization |
|
Surrogate models for SMBO algorithms (Bayesian, TPE, Forest) |
Verifying Installation
After installation, verify that GFO works correctly:
import gradient_free_optimizers
import numpy as np
# Check version
print(f"GFO version: {gradient_free_optimizers.__version__}")
# Run a quick optimization
from gradient_free_optimizers import HillClimbingOptimizer
def sphere(params):
return -(params["x"]**2 + params["y"]**2)
search_space = {
"x": np.linspace(-5, 5, 50),
"y": np.linspace(-5, 5, 50),
}
opt = HillClimbingOptimizer(search_space)
opt.search(sphere, n_iter=100)
print(f"Best score: {opt.best_score}")
print(f"Best params: {opt.best_para}")
Expected output:
GFO version: X.X.X
Best score: -0.04 (approximately)
Best params: {'x': 0.2, 'y': 0.0} (approximately)
Troubleshooting Installation
Python Version Issues
GFO requires Python 3.10 or newer. Check your Python version:
python --version
If you have multiple Python versions, use:
python3.10 -m pip install gradient-free-optimizers
NumPy Compatibility
GFO supports both NumPy 1.x and 2.x. If you encounter issues:
# Install with specific NumPy version
pip install "numpy<2.0" gradient-free-optimizers # For NumPy 1.x
pip install "numpy>=2.0" gradient-free-optimizers # For NumPy 2.x
Dependency Conflicts
If you encounter dependency conflicts:
# Create a fresh virtual environment
python -m venv gfo_env
source gfo_env/bin/activate # On Windows: gfo_env\Scripts\activate
pip install gradient-free-optimizers
Permission Errors
If you get permission errors during installation:
# Install for current user only (recommended)
pip install --user gradient-free-optimizers
# Or use a virtual environment (better practice)
python -m venv myenv
source myenv/bin/activate
pip install gradient-free-optimizers
Missing SMBO Dependencies
If you try to use Bayesian Optimization or other SMBO algorithms without scikit-learn installed, you’ll see an import error. Install with:
pip install gradient-free-optimizers[sklearn]
Installation in Special Environments
Jupyter Notebooks
Install directly in a notebook cell:
!pip install gradient-free-optimizers
Or with extras:
!pip install gradient-free-optimizers[full]
Google Colab
GFO works out of the box in Google Colab:
!pip install gradient-free-optimizers
import gradient_free_optimizers
Docker
Add to your Dockerfile:
FROM python:3.11-slim
RUN pip install gradient-free-optimizers[full]
Conda Environments
While GFO is not on conda-forge yet, you can install via pip in a conda environment:
conda create -n gfo python=3.11
conda activate gfo
pip install gradient-free-optimizers
Using Older Versions
If you need to use an older version of GFO, you can install a specific version:
pip install gradient-free-optimizers==1.5.0
Documentation for older versions is available at: Legacy Documentation (v1.x)
Next Steps
Quick Start: Head to get_started for your first optimization
User Guide: Learn about Search Spaces and Optimization Algorithms
Examples: See practical usage in Examples