Neural Pipeline Search helps deep learning experts find the best neural pipeline.
Project description
Neural Pipeline Search (NePS)
NePS helps deep learning experts to optimize the hyperparameters and/or architecture of their deep learning pipeline with:
- Hyperparameter Optimization (HPO) (example)
- Neural Architecture Search (NAS) (example, paper)
- Joint Architecture and Hyperparameter Search (JAHS) (example, paper)
For efficiency and convenience NePS allows you to
- Add your intuition as priors for the search (example HPO, example JAHS, paper)
- Utilize low fidelity (e.g., low epoch) evaluations to focus on promising configurations (example, paper)
- Trivially parallelize across machines (example, documentation)
Or all of the above for maximum efficiency!
Note
As indicated with the v0.x.x
version number, NePS is early stage code and APIs might change in the future.
Documentation
Please have a look at our documentation and examples.
Installation
Using pip
pip install neural-pipeline-search
Usage
Using neps
always follows the same pattern:
- Define a
run_pipeline
function that evaluates architectures/hyperparameters for your problem - Define a search space
pipeline_space
of architectures/hyperparameters - Call
neps.run
to optimizerun_pipeline
overpipeline_space
In code, the usage pattern can look like this:
import neps
import logging
# 1. Define a function that accepts hyperparameters and computes the validation error
def run_pipeline(hyperparameter_a: float, hyperparameter_b: int):
validation_error = -hyperparameter_a * hyperparameter_b
return validation_error
# 2. Define a search space of hyperparameters; use the same names as in run_pipeline
pipeline_space = dict(
hyperparameter_a=neps.FloatParameter(lower=0, upper=1),
hyperparameter_b=neps.IntegerParameter(lower=1, upper=100),
)
# 3. Call neps.run to optimize run_pipeline over pipeline_space
logging.basicConfig(level=logging.INFO)
neps.run(
run_pipeline=run_pipeline,
pipeline_space=pipeline_space,
root_directory="usage_example",
max_evaluations_total=5,
)
For more details and features please have a look at our documentation and examples.
Analysing runs
See our documentation on analysing runs.
Alternatives
NePS does not cover your use-case? Have a look at some alternatives.
Contributing
Please see the documentation for contributors.
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
Hashes for neural_pipeline_search-0.8.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | ca81f104d21df41a1f4a9dbefae50ef19eb3127c83c9012ba615fd5d44c93694 |
|
MD5 | 2e7cc4dedf149be318d63de0d334af2c |
|
BLAKE2b-256 | 68de951e86c34feafb9cedc7edd64d27d6e93063feb80eb84e8267e35b9f46e6 |
Hashes for neural_pipeline_search-0.8.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0da760fd8aa67791d9dd26323a047f3f24175ae5fc2426ce4bd4edbaf5f4e5ef |
|
MD5 | a7b971a92c7a4a14ca6d4124e310b80e |
|
BLAKE2b-256 | b8ceecfc3d888c2dcfbbc4c66cd138636ed4efc17a3c2b2ac32448a04d24454d |