EOG-HPO Client SDK: Cloud-based hyperparameter optimization
Project description
EOG-HPO Client SDK
The official Python client for the EOG-HPO Hyperparameter Optimization Cloud Service.
Installation
pip install eaheog
For visualization support:
pip install eaheog[viz]
Quick Start
from eaheog import EOGHPOClient
# Initialize client with your API endpoint
client = EOGHPOClient(base_url="https://your-api-gateway-url.amazonaws.com/prod")
# Authenticate
client.login()
# Define your objective function (runs on YOUR machine)
def train_model(config):
# Your training code here
lr = config['learning_rate']
batch_size = int(config['batch_size'])
# Train and evaluate
score = your_training_function(lr, batch_size)
return score
# Define search space
search_space = {
'learning_rate': (0.0001, 0.1),
'batch_size': (16, 256),
'dropout': (0.0, 0.5)
}
# Run optimization
best = client.optimize(
objective_function=train_model,
search_space=search_space,
n_iterations=50
)
print(f"Best config: {best['config']}")
print(f"Best score: {best['score']}")
Configuration
Method 1: Environment Variables (Recommended)
export EOGHPO_BASE_URL="https://your-api-gateway.amazonaws.com/prod"
export EOGHPO_API_KEY="your-api-key" # Optional: set after login
Method 2: Initialize with Parameters
client = EOGHPOClient(
base_url="https://your-api-gateway.amazonaws.com/prod",
api_key="your-api-key" # Optional
)
Method 3: Configuration File
The SDK automatically saves credentials to ~/.eaheog/credentials.json after login.
Features
- โ Cloud-based Bayesian Optimization - Smart hyperparameter recommendations
- ๐ฐ Cost Estimation - Know costs before running
- ๐ Live Visualization - Real-time progress tracking (with
[viz]install) - ๐ Secure Authentication - Token-based auth with local credential storage
- ๐ Session Management - Resume interrupted optimization runs
- ๐ Export Results - Save optimization history to CSV
Authentication
Sign Up
client = EOGHPOClient(base_url="https://your-api-endpoint.com")
client.signup()
Login
client.login() # Interactive login
Logout
client.logout() # Clear stored credentials
Advanced Usage
Cost Estimation
# Estimate costs before starting
estimate = client.estimate_cost(
n_iterations=100,
search_space=search_space
)
print(f"Estimated cost: ${estimate['estimated_cost']}")
Session Management
# Start a session
session_id = client.start_optimization(
search_space=search_space,
n_iterations=100
)
# Resume later
client.session_id = session_id
status = client.get_session_status()
Export Results
# Export optimization history
client.export_results("my_results.csv")
Web Dashboard
# View progress in browser
client.get_web_dashboard_url()
Requirements
- Python >= 3.7
- requests >= 2.25.0
Optional (for visualization):
- pandas >= 1.3.0
- numpy >= 1.21.0
- matplotlib >= 3.4.0
- ipython >= 7.0.0
API Endpoints
The client expects your AWS API Gateway to expose these endpoints:
POST /auth/signup- User registrationPOST /auth/login- AuthenticationPOST /estimate- Cost estimationPOST /start- Start optimization sessionPOST /job/{session_id}/next- Get next configurationPOST /job/{session_id}/result- Report resultGET /job/{session_id}/status- Get session status
Architecture
User's Machine AWS Cloud
โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโ
โ โ โ โ
โ Your Training โ โ API Gateway โ
โ Code โ โ โ
โ โ โโโโโโโโโโฌโโโโโโโโโโ
โโโโโโโโโโฌโโโโโโโโโ โ
โ โ
โ EOGHPOClient โ
โ โข Get config โผ
โ โข Train locally โโโโโโโโโโโโโโโโ
โ โข Report result โ Lambda โ
โ โ Functions โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ
โ โข auth_brokerโ
โ โข optimizer โ
โ โข payments โ
โโโโโโโโฌโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโ
โ Firestore โ
โ Database โ
โโโโโโโโโโโโโโโโ
Security
- API keys are stored locally in
~/.eaheog/credentials.jsonwith restricted permissions (600) - All API calls use HTTPS
- Bearer token authentication
- Credentials are never sent to third parties
Troubleshooting
Connection Errors
# Verify your base URL is correct
client = EOGHPOClient(base_url="https://your-api-gateway.amazonaws.com/prod")
# Test connection
try:
client.login()
except ConnectionError as e:
print(f"Cannot connect: {e}")
print("Verify your API Gateway URL is correct")
Authentication Issues
# Clear stored credentials and re-login
client.logout()
client.login()
Timeout Errors
# Increase timeout (default: 30s)
client.timeout = 60
Support
- Documentation: https://docs.eaheog.com
- Website: https://www.eaheog.com
- Email: support@eaheog.com
- Issues: https://github.com/yourusername/eaheog/issues
License
MIT License - see LICENSE file for details
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file eaheog-0.1.0.tar.gz.
File metadata
- Download URL: eaheog-0.1.0.tar.gz
- Upload date:
- Size: 11.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e229aa9c9c88588de7b85acf36b1ae554e01b32c64d71bd6338aa12d7b809161
|
|
| MD5 |
413d5c97a7b577d8ae804f635f881b42
|
|
| BLAKE2b-256 |
f222f0cfb9713a7c0188e7d50d21d6e35fccc7a5187c47913d32aceed8dd5b3a
|
File details
Details for the file eaheog-0.1.0-py3-none-any.whl.
File metadata
- Download URL: eaheog-0.1.0-py3-none-any.whl
- Upload date:
- Size: 9.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e7833ac7ce671f5e42119def844882f5bf2ad6bcf9a6512bb638dd519aa75868
|
|
| MD5 |
41a26269004fb9c2ac6304d6c5eb1e1d
|
|
| BLAKE2b-256 |
8c8029dddbbc17a4d45cdbde9ed9b53a688f74dabb605f672141b327e1635174
|