Skip to content

Commit

Permalink
Merge branch 'development' into feature/wandb_example
Browse files Browse the repository at this point in the history
  • Loading branch information
helegraf committed Jul 30, 2024
2 parents 48a3366 + 7058b45 commit f273b4f
Show file tree
Hide file tree
Showing 93 changed files with 1,242 additions and 525 deletions.
3 changes: 3 additions & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# These are supported funding model platforms

github: automl
30 changes: 0 additions & 30 deletions .github/stale.yml

This file was deleted.

2 changes: 1 addition & 1 deletion .github/workflows/citation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out a copy of the repository
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Check whether the citation metadata from CITATION.cff is valid
uses: citation-file-format/cffconvert-github-action@2.0.0
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/dist.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,10 @@ jobs:

steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Setup Python
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: "3.10"

Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Setup Python
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: "3.10"

Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/pre-commit-update.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,17 +11,17 @@ jobs:
auto-update:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- uses: actions/setup-python@v4
- uses: actions/setup-python@v5

- uses: browniebroke/pre-commit-autoupdate-action@main

- name: Run updated pre-commit
run: |
pre-commit run --all-files
- uses: peter-evans/create-pull-request@v5
- uses: peter-evans/create-pull-request@v6
with:
token: ${{ secrets.GITHUB_TOKEN }}
branch: update/pre-commit-hooks
Expand Down
5 changes: 3 additions & 2 deletions .github/workflows/pre-commit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,19 +27,20 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
submodules: recursive

- name: Setup Python 3.10
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: "3.10"

- name: Install pre-commit
run: |
pip install pre-commit
pre-commit install
pip install pylint
- name: Run pre-commit
run: |
Expand Down
12 changes: 6 additions & 6 deletions .github/workflows/pytest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,10 +54,10 @@ jobs:

steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Setup Python
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}

Expand Down Expand Up @@ -108,10 +108,10 @@ jobs:

steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Conda install
uses: conda-incubator/setup-miniconda@v2
uses: conda-incubator/setup-miniconda@v3
with:
auto-update-conda: true
python-version: ${{ matrix.python-version }}
Expand Down Expand Up @@ -148,10 +148,10 @@ jobs:

steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Setup Python
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}

Expand Down
46 changes: 46 additions & 0 deletions .github/workflows/recent_reminder.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: Recent-Reminder

on:
schedule:
- cron: '00 13 * * 1'
workflow_dispatch:

jobs:
stale-reminder:
runs-on: ubuntu-latest
steps:
- name: Get cutoff dates
id: date
run: |
echo "RECENT_ISSUE_CUTOFF_DATE=$(date -d '-7 days' '+%Y-%m-%d')" >> $GITHUB_ENV
- name: Get list of issues that have had interactions in the last week
id: recent
uses: lee-dohm/select-matching-issues@v1
with:
format: list
path: "recent_issues.md"
token: ${{ github.token }}
query: >-
is:issue
is:open
updated:>=${{ env.RECENT_ISSUE_CUTOFF_DATE }}
sort:updated-asc
- name: Combine issues into mail content
id: combine
run: |
echo "## Issues that have had interaction in the last 7 days <br />" >> mail.html
echo "$(<recent_issues.md) <br />" >> mail.html
- name: Send mail
id: mail
uses: dawidd6/action-send-mail@v3
with:
server_address: ${{secrets.MAIL_SERVER_ADDRESS}}
server_port: ${{secrets.MAIL_SERVER_PORT}}
secure: true
username: ${{secrets.MAIL_USERNAME}}
password: ${{secrets.MAIL_PASSWORD}}
subject: '[Current SMAC3 Issues] Issues that have been interacted with since ${{ env.RECENT_ISSUE_CUTOFF_DATE }}'
to: ${{secrets.MAIL_TARGET}}
from: SMAC3 Stale-Bot <${{secrets.MAIL_ADDRESS}}>
html_body: file://mail.html
convert_markdown: true
77 changes: 0 additions & 77 deletions .github/workflows/stale_reminder.yml

This file was deleted.

13 changes: 13 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -43,3 +43,16 @@ repos:
name: flake8 smac
files: smac
exclude: "scripts|tests"

