Separate environments and upgraded submission requirements#151
Separate environments and upgraded submission requirements#151
Conversation
|
@marcovirgolin put the furniture instructions down and save your baby |
|
thanks @foolnotion for the updates! |
|
Is there anything I can help with? I keep seeing SR papers that exclude PySR as one of the baseline models simply because it's not in SRBench 🙁 ... Would be great to get this all working |
i'll plan to get it merged this week. |
|
for some reason pysr is failing again @MilesCranmer |
|
My guess is that the base conda env is not fixing all the versions, and was just updated to Python 3.12, which e.g., the conda-forge version of PySR was not yet packaged for. |
| @@ -51,137 +37,161 @@ jobs: | |||
| activate-environment: srbench | |||
| use-mamba: true | |||
There was a problem hiding this comment.
| use-mamba: true | |
| use-mamba: true | |
| python-version: 3.11 |
Looks like the Python version was not set here, so recently updated to 3.12 which will break a bunch of packages that haven't yet released their 3.12 versions (PyTorch usually takes a while to do so, for example).
| miniforge-variant: Mambaforge | ||
| miniforge-version: latest | ||
| activate-environment: srbench | ||
| use-mamba: true |
There was a problem hiding this comment.
| use-mamba: true | |
| use-mamba: true | |
| python-version: 3.11 |
Co-authored-by: Miles Cranmer <miles.cranmer@gmail.com>
DAGSearch: multiprocessing
Support for GP-GOMEA
Separate environments and upgraded submission requirements
This PR introduces separate environments for each method in SRBench, much like what was done in the 2022 competition. This wil l make it much easier to test and maintain new methods as the project evolves.
Method submission are now structured to follow the competition 2022 format, which includes requiring methods to output sympy compatible models.
Methods are contained within folders in the
algorithmsdirectory (e.g.,algorithms/feat). This folder should contain:metadata.yml(required): A file describing your submission, following the descriptions in [submission/feat-example/metadata.yml][metadata].regressor.py(required): a Python file that defines your method, named appropriately. See [submission/feat-example/regressor.py][regressor] for complete documentation.It should contain:
est: a sklearn-compatibleRegressorobject.model(est, X=None): a function that returns a sympy-compatible string specifying the final model. It can optionally take the training data as an input argument. See guidance below.eval_kwargs(optional): a dictionary that can specify method-specific arguments toevaluate_model.py.LICENSE(optional) A license fileenvironment.yml(optional): a conda environment file that specifies dependencies for your submission.It will be used to update the baseline environment (
environment.ymlin the root directory).To the extent possible, conda should be used to specify the dependencies you need.
If your method is part of conda, great! You can just put that in here and leave
install.shblank.requirements.txt(option): a pypi requirements file. The script will runpip install -r requirements.txtif this file is found, before proceeding.install.sh(optional): a bash script that installs your method.**Note: scripts should not require sudo permissions. The library and include paths should be directed to conda environment; the environmental variable
$CONDA_PREFIXspecifies the path to the environment.install.sh.TODO
Algorithm status
If you're tagged below, please take a look and see if you can help get your algorithm to install and test correctly. Thank you!