Skip to content

Commit

Permalink
changed the specification method for importing the standard optimizer.
Browse files Browse the repository at this point in the history
  • Loading branch information
aramoto99 committed Aug 22, 2022
1 parent 67a3172 commit 55fcab8
Show file tree
Hide file tree
Showing 32 changed files with 81 additions and 154 deletions.
15 changes: 2 additions & 13 deletions aiaccel/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,6 @@
from .common import module_type_master
from .common import module_type_optimizer
from .common import module_type_scheduler
from .common import pkg_name
from .common import resource_type_abci
from .common import resource_type_local
from .common import search_algorithm_grid
Expand All @@ -50,11 +49,7 @@
from .common import search_algorithm_tpe
from .common import get_module_type_from_class_name
from .common import get_file_random
from .optimizer.grid.search import GridOptimizer
from .optimizer.random.search import RandomOptimizer
from .optimizer.sobol.search import SobolOptimizer
from .optimizer.nelder_mead.search import NelderMeadOptimizer
from .optimizer.tpe.search import TpeOptimizer


__all__ = [
alive_master,
Expand Down Expand Up @@ -101,17 +96,11 @@
module_type_scheduler,
resource_type_abci,
resource_type_local,
pkg_name,
search_algorithm_grid,
search_algorithm_nelder_mead,
search_algorithm_random,
search_algorithm_sobol,
search_algorithm_tpe,
get_module_type_from_class_name,
get_file_random,
GridOptimizer,
RandomOptimizer,
SobolOptimizer,
NelderMeadOptimizer,
TpeOptimizer
get_file_random
]
12 changes: 5 additions & 7 deletions aiaccel/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,16 +56,14 @@
module_type_optimizer = 'optimizer'
module_type_scheduler = 'scheduler'

pkg_name = "aiaccel"

resource_type_local = 'local'
resource_type_abci = 'abci'

search_algorithm_grid = 'aiaccel.optimizer.grid.search.GridOptimizer'
search_algorithm_nelder_mead = 'aiaccel.optimizer.nelder_mead.search.NelderMeadOptimizer'
search_algorithm_random = 'aiaccel.optimizer.random.search.RandomOptimizer'
search_algorithm_sobol = 'aiaccel.optimizer.sobol.search.SobolOptimizer'
search_algorithm_tpe = 'aiaccel.optimizer.tpe.search.TpeOptimizer'
search_algorithm_grid = 'aiaccel.optimizer.GridOptimizer'
search_algorithm_nelder_mead = 'aiaccel.optimizer.NelderMeadOptimizer'
search_algorithm_random = 'aiaccel.optimizer.RandomOptimizer'
search_algorithm_sobol = 'aiaccel.optimizer.SobolOptimizer'
search_algorithm_tpe = 'aiaccel.optimizer.TpeOptimizer'


def get_module_type_from_class_name(class_name: str) -> str:
Expand Down
13 changes: 13 additions & 0 deletions aiaccel/optimizer/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
from .grid.search import GridOptimizer
from .random.search import RandomOptimizer
from .sobol.search import SobolOptimizer
from .nelder_mead.search import NelderMeadOptimizer
from .tpe.search import TpeOptimizer

__all__ = [
GridOptimizer,
RandomOptimizer,
SobolOptimizer,
NelderMeadOptimizer,
TpeOptimizer
]
37 changes: 9 additions & 28 deletions aiaccel/start.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,7 @@
from aiaccel.util.buffer import Buffer
from aiaccel.config import Config
from aiaccel.util.terminal import Terminal
from pathlib import Path
from importlib import import_module
from importlib.machinery import SourceFileLoader


class Arguments:
Expand Down Expand Up @@ -509,35 +507,18 @@ def __init__(self, config_path: str) -> None:
def __call__(self) -> Any:
return self.optimizer

def get_pyfile_path(self, module_name: str) -> str:
file_name = (
module_name
.replace(".", "/")
.replace("//", "../")
.replace(" ", "")
)
return f'{file_name}.{"py"}'

