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 envsource ./env/bin/activatepip 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)
| File | Size | Uploaded | |
|---|---|---|---|
| doe2vec-0.8.0.tar.gz | 27.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|