mirror of
https://github.com/freqtrade/freqtrade.git
synced 2026-01-20 05:50:36 +00:00
move @delayed and @wrap_non_picklable_objects in hyperopt_optimizer.py
one test with analyze_per_epoch is failing
This commit is contained in:
@@ -14,7 +14,8 @@ from pathlib import Path
|
|||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
import rapidjson
|
import rapidjson
|
||||||
from joblib import Parallel, cpu_count, delayed, wrap_non_picklable_objects
|
from joblib import Parallel, cpu_count
|
||||||
|
from inspect import unwrap
|
||||||
|
|
||||||
from freqtrade.constants import FTHYPT_FILEVERSION, LAST_BT_RESULT_FN, Config
|
from freqtrade.constants import FTHYPT_FILEVERSION, LAST_BT_RESULT_FN, Config
|
||||||
from freqtrade.enums import HyperoptState
|
from freqtrade.enums import HyperoptState
|
||||||
@@ -158,7 +159,8 @@ class Hyperopt:
|
|||||||
|
|
||||||
return self.hyperopter.generate_optimizer(*args, **kwargs)
|
return self.hyperopter.generate_optimizer(*args, **kwargs)
|
||||||
|
|
||||||
return parallel(delayed(wrap_non_picklable_objects(optimizer_wrapper))(v) for v in asked)
|
# return parallel(delayed(wrap_non_picklable_objects(optimizer_wrapper))(v) for v in asked)
|
||||||
|
return parallel(optimizer_wrapper(v) for v in asked)
|
||||||
|
|
||||||
def _set_random_state(self, random_state: int | None) -> int:
|
def _set_random_state(self, random_state: int | None) -> int:
|
||||||
return random_state or random.randint(1, 2**16 - 1) # noqa: S311
|
return random_state or random.randint(1, 2**16 - 1) # noqa: S311
|
||||||
@@ -283,7 +285,7 @@ class Hyperopt:
|
|||||||
asked, is_random = self.get_asked_points(
|
asked, is_random = self.get_asked_points(
|
||||||
n_points=1, dimensions=self.hyperopter.o_dimensions
|
n_points=1, dimensions=self.hyperopter.o_dimensions
|
||||||
)
|
)
|
||||||
f_val0 = self.hyperopter.generate_optimizer(asked[0].params)
|
f_val0 = unwrap(self.hyperopter.generate_optimizer)(asked[0].params)
|
||||||
self.opt.tell(asked[0], [f_val0["loss"]])
|
self.opt.tell(asked[0], [f_val0["loss"]])
|
||||||
self.evaluate_result(f_val0, 1, is_random[0])
|
self.evaluate_result(f_val0, 1, is_random[0])
|
||||||
pbar.update(task, advance=1)
|
pbar.update(task, advance=1)
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ from pathlib import Path
|
|||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
import optuna
|
import optuna
|
||||||
from joblib import dump, load
|
from joblib import dump, load, delayed, wrap_non_picklable_objects
|
||||||
from joblib.externals import cloudpickle
|
from joblib.externals import cloudpickle
|
||||||
from optuna.exceptions import ExperimentalWarning
|
from optuna.exceptions import ExperimentalWarning
|
||||||
from pandas import DataFrame
|
from pandas import DataFrame
|
||||||
@@ -248,6 +248,8 @@ class HyperOptimizer:
|
|||||||
# noinspection PyProtectedMember
|
# noinspection PyProtectedMember
|
||||||
attr.value = params_dict[attr_name]
|
attr.value = params_dict[attr_name]
|
||||||
|
|
||||||
|
@delayed
|
||||||
|
@wrap_non_picklable_objects
|
||||||
def generate_optimizer(self, raw_params: dict[str, Any]) -> dict[str, Any]:
|
def generate_optimizer(self, raw_params: dict[str, Any]) -> dict[str, Any]:
|
||||||
"""
|
"""
|
||||||
Used Optimize function.
|
Used Optimize function.
|
||||||
|
|||||||
@@ -605,7 +605,7 @@ def test_generate_optimizer(mocker, hyperopt_conf) -> None:
|
|||||||
hyperopt.hyperopter.min_date = dt_utc(2017, 12, 10)
|
hyperopt.hyperopter.min_date = dt_utc(2017, 12, 10)
|
||||||
hyperopt.hyperopter.max_date = dt_utc(2017, 12, 13)
|
hyperopt.hyperopter.max_date = dt_utc(2017, 12, 13)
|
||||||
hyperopt.hyperopter.init_spaces()
|
hyperopt.hyperopter.init_spaces()
|
||||||
generate_optimizer_value = hyperopt.hyperopter.generate_optimizer(optimizer_param)
|
generate_optimizer_value = hyperopt.hyperopter.generate_optimizer._obj(hyperopt.hyperopter, raw_params=optimizer_param)
|
||||||
assert generate_optimizer_value == response_expected
|
assert generate_optimizer_value == response_expected
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user