optima-ml 0.3.2a5.dev1__tar.gz → 0.3.3a1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/builtin/evaluation.py +2 -2
- {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/builtin/inputs.py +1 -1
- {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/core/evaluation.py +17 -13
- optima_ml-0.3.3a1/OPTIMA/core/search_space.py +780 -0
- {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/core/training.py +1 -1
- {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/core/variable_optimization.py +1 -1
- {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/defaults.py +78 -25
- {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/keras/model.py +1 -1
- {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/optima.py +20 -38
- {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/PKG-INFO +40 -82
- {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/README.md +37 -79
- {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/optima_ml.egg-info/PKG-INFO +40 -82
- {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/optima_ml.egg-info/requires.txt +2 -2
- {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/setup.py +2 -2
- {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/tests/test_builtin.py +26 -81
- optima_ml-0.3.3a1/tests/test_core.py +457 -0
- {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/tests/test_integration.py +6 -5
- optima_ml-0.3.2a5.dev1/OPTIMA/core/search_space.py +0 -538
- optima_ml-0.3.2a5.dev1/tests/test_core.py +0 -150
- {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/LICENSE +0 -0
- {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/__init__.py +0 -0
- {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/__main__.py +0 -0
- {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/builtin/__init__.py +0 -0
- {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/builtin/figures_of_merit.py +0 -0
- {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/builtin/model.py +0 -0
- {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/builtin/search_space.py +0 -0
- {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/core/__init__.py +0 -0
- {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/core/inputs.py +0 -0
- {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/core/model.py +0 -0
- {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/core/tools.py +0 -0
- {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/hardware_configs/Dresden_Taurus.py +0 -0
- {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/hardware_configs/__init__.py +0 -0
- {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/hardware_configs/common.py +0 -0
- {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/hardware_configs/helpers.py +0 -0
- {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/helpers/__init__.py +0 -0
- {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/helpers/extract_data_from_NTuples.py +0 -0
- {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/helpers/manage_ray_nodes.py +0 -0
- {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/keras/__init__.py +0 -0
- {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/keras/tools.py +0 -0
- {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/keras/training.py +0 -0
- {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/lightning/__init__.py +0 -0
- {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/lightning/inputs.py +0 -0
- {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/lightning/training.py +0 -0
- {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/resources/__init__.py +0 -0
- {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/resources/config_verification.py +0 -0
- {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/resources/pbt_with_seed.py +0 -0
- {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/optima_ml.egg-info/SOURCES.txt +0 -0
- {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/optima_ml.egg-info/dependency_links.txt +0 -0
- {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/optima_ml.egg-info/entry_points.txt +0 -0
- {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/optima_ml.egg-info/top_level.txt +0 -0
- {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/setup.cfg +0 -0
- {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/tests/test_integration_sameMachine.py +0 -0
- {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/tests/test_preprocessing.py +0 -0
|
@@ -111,10 +111,10 @@ def evaluate(
|
|
|
111
111
|
|
|
112
112
|
# create the output folders if they do not exist
|
|
113
113
|
if not os.path.exists(fig_dir):
|
|
114
|
-
os.makedirs(fig_dir)
|
|
114
|
+
os.makedirs(fig_dir, exist_ok=True)
|
|
115
115
|
if results_dir is not None:
|
|
116
116
|
if not os.path.exists(results_dir):
|
|
117
|
-
os.makedirs(results_dir)
|
|
117
|
+
os.makedirs(results_dir, exist_ok=True)
|
|
118
118
|
|
|
119
119
|
# load the model and get the model predictions
|
|
120
120
|
model = OPTIMA.core.model.load_model(run_config, model_path, cpus)
|
|
@@ -216,7 +216,7 @@ def evaluate_experiment(
|
|
|
216
216
|
if not os.path.isfile(os.path.join(results_dir, "evaluation.pickle")):
|
|
217
217
|
# create the results directory if not present
|
|
218
218
|
if not os.path.exists(results_dir):
|
|
219
|
-
os.makedirs(results_dir)
|
|
219
|
+
os.makedirs(results_dir, exist_ok=True)
|
|
220
220
|
|
|
221
221
|
# build a list containing the names of all metrics, grouped together like [[train_loss, val_loss], [train_accuracy, val_accuracy], ...]
|
|
222
222
|
metric_names = []
|
|
@@ -364,17 +364,18 @@ def evaluate_experiment(
|
|
|
364
364
|
break
|
|
365
365
|
model_configs_to_evaluate.append(model_config_to_evaluate)
|
|
366
366
|
|
|
367
|
-
#
|
|
368
|
-
#
|
|
367
|
+
# Add the hyperparameters to the dataframe containing the configs of the best trials. For hierarchical
|
|
368
|
+
# search spaces, not all hyperparameters must have a value, so insert "-" for those
|
|
369
369
|
model_config = model_configs_to_evaluate[-1]
|
|
370
370
|
for hp in model_configs_df.index:
|
|
371
|
-
|
|
371
|
+
hp_value = model_config.get(hp)
|
|
372
|
+
model_configs_df.loc[hp, metric] = hp_value if hp_value is not None else "-"
|
|
372
373
|
|
|
373
374
|
# create the target folder for the following crossvalidation
|
|
374
375
|
target_folder = os.path.join(results_dir, metric if len(best_trials.index) > 1 else "", "best_value")
|
|
375
376
|
dirs_to_evaluate.append(target_folder) # mark target_folder to be evaluated later
|
|
376
377
|
if not os.path.exists(target_folder):
|
|
377
|
-
os.makedirs(target_folder)
|
|
378
|
+
os.makedirs(target_folder, exist_ok=True)
|
|
378
379
|
|
|
379
380
|
# then the results from the fit
|
|
380
381
|
if not skip_fit_evaluation:
|
|
@@ -394,11 +395,12 @@ def evaluate_experiment(
|
|
|
394
395
|
model_configs_to_evaluate.append(model_config_to_evaluate)
|
|
395
396
|
model_config = model_configs_to_evaluate[-1]
|
|
396
397
|
for hp in model_configs_df.index:
|
|
397
|
-
|
|
398
|
+
hp_value = model_config.get(hp)
|
|
399
|
+
model_configs_df.loc[hp, f"{metric} fit"] = hp_value if hp_value is not None else "-"
|
|
398
400
|
target_folder = os.path.join(results_dir, metric if len(best_trials_fit.index) > 1 else "", "best_fit")
|
|
399
401
|
dirs_to_evaluate.append(target_folder) # mark target_folder to be evaluated later
|
|
400
402
|
if not os.path.exists(target_folder):
|
|
401
|
-
os.makedirs(target_folder)
|
|
403
|
+
os.makedirs(target_folder, exist_ok=True)
|
|
402
404
|
|
|
403
405
|
optimization_results_string += tabulate.tabulate(
|
|
404
406
|
model_configs_df,
|
|
@@ -915,7 +917,7 @@ def draw_total_progress(dfs, optimize_name, optimize_op, metric_names, figs_dir=
|
|
|
915
917
|
plt.tight_layout()
|
|
916
918
|
if figs_dir is not None:
|
|
917
919
|
if not os.path.exists(os.path.join(figs_dir, "overview_plots")):
|
|
918
|
-
os.makedirs(os.path.join(figs_dir, "overview_plots"))
|
|
920
|
+
os.makedirs(os.path.join(figs_dir, "overview_plots"), exist_ok=True)
|
|
919
921
|
plt.savefig(os.path.join(figs_dir, "overview_plots", "{}.png".format("+".join(metric_group))), dpi=600)
|
|
920
922
|
else:
|
|
921
923
|
plt.show()
|
|
@@ -956,7 +958,7 @@ def draw_total_progress(dfs, optimize_name, optimize_op, metric_names, figs_dir=
|
|
|
956
958
|
plt.tight_layout()
|
|
957
959
|
if figs_dir is not None:
|
|
958
960
|
if not os.path.exists(os.path.join(figs_dir, "progress_plots")):
|
|
959
|
-
os.makedirs(os.path.join(figs_dir, "progress_plots"))
|
|
961
|
+
os.makedirs(os.path.join(figs_dir, "progress_plots"), exist_ok=True)
|
|
960
962
|
plt.savefig(
|
|
961
963
|
os.path.join(
|
|
962
964
|
figs_dir,
|
|
@@ -1088,7 +1090,8 @@ def get_best_trials(dfs, optimize_name, optimize_op, metric_names, figs_dir=None
|
|
|
1088
1090
|
"best_value",
|
|
1089
1091
|
"plots",
|
|
1090
1092
|
"optimization",
|
|
1091
|
-
)
|
|
1093
|
+
),
|
|
1094
|
+
exist_ok=True,
|
|
1092
1095
|
)
|
|
1093
1096
|
plt.savefig(
|
|
1094
1097
|
os.path.join(
|
|
@@ -1663,7 +1666,7 @@ def get_best_trials_from_fit(
|
|
|
1663
1666
|
|
|
1664
1667
|
if figs_dir is not None:
|
|
1665
1668
|
if not os.path.exists(figs_dir):
|
|
1666
|
-
os.makedirs(figs_dir)
|
|
1669
|
+
os.makedirs(figs_dir, exist_ok=True)
|
|
1667
1670
|
plt.gcf().set_figheight(6)
|
|
1668
1671
|
plt.gcf().set_figwidth(8)
|
|
1669
1672
|
plt.tight_layout()
|
|
@@ -1704,7 +1707,7 @@ def get_best_trials_from_fit(
|
|
|
1704
1707
|
|
|
1705
1708
|
if figs_dir is not None:
|
|
1706
1709
|
if not os.path.exists(figs_dir):
|
|
1707
|
-
os.makedirs(figs_dir)
|
|
1710
|
+
os.makedirs(figs_dir, exist_ok=True)
|
|
1708
1711
|
plt.gcf().set_figheight(6)
|
|
1709
1712
|
plt.gcf().set_figwidth(8)
|
|
1710
1713
|
plt.tight_layout()
|
|
@@ -1809,7 +1812,8 @@ def get_best_trials_from_fit(
|
|
|
1809
1812
|
"best_fit",
|
|
1810
1813
|
"plots",
|
|
1811
1814
|
"optimization",
|
|
1812
|
-
)
|
|
1815
|
+
),
|
|
1816
|
+
exist_ok=True,
|
|
1813
1817
|
)
|
|
1814
1818
|
plt.savefig(
|
|
1815
1819
|
os.path.join(
|