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.
Files changed (53) hide show
  1. {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/builtin/evaluation.py +2 -2
  2. {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/builtin/inputs.py +1 -1
  3. {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/core/evaluation.py +17 -13
  4. optima_ml-0.3.3a1/OPTIMA/core/search_space.py +780 -0
  5. {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/core/training.py +1 -1
  6. {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/core/variable_optimization.py +1 -1
  7. {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/defaults.py +78 -25
  8. {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/keras/model.py +1 -1
  9. {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/optima.py +20 -38
  10. {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/PKG-INFO +40 -82
  11. {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/README.md +37 -79
  12. {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/optima_ml.egg-info/PKG-INFO +40 -82
  13. {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/optima_ml.egg-info/requires.txt +2 -2
  14. {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/setup.py +2 -2
  15. {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/tests/test_builtin.py +26 -81
  16. optima_ml-0.3.3a1/tests/test_core.py +457 -0
  17. {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/tests/test_integration.py +6 -5
  18. optima_ml-0.3.2a5.dev1/OPTIMA/core/search_space.py +0 -538
  19. optima_ml-0.3.2a5.dev1/tests/test_core.py +0 -150
  20. {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/LICENSE +0 -0
  21. {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/__init__.py +0 -0
  22. {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/__main__.py +0 -0
  23. {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/builtin/__init__.py +0 -0
  24. {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/builtin/figures_of_merit.py +0 -0
  25. {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/builtin/model.py +0 -0
  26. {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/builtin/search_space.py +0 -0
  27. {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/core/__init__.py +0 -0
  28. {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/core/inputs.py +0 -0
  29. {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/core/model.py +0 -0
  30. {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/core/tools.py +0 -0
  31. {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/hardware_configs/Dresden_Taurus.py +0 -0
  32. {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/hardware_configs/__init__.py +0 -0
  33. {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/hardware_configs/common.py +0 -0
  34. {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/hardware_configs/helpers.py +0 -0
  35. {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/helpers/__init__.py +0 -0
  36. {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/helpers/extract_data_from_NTuples.py +0 -0
  37. {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/helpers/manage_ray_nodes.py +0 -0
  38. {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/keras/__init__.py +0 -0
  39. {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/keras/tools.py +0 -0
  40. {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/keras/training.py +0 -0
  41. {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/lightning/__init__.py +0 -0
  42. {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/lightning/inputs.py +0 -0
  43. {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/lightning/training.py +0 -0
  44. {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/resources/__init__.py +0 -0
  45. {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/resources/config_verification.py +0 -0
  46. {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/OPTIMA/resources/pbt_with_seed.py +0 -0
  47. {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/optima_ml.egg-info/SOURCES.txt +0 -0
  48. {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/optima_ml.egg-info/dependency_links.txt +0 -0
  49. {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/optima_ml.egg-info/entry_points.txt +0 -0
  50. {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/optima_ml.egg-info/top_level.txt +0 -0
  51. {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/setup.cfg +0 -0
  52. {optima_ml-0.3.2a5.dev1 → optima_ml-0.3.3a1}/tests/test_integration_sameMachine.py +0 -0
  53. {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)
@@ -755,7 +755,7 @@ def plot_input_data(
755
755
  ax.set_xlabel(var)
756
756
  ax.legend()
757
757
  if not os.path.exists(outdir):
758
- os.makedirs(outdir)
758
+ os.makedirs(outdir, exist_ok=True)
759
759
  fig.savefig(os.path.join(outdir, "inputs_{}.pdf".format(var)))
760
760
  plt.close()
761
761
 
@@ -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
- # round the config where necessary (in the same way as during the optimization), and add the hyperparameters to
368
- # the dataframe containing the configs of the best trials
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
- model_configs_df.loc[hp, metric] = model_config[hp]
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
- model_configs_df.loc[hp, f"{metric} fit"] = model_config[hp]
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(