- repo: local
hooks:
- id: pylint
name: pylint
entry: pylint
language: system
types: [python]
args:
[
"-rn", # Only display messages
"-sn", # Don't display the score
]
45 changes: 45 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,52 @@
# 2.2.0

## Features
- Add example to specify total budget (fidelity units) instead of n_trials for multi-fidelity/Hyperband (#1121)

## Dependencies
- Update numpy NaN (#1122) and restrict numpy version
- Upgrade to ConfigSpace 1.x.x (#1124)

# 2.1.0

## Improvements
- Change the surrogate model to be retrained after every iteration by default in the case of blackbox optimization
(#1106).
- Integrate `LocalAndSortedPriorRandomSearch` functionality into `LocalAndSortedRandomSearch` (#1106).
- Change the way the `LocalAndSortedRandomSearch` works such that the incumbent always is a starting point and that
random configurations are sampled as the basis of the local search, not in addition (#1106).

## Bugfixes
- Fix path for dask scheduler file (#1055).
- Add OrdinalHyperparameter for random forest imputer (#1065).
- Don't use mutable default argument (#1067).
- Propagate the Scenario random seed to `get_random_design` (#1066).
- Configurations that fail to become incumbents will be added to the rejected lists (#1069).
- SMAC RandomForest doesn't crash when `np.integer` used, i.e. as generated from a `np.random.RandomState` (#1084).
- Fix the handling of n_points/ challengers in the acquisition maximizers, such that this number now functions as the
number of points that are sampled from the acquisition function to find the next challengers. Now also doesn't
restrict the config selector to n_retrain many points for finding the max, and instead uses the defaults that are
defined via facades/ scenarios (#1106).

## Misc
- ci: Update action version (#1072).

## Minor
- When a custom dask client is provided, emit the warning that the `n_workers` parameter is ignored only if it deviates from its default value, `1` ([#1071](https://github.com/automl/SMAC3/pull/1071)).

# 2.0.2

## Improvements
- Add an error when we get an empty dict data_to_scatter so that we can avoid an internal error caused in Dask precautiously.
- Add experimental instruction for installing SMAC in Windows via a WSL.
- More detailed documentation regarding continuing runs.
- Add a new example that demonstrates the use of intensification to speed up cross-validation for machine learning.

## Bugfixes
- Fix bug in the incumbent selection in the case that multi-fidelity is combined with multi-objective (#1019).
- Fix callback order (#1040).
- Handle configspace as dictionary in mlp and parego example.
- Adapt sgd loss to newest scikit-learn version.

## Features
- Log to WandB (#1037)
Expand Down
2 changes: 1 addition & 1 deletion CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ date-released: "2016-08-17"
url: "https://automl.github.io/SMAC3/master/index.html"
repository-code: "https://github.com/automl/SMAC3"

version: "2.0.1"
version: "2.2.0"

type: "software"
keywords:
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ SHELL := /bin/bash

NAME := SMAC3
PACKAGE_NAME := smac
VERSION := 2.0.1
VERSION := 2.2.0

DIR := "${CURDIR}"
SOURCE_DIR := ${PACKAGE_NAME}
Expand Down
4 changes: 3 additions & 1 deletion benchmark/src/benchmark.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@
from collections import defaultdict
from pathlib import Path

from smac.utils.numpyencoder import NumpyEncoder

import pandas as pd
from src.tasks import TASKS # noqa: E402
from src.utils.exceptions import NotSupportedError # noqa: E402
Expand Down Expand Up @@ -79,7 +81,7 @@ def _save_data(self) -> None:
"""Saves the internal data to the file."""
print("Saving data...")
with open(str(RAW_FILENAME), "w") as f:
json.dump(self._data, f, indent=4)
json.dump(self._data, f, indent=4, cls=NumpyEncoder)

def _fill_keys(self) -> None:
"""Fill data with keys based on computer name, tasks, and selected version."""
Expand Down
2 changes: 1 addition & 1 deletion benchmark/src/models/ac_branin.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ def configspace(self) -> ConfigurationSpace:
x2 = Float("x2", (0, 15), default=7.5)

# Add hyperparameters and conditions to our configspace
cs.add_hyperparameters([x2])
cs.add([x2])

return cs

Expand Down
Loading

0 comments on commit f273b4f

Please sign in to comment.