Skip to main content

DoE2Vec

DoE2Vec is a self-supervised approach to learn exploratory landscape analysis features from design of experiments. The model can be used for downstream meta-learning tasks such as learninig which optimizer works best on a given optimization landscape. Or to classify optimization landscapes in function groups.

The approach uses randomly generated functions and can also be used to find a "cheap" reference function given a DOE. The model uses Sobol sequences as the default sampling method. A custom sampling method can also be used. Both the samples and the landscape should be scaled between 0 and 1.

Install package via pip

`pip install doe2vec`

Afterwards you can use the package via:

from doe2vec import doe_model

Load a model from the HuggingFace Hub

Available models can be viewed here: https://huggingface.co/BasStein A model name is build up like BasStein/doe2vec-d2-m8-ls16-VAE-kl0.001
Where d is the number of dimensions, 8 the number (2^8) of samples, 16 the latent size, VAE the model type (variational autoencoder) and 0.001 the KL loss weight.

Example code of loading a huggingface model

obj = doe_model(
            2,
            8,
            n= 50000,
            latent_dim=16,
            kl_weight=0.001,
            use_mlflow=False,
            model_type="VAE"
        )
obj.load_from_huggingface()
#test the model
obj.plot_label_clusters_bbob()

How to Setup your Environment for Development

  • python3.8 -m venv env
  • source ./env/bin/activate
  • pip install -r requirements.txt

Generate the Data Set

To generate the artificial function dataset for a given dimensionality and sample size run the following code

from doe2vec inport doe_model

obj = doe_model(d, m, n=50000, latent_dim=latent_dim)
if not obj.load():
    obj.generateData()
    obj.compile()
    obj.fit(100)
    obj.save()

Where d is the number of dimensions, m the number of samples (2^m) per DOE, n the number of functions generated and latent_dim the size of the output encoding vector.

Once a data set and encoder has been trained it can be loaded with the load() function.

Metadata

Release files for doe2vec 0.8.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for doe2vec 0.8.0
File Size Uploaded
doe2vec-0.8.0.tar.gz 27.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for doe2vec 0.8.0
File Interpreter ABI Platform
doe2vec-0.8.0-py3-none-any.whl Python 3 none any Details

Total release size: 55.8 kB

Release files / doe2vec-0.8.0.tar.gz

Download URL doe2vec-0.8.0.tar.gz
Size 27.5 kB
Tags Source
SHA-256 checksum
How to use checksums
c1d84e54d00824632381b708058e6d45818e563e6a867d5b74f84fa0e7b929ce
BLAKE2b-256 checksum
How to use checksums
240fccecfc0d25c40777c59025b8737ea5999c5f6f66b98d6edc74d6b7ac0677
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.8.12

Release files / doe2vec-0.8.0-py3-none-any.whl

Download URL doe2vec-0.8.0-py3-none-any.whl
Size 28.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2e5861877cb53d19d69991453a30c7d5305bff1449204eb2353d010cf9bfe503
BLAKE2b-256 checksum
How to use checksums
6d11b901e96ac9b4f02ab6e9a2b385f3a4754e004afbc38b4d1a9d06d70097b7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.8.12

Release history Release notifications | RSS feed

This release

0.8.0 This release

2 release files

0.7.3

2 release files

0.7.2

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.3

2 release files

0.6.2

2 release files

0.6.1

2 release files

0.6.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page