Getting Help
Where to find support and how to report issues with Gradient-Free-Optimizers.
Before Asking for Help
Check These Resources First
Documentation
User Guide - Core concepts and features
Examples - Working code examples
Frequently Asked Questions - Common questions
Troubleshooting - Other troubleshooting pages
Existing Issues
Search GitHub Issues to see if your problem has been reported.
Search Data
Inspect
opt.search_datato understand what the optimizer is doing:opt.search(objective, n_iter=100) print(opt.search_data.head(20)) # First 20 evaluations print(opt.search_data.describe()) # Statistical summary
Create a Minimal Example
Before reporting an issue, create the smallest code that reproduces the problem:
import numpy as np
from gradient_free_optimizers import HillClimbingOptimizer
# Minimal objective function
def objective(params):
return -(params["x"]**2)
# Minimal search space
search_space = {"x": np.linspace(-5, 5, 20)}
# The issue
opt = HillClimbingOptimizer(search_space)
opt.search(objective, n_iter=10) # Fails here
Remove unnecessary code, custom data, and complex ML models. Use simple synthetic functions when possible.
Getting Help
GitHub Issues
Best for: Bug reports, feature requests, installation problems
Go to GitHub Issues
Click “New Issue”
Choose the appropriate template:
Bug Report: Something isn’t working
Feature Request: Suggest an enhancement
Question: Ask about usage
Fill in the template with details
What to include:
### Environment
- GFO version: (run `gradient_free_optimizers.__version__`)
- Python version: (run `python --version`)
- NumPy version: (run `import numpy; print(numpy.__version__)`)
- Operating System: (e.g., Ubuntu 22.04, Windows 11, macOS 13)
### Description
Clear description of the problem or request.
### Minimal Code Example
```python
# Smallest code that shows the problem
import gradient_free_optimizers
# ...
```
### Expected Behavior
What you expected to happen.
### Actual Behavior
What actually happened (include full error traceback).
### Additional Context
Any other relevant information.
GitHub Discussions
Best for: General questions, design decisions, ideas
Go to GitHub Discussions
Click “New Discussion”
Choose a category:
Q&A: Ask how to do something
Ideas: Suggest improvements
Show and Tell: Share your GFO projects
General: Other discussions
For: Private issues, security concerns, sensitive topics
Email: simon.blanke@yahoo.com
Include “GFO” in the subject line
Reporting Bugs
Good Bug Report Checklist
A good bug report includes:
✓ GFO version and environment (Python, NumPy, OS)
✓ Minimal code example (< 20 lines if possible)
✓ Full error traceback (the complete error message)
✓ Expected vs. actual behavior (what should happen vs. what does happen)
✓ Steps to reproduce (how to trigger the bug)
Example Bug Report
Good (all info included):
## Bug: KeyError when using constraints
**Environment:**
- GFO: 1.5.0
- Python: 3.11.2
- NumPy: 1.24.3
- OS: Ubuntu 22.04
**Minimal Example:**
```python
import numpy as np
from gradient_free_optimizers import HillClimbingOptimizer
def objective(params):
return -params["x"]**2
def constraint(params):
return params["x"] > 0
search_space = {"x": np.linspace(-5, 5, 20)}
opt = HillClimbingOptimizer(search_space, constraints=[constraint])
opt.search(objective, n_iter=10)
```
**Error:**
```
KeyError: 'x'
Traceback (most recent call last):
File "test.py", line 12, in <module>
opt.search(objective, n_iter=10)
File ".../search.py", line 45, in search
valid = constraint(params)
File "test.py", line 6, in constraint
return params["x"] > 0
KeyError: 'x'
```
**Expected:** Should optimize respecting the constraint.
**Actual:** KeyError when evaluating constraint.
Bad (missing info):
## It doesn't work
I tried using constraints but got an error. How do I fix this?
Feature Requests
Suggesting New Features
When requesting a feature:
Check if it exists: Review documentation and existing issues
Explain the use case: Why is this feature needed?
Describe the API: How should it work?
Consider alternatives: Have you tried workarounds?
Example Feature Request:
## Feature: Support for conditional parameters
**Use Case:**
When optimizing neural networks, some parameters only apply to
certain architectures. For example, `dropout_rate` only matters
when `use_dropout=True`.
**Proposed API:**
```python
search_space = {
"use_dropout": np.array([True, False]),
"dropout_rate": {
"values": np.linspace(0, 0.5, 20),
"condition": lambda p: p["use_dropout"] == True
}
}
```
**Alternatives Tried:**
Currently using constraints, but this is hacky:
```python
def constraint(params):
if not params["use_dropout"]:
return params["dropout_rate"] == 0.0
return True
```
**Benefit:**
Cleaner API and potentially more efficient optimization by
not evaluating irrelevant parameters.
Contributing
Want to fix a bug or add a feature yourself?
Read the Contributing Guide: CONTRIBUTING.md
Set up development environment:
git clone https://github.com/SimonBlanke/Gradient-Free-Optimizers.git cd Gradient-Free-Optimizers pip install -e ".[test,docs]" pytest tests/ # Run tests
Make your changes in a new branch
Add tests for new features or bug fixes
Submit a Pull Request with a clear description
See Contributing for detailed guidelines.
Community Guidelines
When asking for help or reporting issues:
Do:
Be respectful and patient
Provide complete information
Follow up if you find a solution
Help others when you can
Don’t:
Demand immediate responses
Post duplicate issues
Share private/proprietary code without permission
Post links to external sites without context
See Code of Conduct for full community guidelines.
Response Time
Issues: Usually within 1-3 days
Pull Requests: Usually within 1 week
Discussions: Varies, community-driven
GFO is maintained primarily by one person, so please be patient.
Where is the documentation for older versions?
Documentation for previous versions of GFO is available at: Legacy Documentation (v1.x)
Commercial Support
For commercial support, consulting, or custom development:
Email: simon.blanke@yahoo.com
Include “Commercial Support” in subject line
Describe your needs and timeline
Options include:
Custom algorithm development
Performance optimization
Integration with your systems
Training and workshops
Priority bug fixes
Thank You!
Thank you for using Gradient-Free-Optimizers! Your feedback and contributions help make the library better for everyone.
Note
The maintainers and contributors work on GFO in their spare time. We appreciate your patience and understanding!