def import_and_getattr(self, name: str) -> Any:
if (
len(name.rsplit(".", 1)) == 1 and
name.rsplit(".", 1)[0] == name
):
# To specify an standard optimizer, specify only the class name of
# the optimizer (e.g., NelderMeadIOtimizer).
# However, when calling, the package name must be added to
# the class name. (e.g. aiaccel.NelderMeadOptimizer)
name = f'{aiaccel.pkg_name}.{name}'
""" Imports the specified Optimizer class.
module_name, attr_name = name.rsplit(".", 1)
pyfile = self.get_pyfile_path(module_name)
Args:
name(str): Optimizer class name
(e.g.) aiaccel.optimizer.NelderMeadOptimizer
if Path(pyfile).exists():
# Import external modules not included in the aiaccel package.
module = SourceFileLoader('MyOptimizer', pyfile).load_module()
else:
# It is assumed to be imported from aiaccel.optimizer.*.
module = import_module(module_name)
Returns:
Any: <Optimizer class>
"""
module_name, attr_name = name.rsplit(".", 1)
module = import_module(module_name)
return getattr(module, attr_name)


Expand Down
4 changes: 2 additions & 2 deletions docs/manual_jp.md
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,7 @@ ABCI:
**サンプル**
```yaml
optimize:
search_algorithm: "NelderMeadOptimizer"
search_algorithm: "aiaccel.optimizer.NelderMeadOptimizer"
goal: "minimize"
trial_number: 30
rand_seed: 42
Expand Down Expand Up @@ -417,7 +417,7 @@ ABCI:
job_execution_options: ""
optimize:
search_algorithm: "NelderMeadOptimizer"
search_algorithm: "aiaccel.optimizer.NelderMeadOptimizer"
goal: "minimize"
trial_number: 30
rand_seed: 42
Expand Down
10 changes: 5 additions & 5 deletions examples/benchmark/config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,11 @@ ABCI:
job_execution_options: ""

optimize:
search_algorithm: "NelderMeadOptimizer"
#search_algorithm: "RandomOptimizer"
#search_algorithm: "SobolOptimizer"
#search_algorithm: "GridOptimizer"
#search_algorithm: "TpeOptimizer"
search_algorithm: "aiaccel.optimizer.NelderMeadOptimizer"
#search_algorithm: "aiaccel.optimizer.RandomOptimizer"
#search_algorithm: "aiaccel.optimizer.SobolOptimizer"
#search_algorithm: "aiaccel.optimizer.GridOptimizer"
#search_algorithm: "aiaccel.optimizer.TpeOptimizer"
goal: "minimize"
trial_number: 30
rand_seed: 42
Expand Down
10 changes: 5 additions & 5 deletions examples/resnet50_cifar10/config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,11 @@ ABCI:
job_execution_options: ""

optimize:
search_algorithm: "NelderMeadOptimizer"
#search_algorithm: "RandomOptimizer"
#search_algorithm: "SobolOptimizer"
#search_algorithm: "GridOptimizer"
#search_algorithm: "TpeOptimizer"
search_algorithm: "aiaccel.optimizer.NelderMeadOptimizer"
#search_algorithm: "aiaccel.optimizer.RandomOptimizer"
#search_algorithm: "aiaccel.optimizer.SobolOptimizer"
#search_algorithm: "aiaccel.optimizer.GridOptimizer"
#search_algorithm: "aiaccel.optimizer.TpeOptimizer"
goal: "minimize"
trial_number: 100
rand_seed: 42
Expand Down
10 changes: 5 additions & 5 deletions examples/schwefel/config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,11 @@ ABCI:
job_execution_options: ""

optimize:
search_algorithm: "NelderMeadOptimizer"
#search_algorithm: "RandomOptimizer"
#search_algorithm: "SobolOptimizer"
#search_algorithm: "GridOptimizer"
#search_algorithm: "TpeOptimizer"
search_algorithm: "aiaccel.optimizer.NelderMeadOptimizer"
#search_algorithm: "aiaccel.optimizer.RandomOptimizer"
#search_algorithm: "aiaccel.optimizer.SobolOptimizer"
#search_algorithm: "aiaccel.optimizer.GridOptimizer"
#search_algorithm: "aiaccel.optimizer.TpeOptimizer"
goal: "minimize"
trial_number: 30
rand_seed: 42
Expand Down
10 changes: 5 additions & 5 deletions examples/sphere/config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,11 @@ ABCI:
job_execution_options: ""

optimize:
search_algorithm: "NelderMeadOptimizer"
#search_algorithm: "RandomOptimizer"
#search_algorithm: "SobolOptimizer"
#search_algorithm: "GridOptimizer"
#search_algorithm: "TpeOptimizer"
search_algorithm: "aiaccel.optimizer.NelderMeadOptimizer"
#search_algorithm: "aiaccel.optimizer.RandomOptimizer"
#search_algorithm: "aiaccel.optimizer.SobolOptimizer"
#search_algorithm: "aiaccel.optimizer.GridOptimizer"
#search_algorithm: "aiaccel.optimizer.TpeOptimizer"
goal: "minimize"
trial_number: 30
rand_seed: 42
Expand Down
10 changes: 5 additions & 5 deletions examples/styblinski-tang/config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,11 @@ ABCI:
job_execution_options: ""

optimize:
search_algorithm: "NelderMeadOptimizer"
#search_algorithm: "RandomOptimizer"
#search_algorithm: "SobolOptimizer"
#search_algorithm: "GridOptimizer"
#search_algorithm: "TpeOptimizer"
search_algorithm: "aiaccel.optimizer.NelderMeadOptimizer"
#search_algorithm: "aiaccel.optimizer.RandomOptimizer"
#search_algorithm: "aiaccel.optimizer.SobolOptimizer"
#search_algorithm: "aiaccel.optimizer.GridOptimizer"
#search_algorithm: "aiaccel.optimizer.TpeOptimizer"
goal: "minimize"
trial_number: 30
rand_seed: 42
Expand Down
10 changes: 5 additions & 5 deletions examples/wrapper_sample/config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,11 @@ ABCI:
job_execution_options: ""

optimize:
search_algorithm: "NelderMeadOptimizer"
#search_algorithm: "RandomOptimizer"
#search_algorithm: "SobolOptimizer"
#search_algorithm: "GridOptimizer"
#search_algorithm: "TpeOptimizer"
search_algorithm: "aiaccel.optimizer.NelderMeadOptimizer"
#search_algorithm: "aiaccel.optimizer.RandomOptimizer"
#search_algorithm: "aiaccel.optimizer.SobolOptimizer"
#search_algorithm: "aiaccel.optimizer.GridOptimizer"
#search_algorithm: "aiaccel.optimizer.TpeOptimizer"
goal: "minimize"
trial_number: 30
rand_seed: 42
Expand Down
2 changes: 1 addition & 1 deletion tests/blackbox_test/benchmark2/testcode.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@
"job_execution_options": ""
},
"optimize": {
"search_algorithm": "aiaccel.optimizer.nelder_mead.search.NelderMeadOptimizer",
"search_algorithm": "aiaccel.optimizer.NelderMeadOptimizer",
"goal": "minimize",
"trial_number": 5,
"rand_seed": 42,
Expand Down
2 changes: 1 addition & 1 deletion tests/test_data/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
"group": "gaa"
},
"optimize": {
"search_algorithm": "aiaccel.optimizer.nelder_mead.search.NelderMeadOptimizer",
"search_algorithm": "aiaccel.optimizer.NelderMeadOptimizer",
"goal": "minimize",
"trial_number": 10,
"parameters": [
Expand Down
2 changes: 1 addition & 1 deletion tests/test_data/config_abci.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
"group": "gaa"
},
"optimize": {
"search_algorithm": "aiaccel.optimizer.nelder_mead.search.NelderMeadOptimizer",
"search_algorithm": "aiaccel.optimizer.NelderMeadOptimizer",
"goal": "minimize",
"trial_number": 10,
"parameters": [
Expand Down
2 changes: 1 addition & 1 deletion tests/test_data/config_grid.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
"job_execution_options": ""
},
"optimize": {
"search_algorithm": "aiaccel.optimizer.grid.search.GridOptimizer",
"search_algorithm": "aiaccel.optimizer.GridOptimizer",
"goal": "minimize",
"trial_number": 10,
"rand_seed": 42,
Expand Down
2 changes: 1 addition & 1 deletion tests/test_data/config_grid_resumption.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
"job_execution_options": ""
},
"optimize": {
"search_algorithm": "aiaccel.optimizer.grid.search.GridOptimizer",
"search_algorithm": "aiaccel.optimizer.GridOptimizer",
"goal": "minimize",
"trial_number": 5,
"rand_seed": 42,
Expand Down
2 changes: 1 addition & 1 deletion tests/test_data/config_nelder-mead.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
"job_execution_options": ""
},
"optimize": {
"search_algorithm": "aiaccel.optimizer.nelder_mead.search.NelderMeadOptimizer",
"search_algorithm": "aiaccel.optimizer.NelderMeadOptimizer",
"goal": "minimize",
"trial_number": 10,
"rand_seed": 42,
Expand Down
2 changes: 1 addition & 1 deletion tests/test_data/config_nelder-mead_resumption.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
"job_execution_options": ""
},
"optimize": {
"search_algorithm": "aiaccel.optimizer.nelder_mead.search.NelderMeadOptimizer",
"search_algorithm": "aiaccel.optimizer.NelderMeadOptimizer",
"goal": "minimize",
"trial_number": 5,
"rand_seed": 42,
Expand Down
2 changes: 1 addition & 1 deletion tests/test_data/config_random.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
"job_execution_options": ""
},
"optimize": {
"search_algorithm": "aiaccel.optimizer.random.search.RandomOptimizer",
"search_algorithm": "aiaccel.optimizer.RandomOptimizer",
"goal": "minimize",
"trial_number": 10,
"rand_seed": 42,
Expand Down
2 changes: 1 addition & 1 deletion tests/test_data/config_random_resumption.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
"job_execution_options": ""
},
"optimize": {
"search_algorithm": "aiaccel.optimizer.random.search.RandomOptimizer",
"search_algorithm": "aiaccel.optimizer.RandomOptimizer",
"goal": "minimize",
"trial_number": 5,
"rand_seed": 42,
Expand Down
2 changes: 1 addition & 1 deletion tests/test_data/config_sobol.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
"job_execution_options": ""
},
"optimize": {
"search_algorithm": "aiaccel.optimizer.sobol.search.SobolOptimizer",
"search_algorithm": "aiaccel.optimizer.SobolOptimizer",
"goal": "minimize",
"trial_number": 10,
"rand_seed": 42,
Expand Down
2 changes: 1 addition & 1 deletion tests/test_data/config_sobol_resumption.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
"job_execution_options": ""
},
"optimize": {
"search_algorithm": "aiaccel.optimizer.sobol.search.SobolOptimizer",
"search_algorithm": "aiaccel.optimizer.SobolOptimizer",
"goal": "minimize",
"trial_number": 5,
"rand_seed": 42,
Expand Down
2 changes: 1 addition & 1 deletion tests/test_data/config_tpe.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
"job_execution_options": ""
},
"optimize": {
"search_algorithm": "aiaccel.optimizer.tpe.search.TpeOptimizer",
"search_algorithm": "aiaccel.optimizer.TpeOptimizer",
"goal": "minimize",
"trial_number": 10,
"rand_seed": 42,
Expand Down
2 changes: 1 addition & 1 deletion tests/test_data/config_tpe_resumption.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
"job_execution_options": ""
},
"optimize": {
"search_algorithm": "aiaccel.optimizer.tpe.search.TpeOptimizer",
"search_algorithm": "aiaccel.optimizer.TpeOptimizer",
"goal": "minimize",
"trial_number": 5,
"rand_seed": 42,
Expand Down
2 changes: 1 addition & 1 deletion tests/test_data/grid_config.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
"group": "gaa"
},
"optimize": {
"search_algorithm": "aiaccel.optimizer.grid.search.GridOptimizer",
"search_algorithm": "aiaccel.optimizer.GridOptimizer",
"goal": "minimize",
"trial_number": 10,
"rand_seed": 42,
Expand Down
2 changes: 1 addition & 1 deletion tests/unit/abci_test/additionaloptions.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
"$2search_algorithm": "Grid",
"$3search_algorithm": "Sobol",
"$$$search_algorithm": "NelderMead",
"search_algorithm": "aiaccel.optimizer.tpe.search.TpeOptimizer",
"search_algorithm": "aiaccel.optimizer.TpeOptimizer",
"parameter_pool_size": 4,
"sleep_time_optimizer": 1
},
Expand Down
2 changes: 1 addition & 1 deletion tests/unit/abci_test/additionaloptions2.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
"$2search_algorithm": "Grid",
"$3search_algorithm": "Sobol",
"$$$search_algorithm": "Nelder-Mead",
"search_algorithm": "aiaccel.optimizer.tpe.search.TpeOptimizer",
"search_algorithm": "aiaccel.optimizer.TpeOptimizer",
"parameter_pool_size": 4,
"sleep_time_optimizer": 1
},
Expand Down
Loading

0 comments on commit 55fcab8

Please sign in to comment.