omniopt2 7334__py3-none-any.whl → 7344__py3-none-any.whl

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 (35) hide show
  1. .omniopt.py +130 -54
  2. {omniopt2-7334.data → omniopt2-7344.data}/data/bin/.omniopt.py +130 -54
  3. {omniopt2-7334.dist-info → omniopt2-7344.dist-info}/METADATA +1 -1
  4. {omniopt2-7334.dist-info → omniopt2-7344.dist-info}/RECORD +35 -35
  5. omniopt2.egg-info/PKG-INFO +1 -1
  6. pyproject.toml +1 -1
  7. {omniopt2-7334.data → omniopt2-7344.data}/data/bin/.colorfunctions.sh +0 -0
  8. {omniopt2-7334.data → omniopt2-7344.data}/data/bin/.general.sh +0 -0
  9. {omniopt2-7334.data → omniopt2-7344.data}/data/bin/.helpers.py +0 -0
  10. {omniopt2-7334.data → omniopt2-7344.data}/data/bin/.omniopt_plot_cpu_ram_usage.py +0 -0
  11. {omniopt2-7334.data → omniopt2-7344.data}/data/bin/.omniopt_plot_general.py +0 -0
  12. {omniopt2-7334.data → omniopt2-7344.data}/data/bin/.omniopt_plot_gpu_usage.py +0 -0
  13. {omniopt2-7334.data → omniopt2-7344.data}/data/bin/.omniopt_plot_kde.py +0 -0
  14. {omniopt2-7334.data → omniopt2-7344.data}/data/bin/.omniopt_plot_scatter.py +0 -0
  15. {omniopt2-7334.data → omniopt2-7344.data}/data/bin/.omniopt_plot_scatter_generation_method.py +0 -0
  16. {omniopt2-7334.data → omniopt2-7344.data}/data/bin/.omniopt_plot_scatter_hex.py +0 -0
  17. {omniopt2-7334.data → omniopt2-7344.data}/data/bin/.omniopt_plot_time_and_exit_code.py +0 -0
  18. {omniopt2-7334.data → omniopt2-7344.data}/data/bin/.omniopt_plot_trial_index_result.py +0 -0
  19. {omniopt2-7334.data → omniopt2-7344.data}/data/bin/.omniopt_plot_worker.py +0 -0
  20. {omniopt2-7334.data → omniopt2-7344.data}/data/bin/.random_generator.py +0 -0
  21. {omniopt2-7334.data → omniopt2-7344.data}/data/bin/.shellscript_functions +0 -0
  22. {omniopt2-7334.data → omniopt2-7344.data}/data/bin/.tpe.py +0 -0
  23. {omniopt2-7334.data → omniopt2-7344.data}/data/bin/LICENSE +0 -0
  24. {omniopt2-7334.data → omniopt2-7344.data}/data/bin/apt-dependencies.txt +0 -0
  25. {omniopt2-7334.data → omniopt2-7344.data}/data/bin/omniopt +0 -0
  26. {omniopt2-7334.data → omniopt2-7344.data}/data/bin/omniopt_docker +0 -0
  27. {omniopt2-7334.data → omniopt2-7344.data}/data/bin/omniopt_evaluate +0 -0
  28. {omniopt2-7334.data → omniopt2-7344.data}/data/bin/omniopt_plot +0 -0
  29. {omniopt2-7334.data → omniopt2-7344.data}/data/bin/omniopt_share +0 -0
  30. {omniopt2-7334.data → omniopt2-7344.data}/data/bin/requirements.txt +0 -0
  31. {omniopt2-7334.data → omniopt2-7344.data}/data/bin/setup.py +0 -0
  32. {omniopt2-7334.data → omniopt2-7344.data}/data/bin/test_requirements.txt +0 -0
  33. {omniopt2-7334.dist-info → omniopt2-7344.dist-info}/WHEEL +0 -0
  34. {omniopt2-7334.dist-info → omniopt2-7344.dist-info}/licenses/LICENSE +0 -0
  35. {omniopt2-7334.dist-info → omniopt2-7344.dist-info}/top_level.txt +0 -0
.omniopt.py CHANGED
@@ -1842,7 +1842,11 @@ def try_saving_to_db() -> None:
1842
1842
 
1843
1843
  initialized_storage = True
1844
1844
 
1845
- save_experiment_to_db(ax_client.experiment)
1845
+ if ax_client is not None:
1846
+ save_experiment_to_db(ax_client.experiment)
1847
+ else:
1848
+ print_red("ax_client was not defined in try_saving_to_db")
1849
+ my_exit(101)
1846
1850
  save_generation_strategy(global_gs)
1847
1851
  except Exception as e:
1848
1852
  print_debug(f"Failed trying to save sqlite3-DB: {e}")
@@ -2014,6 +2018,9 @@ def print_logo() -> None:
2014
2018
  "Climbing the hyperparameter mountain... Montana Sacra style!",
2015
2019
  "better than OmniOpt1!",
2016
2020
  "Optimizing like it's the Matrix, but I am the One.",
2021
+ "Not all who wander are lost... just doing a random search.",
2022
+ "Grid search? Please, I’m doing ballet through parameter space.",
2023
+ "Hyperparameter tuning: part science, part sorcery.",
2017
2024
  "Channeling my inner Gandalf: ‘You shall not pass... without fine-tuning!’",
2018
2025
  "Inception-level optimization: going deeper with every layer.",
2019
2026
  "Hyperparameter quest: It's dangerous to go alone, take this!",
@@ -3908,6 +3915,20 @@ def _evaluate_create_signal_map() -> Dict[str, type[BaseException]]:
3908
3915
  "INT-signal": SignalINT
3909
3916
  }
3910
3917
 
3918
+ @beartype
3919
+ def sanitize_for_evaluate_handle_result(val: Optional[Union[int, float, list, tuple]]) -> Optional[Union[float, Tuple]]:
3920
+ if val is None:
3921
+ return None
3922
+ if isinstance(val, int):
3923
+ return float(val)
3924
+ if isinstance(val, float):
3925
+ return val
3926
+ if isinstance(val, list):
3927
+ return tuple(val)
3928
+ if isinstance(val, tuple):
3929
+ return val
3930
+ raise TypeError(f"Unexpected result type: {type(val)}")
3931
+
3911
3932
  @beartype
3912
3933
  def _evaluate_handle_result(
3913
3934
  stdout: str,
@@ -3918,16 +3939,19 @@ def _evaluate_handle_result(
3918
3939
 
3919
3940
  if isinstance(result, (int, float)):
3920
3941
  for name in arg_result_names:
3921
- final_result[name] = attach_sem_to_result(stdout, name, float(result))
3942
+ value = attach_sem_to_result(stdout, name, float(result))
3943
+ final_result[name] = sanitize_for_evaluate_handle_result(value)
3922
3944
 
3923
3945
  elif isinstance(result, list):
3924
3946
  float_values = [float(r) for r in result]
3925
3947
  for name in arg_result_names:
3926
- final_result[name] = attach_sem_to_result(stdout, name, float_values)
3948
+ value = attach_sem_to_result(stdout, name, float_values)
3949
+ final_result[name] = sanitize_for_evaluate_handle_result(value)
3927
3950
 
3928
3951
  elif isinstance(result, dict):
3929
3952
  for name in arg_result_names:
3930
- final_result[name] = attach_sem_to_result(stdout, name, result.get(name))
3953
+ value = attach_sem_to_result(stdout, name, result.get(name))
3954
+ final_result[name] = sanitize_for_evaluate_handle_result(value)
3931
3955
 
3932
3956
  else:
3933
3957
  write_failed_logs(parameters, "No Result")
@@ -5332,7 +5356,39 @@ def copy_continue_uuid() -> None:
5332
5356
  print_debug(f"copy_continue_uuid: Source file does not exist: {source_file}")
5333
5357
 
5334
5358
  @beartype
5335
- def get_experiment_parameters(_params: list) -> Tuple[AxClient, Union[list, dict], dict, str, str]:
5359
+ def load_ax_client_from_experiment_parameters(experiment_parameters: dict) -> None:
5360
+ global ax_client
5361
+ tmp_file_path = get_tmp_file_from_json(experiment_parameters)
5362
+ ax_client = AxClient.load_from_json_file(tmp_file_path)
5363
+ ax_client = cast(AxClient, ax_client)
5364
+ os.unlink(tmp_file_path)
5365
+
5366
+ @beartype
5367
+ def save_checkpoint_for_continued(experiment_parameters: dict) -> None:
5368
+ state_files_folder = f"{get_current_run_folder()}/state_files"
5369
+ checkpoint_filepath = f'{state_files_folder}/checkpoint.json'
5370
+
5371
+ makedirs(state_files_folder)
5372
+
5373
+ with open(checkpoint_filepath, mode="w", encoding="utf-8") as outfile:
5374
+ json.dump(experiment_parameters, outfile)
5375
+
5376
+ if not os.path.exists(checkpoint_filepath):
5377
+ _fatal_error(f"{checkpoint_filepath} not found. Cannot continue_previous_job without.", 47)
5378
+
5379
+ @beartype
5380
+ def load_original_generation_strategy(experiment_parameters: dict, original_ax_client_file: str) -> dict:
5381
+ with open(original_ax_client_file, encoding="utf-8") as f:
5382
+ loaded_original_ax_client_json = json.load(f)
5383
+ original_generation_strategy = loaded_original_ax_client_json["generation_strategy"]
5384
+
5385
+ if original_generation_strategy:
5386
+ experiment_parameters["generation_strategy"] = original_generation_strategy
5387
+
5388
+ return experiment_parameters
5389
+
5390
+ @beartype
5391
+ def get_experiment_parameters(_params: list) -> Optional[Tuple[AxClient, Union[list, dict], dict, str, str]]:
5336
5392
  cli_params_experiment_parameters, experiment_parameters = _params
5337
5393
 
5338
5394
  continue_previous_job = args.continue_previous_job
@@ -5340,10 +5396,9 @@ def get_experiment_parameters(_params: list) -> Tuple[AxClient, Union[list, dict
5340
5396
 
5341
5397
  experiment_constraints = get_constraints()
5342
5398
 
5343
- global ax_client
5344
-
5345
5399
  if not ax_client:
5346
5400
  _fatal_error("Something went wrong with the ax_client", 9)
5401
+ return None
5347
5402
 
5348
5403
  gpu_string = ""
5349
5404
  gpu_color = "green"
@@ -5356,8 +5411,6 @@ def get_experiment_parameters(_params: list) -> Tuple[AxClient, Union[list, dict
5356
5411
  checkpoint_file: str = f"{continue_previous_job}/state_files/checkpoint.json"
5357
5412
  checkpoint_parameters_filepath: str = f"{continue_previous_job}/state_files/checkpoint.json.parameters.json"
5358
5413
  original_ax_client_file: str = f"{get_current_run_folder()}/state_files/original_ax_client_before_loading_tmp_one.json"
5359
- state_files_folder = f"{get_current_run_folder()}/state_files"
5360
- checkpoint_filepath = f'{state_files_folder}/checkpoint.json'
5361
5414
 
5362
5415
  die_with_47_if_file_doesnt_exists(checkpoint_parameters_filepath)
5363
5416
  die_with_47_if_file_doesnt_exists(checkpoint_file)
@@ -5368,37 +5421,27 @@ def get_experiment_parameters(_params: list) -> Tuple[AxClient, Union[list, dict
5368
5421
 
5369
5422
  copy_state_files_from_previous_job(continue_previous_job)
5370
5423
 
5371
- replace_parameters_for_continued_jobs(parameter, cli_params_experiment_parameters, experiment_parameters)
5372
-
5373
- ax_client.save_to_json_file(filepath=original_ax_client_file)
5424
+ if experiment_parameters is None or "experiment" not in experiment_parameters or "search_space" not in experiment_parameters["experiment"] or "parameters" not in experiment_parameters["experiment"]["search_space"]:
5425
+ print_red(f"Either, experiment_parameters was empty or it had no path to experiment/search_space/parameters: {experiment_parameters}")
5426
+ my_exit(95)
5427
+ else:
5428
+ replace_parameters_for_continued_jobs(parameter, cli_params_experiment_parameters, experiment_parameters)
5374
5429
 
5375
- with open(original_ax_client_file, encoding="utf-8") as f:
5376
- loaded_original_ax_client_json = json.load(f)
5377
- original_generation_strategy = loaded_original_ax_client_json["generation_strategy"]
5430
+ ax_client.save_to_json_file(filepath=original_ax_client_file)
5378
5431
 
5379
- if original_generation_strategy:
5380
- experiment_parameters["generation_strategy"] = original_generation_strategy
5432
+ experiment_parameters = load_original_generation_strategy(experiment_parameters, original_ax_client_file)
5381
5433
 
5382
- tmp_file_path = get_tmp_file_from_json(experiment_parameters)
5383
- ax_client = AxClient.load_from_json_file(tmp_file_path)
5384
- ax_client = cast(AxClient, ax_client)
5385
- os.unlink(tmp_file_path)
5434
+ load_ax_client_from_experiment_parameters(experiment_parameters)
5386
5435
 
5387
- makedirs(state_files_folder)
5436
+ save_checkpoint_for_continued(experiment_parameters)
5388
5437
 
5389
- with open(checkpoint_filepath, mode="w", encoding="utf-8") as outfile:
5390
- json.dump(experiment_parameters, outfile)
5438
+ with open(f'{get_current_run_folder()}/checkpoint_load_source', mode='w', encoding="utf-8") as f:
5439
+ print(f"Continuation from checkpoint {continue_previous_job}", file=f)
5391
5440
 
5392
- if not os.path.exists(checkpoint_filepath):
5393
- _fatal_error(f"{checkpoint_filepath} not found. Cannot continue_previous_job without.", 47)
5441
+ copy_continue_uuid()
5394
5442
 
5395
- with open(f'{get_current_run_folder()}/checkpoint_load_source', mode='w', encoding="utf-8") as f:
5396
- print(f"Continuation from checkpoint {continue_previous_job}", file=f)
5397
-
5398
- copy_continue_uuid()
5399
-
5400
- if experiment_constraints:
5401
- experiment_args = set_experiment_constraints(experiment_constraints, experiment_args, experiment_parameters["experiment"]["search_space"]["parameters"])
5443
+ if experiment_constraints:
5444
+ experiment_args = set_experiment_constraints(experiment_constraints, experiment_args, experiment_parameters["experiment"]["search_space"]["parameters"])
5402
5445
  else:
5403
5446
  objectives = set_objectives()
5404
5447
 
@@ -6245,6 +6288,9 @@ def insert_job_into_ax_client(arm_params: dict, result: dict, new_job_type: str
6245
6288
 
6246
6289
  while not done_converting:
6247
6290
  try:
6291
+ if ax_client is None:
6292
+ return False
6293
+
6248
6294
  new_trial = ax_client.attach_trial(arm_params)
6249
6295
  if not isinstance(new_trial, tuple) or len(new_trial) < 2:
6250
6296
  raise RuntimeError("attach_trial didn't return the expected tuple")
@@ -6704,6 +6750,10 @@ def _finish_job_core_helper_check_valid_result(result: Union[None, list, int, fl
6704
6750
 
6705
6751
  @beartype
6706
6752
  def _finish_job_core_helper_complete_trial(trial_index: int, raw_result: dict) -> None:
6753
+ if ax_client is None:
6754
+ print_red("ax_client is not defined in _finish_job_core_helper_complete_trial")
6755
+ return None
6756
+
6707
6757
  try:
6708
6758
  print_debug(f"Completing trial: {trial_index} with result: {raw_result}...")
6709
6759
  ax_client.complete_trial(trial_index=trial_index, raw_data=raw_result)
@@ -6716,6 +6766,8 @@ def _finish_job_core_helper_complete_trial(trial_index: int, raw_result: dict) -
6716
6766
  else:
6717
6767
  _fatal_error(f"Error completing trial: {e}", 234)
6718
6768
 
6769
+ return None
6770
+
6719
6771
  @beartype
6720
6772
  def _finish_job_core_helper_mark_success(_trial: ax.core.trial.Trial, result: Union[float, int, tuple]) -> None:
6721
6773
  print_debug(f"Marking trial {_trial} as completed")
@@ -6731,6 +6783,10 @@ def _finish_job_core_helper_mark_success(_trial: ax.core.trial.Trial, result: Un
6731
6783
 
6732
6784
  @beartype
6733
6785
  def _finish_job_core_helper_mark_failure(job: Any, trial_index: int, _trial: Any) -> None:
6786
+ if ax_client is None:
6787
+ print_red("ax_client is not defined in _finish_job_core_helper_mark_failure")
6788
+ return None
6789
+
6734
6790
  print_debug(f"Counting job {job} as failed, because the result is {job.result() if job else 'None'}")
6735
6791
  if job:
6736
6792
  try:
@@ -6745,6 +6801,8 @@ def _finish_job_core_helper_mark_failure(job: Any, trial_index: int, _trial: Any
6745
6801
  mark_trial_as_failed(trial_index, _trial)
6746
6802
  failed_jobs(1)
6747
6803
 
6804
+ return None
6805
+
6748
6806
  @beartype
6749
6807
  def finish_job_core(job: Any, trial_index: int, this_jobs_finished: int) -> int:
6750
6808
  die_for_debug_reasons()
@@ -6782,6 +6840,10 @@ def finish_job_core(job: Any, trial_index: int, this_jobs_finished: int) -> int:
6782
6840
 
6783
6841
  @beartype
6784
6842
  def _finish_previous_jobs_helper_handle_failed_job(job: Any, trial_index: int) -> None:
6843
+ if ax_client is None:
6844
+ print_red("ax_client is not defined in _finish_job_core_helper_mark_failure")
6845
+ return None
6846
+
6785
6847
  if job:
6786
6848
  try:
6787
6849
  progressbar_description(["job_failed"])
@@ -6800,6 +6862,8 @@ def _finish_previous_jobs_helper_handle_failed_job(job: Any, trial_index: int) -
6800
6862
  print_debug(f"finish_previous_jobs: removing job {job}, trial_index: {trial_index}")
6801
6863
  global_vars["jobs"].remove((job, trial_index))
6802
6864
 
6865
+ return None
6866
+
6803
6867
  @beartype
6804
6868
  def _finish_previous_jobs_helper_handle_exception(job: Any, trial_index: int, error: Exception) -> int:
6805
6869
  if "None for metric" in str(error):
@@ -7449,6 +7513,10 @@ def get_batched_arms(nr_of_jobs_to_get: int) -> list:
7449
7513
 
7450
7514
  return []
7451
7515
 
7516
+ if ax_client is None:
7517
+ print_red("get_batched_arms: ax_client was None")
7518
+ return []
7519
+
7452
7520
  while len(batched_arms) != nr_of_jobs_to_get:
7453
7521
  if attempts > args.max_attempts_for_generation:
7454
7522
  print_debug(f"_fetch_next_trials: Stopped after {attempts} attempts: could not generate enough arms "
@@ -7534,6 +7602,10 @@ class TrialRejected(Exception):
7534
7602
 
7535
7603
  @beartype
7536
7604
  def _create_and_handle_trial(arm: Any) -> Optional[Tuple[int, float, bool]]:
7605
+ if ax_client is None:
7606
+ print_red("ax_client is None in _create_and_handle_trial")
7607
+ return None
7608
+
7537
7609
  start = time.time()
7538
7610
 
7539
7611
  if global_gs is None:
@@ -9982,44 +10054,48 @@ def main() -> None:
9982
10054
 
9983
10055
  initialize_ax_client()
9984
10056
 
9985
- ax_client, experiment_parameters, experiment_args, gpu_string, gpu_color = get_experiment_parameters([
10057
+ exp_params = get_experiment_parameters([
9986
10058
  cli_params_experiment_parameters,
9987
10059
  experiment_parameters,
9988
10060
  ])
9989
10061
 
9990
- print_debug(f"experiment_parameters: {experiment_parameters}")
10062
+ if exp_params is not None:
10063
+ ax_client, experiment_parameters, experiment_args, gpu_string, gpu_color = exp_params
10064
+ print_debug(f"experiment_parameters: {experiment_parameters}")
9991
10065
 
9992
- set_orchestrator()
10066
+ set_orchestrator()
9993
10067
 
9994
- show_available_hardware_and_generation_strategy_string(gpu_string, gpu_color)
10068
+ show_available_hardware_and_generation_strategy_string(gpu_string, gpu_color)
9995
10069
 
9996
- original_print(f"Run-Program: {global_vars['joined_run_program']}")
10070
+ original_print(f"Run-Program: {global_vars['joined_run_program']}")
9997
10071
 
9998
- if args.external_generator:
9999
- original_print(f"External-Generator: {decode_if_base64(args.external_generator)}")
10072
+ if args.external_generator:
10073
+ original_print(f"External-Generator: {decode_if_base64(args.external_generator)}")
10000
10074
 
10001
- checkpoint_parameters_filepath = f"{get_current_run_folder()}/state_files/checkpoint.json.parameters.json"
10002
- save_experiment_parameters(checkpoint_parameters_filepath, experiment_parameters)
10075
+ checkpoint_parameters_filepath = f"{get_current_run_folder()}/state_files/checkpoint.json.parameters.json"
10076
+ save_experiment_parameters(checkpoint_parameters_filepath, experiment_parameters)
10003
10077
 
10004
- print_overview_tables(experiment_parameters, experiment_args)
10078
+ print_overview_tables(experiment_parameters, experiment_args)
10005
10079
 
10006
- write_files_and_show_overviews()
10080
+ write_files_and_show_overviews()
10007
10081
 
10008
- for existing_run in args.load_data_from_existing_jobs:
10009
- insert_jobs_from_csv(f"{existing_run}/results.csv".replace("//", "/"), experiment_parameters)
10082
+ for existing_run in args.load_data_from_existing_jobs:
10083
+ insert_jobs_from_csv(f"{existing_run}/results.csv".replace("//", "/"), experiment_parameters)
10010
10084
 
10011
- set_global_generation_strategy()
10085
+ set_global_generation_strategy()
10012
10086
 
10013
- try:
10014
- run_search_with_progress_bar()
10087
+ try:
10088
+ run_search_with_progress_bar()
10015
10089
 
10016
- live_share()
10090
+ live_share()
10017
10091
 
10018
- time.sleep(2)
10019
- except ax.exceptions.core.UnsupportedError:
10020
- pass
10092
+ time.sleep(2)
10093
+ except ax.exceptions.core.UnsupportedError:
10094
+ pass
10021
10095
 
10022
- end_program()
10096
+ end_program()
10097
+ else:
10098
+ print_red("exp_params is None!")
10023
10099
 
10024
10100
  @beartype
10025
10101
  def log_worker_creation() -> None:
@@ -1842,7 +1842,11 @@ def try_saving_to_db() -> None:
1842
1842
 
1843
1843
  initialized_storage = True
1844
1844
 
1845
- save_experiment_to_db(ax_client.experiment)
1845
+ if ax_client is not None:
1846
+ save_experiment_to_db(ax_client.experiment)
1847
+ else:
1848
+ print_red("ax_client was not defined in try_saving_to_db")
1849
+ my_exit(101)
1846
1850
  save_generation_strategy(global_gs)
1847
1851
  except Exception as e:
1848
1852
  print_debug(f"Failed trying to save sqlite3-DB: {e}")
@@ -2014,6 +2018,9 @@ def print_logo() -> None:
2014
2018
  "Climbing the hyperparameter mountain... Montana Sacra style!",
2015
2019
  "better than OmniOpt1!",
2016
2020
  "Optimizing like it's the Matrix, but I am the One.",
2021
+ "Not all who wander are lost... just doing a random search.",
2022
+ "Grid search? Please, I’m doing ballet through parameter space.",
2023
+ "Hyperparameter tuning: part science, part sorcery.",
2017
2024
  "Channeling my inner Gandalf: ‘You shall not pass... without fine-tuning!’",
2018
2025
  "Inception-level optimization: going deeper with every layer.",
2019
2026
  "Hyperparameter quest: It's dangerous to go alone, take this!",
@@ -3908,6 +3915,20 @@ def _evaluate_create_signal_map() -> Dict[str, type[BaseException]]:
3908
3915
  "INT-signal": SignalINT
3909
3916
  }
3910
3917
 
3918
+ @beartype
3919
+ def sanitize_for_evaluate_handle_result(val: Optional[Union[int, float, list, tuple]]) -> Optional[Union[float, Tuple]]:
3920
+ if val is None:
3921
+ return None
3922
+ if isinstance(val, int):
3923
+ return float(val)
3924
+ if isinstance(val, float):
3925
+ return val
3926
+ if isinstance(val, list):
3927
+ return tuple(val)
3928
+ if isinstance(val, tuple):
3929
+ return val
3930
+ raise TypeError(f"Unexpected result type: {type(val)}")
3931
+
3911
3932
  @beartype
3912
3933
  def _evaluate_handle_result(
3913
3934
  stdout: str,
@@ -3918,16 +3939,19 @@ def _evaluate_handle_result(
3918
3939
 
3919
3940
  if isinstance(result, (int, float)):
3920
3941
  for name in arg_result_names:
3921
- final_result[name] = attach_sem_to_result(stdout, name, float(result))
3942
+ value = attach_sem_to_result(stdout, name, float(result))
3943
+ final_result[name] = sanitize_for_evaluate_handle_result(value)
3922
3944
 
3923
3945
  elif isinstance(result, list):
3924
3946
  float_values = [float(r) for r in result]
3925
3947
  for name in arg_result_names:
3926
- final_result[name] = attach_sem_to_result(stdout, name, float_values)
3948
+ value = attach_sem_to_result(stdout, name, float_values)
3949
+ final_result[name] = sanitize_for_evaluate_handle_result(value)
3927
3950
 
3928
3951
  elif isinstance(result, dict):
3929
3952
  for name in arg_result_names:
3930
- final_result[name] = attach_sem_to_result(stdout, name, result.get(name))
3953
+ value = attach_sem_to_result(stdout, name, result.get(name))
3954
+ final_result[name] = sanitize_for_evaluate_handle_result(value)
3931
3955
 
3932
3956
  else:
3933
3957
  write_failed_logs(parameters, "No Result")
@@ -5332,7 +5356,39 @@ def copy_continue_uuid() -> None:
5332
5356
  print_debug(f"copy_continue_uuid: Source file does not exist: {source_file}")
5333
5357
 
5334
5358
  @beartype
5335
- def get_experiment_parameters(_params: list) -> Tuple[AxClient, Union[list, dict], dict, str, str]:
5359
+ def load_ax_client_from_experiment_parameters(experiment_parameters: dict) -> None:
5360
+ global ax_client
5361
+ tmp_file_path = get_tmp_file_from_json(experiment_parameters)
5362
+ ax_client = AxClient.load_from_json_file(tmp_file_path)
5363
+ ax_client = cast(AxClient, ax_client)
5364
+ os.unlink(tmp_file_path)
5365
+
5366
+ @beartype
5367
+ def save_checkpoint_for_continued(experiment_parameters: dict) -> None:
5368
+ state_files_folder = f"{get_current_run_folder()}/state_files"
5369
+ checkpoint_filepath = f'{state_files_folder}/checkpoint.json'
5370
+
5371
+ makedirs(state_files_folder)
5372
+
5373
+ with open(checkpoint_filepath, mode="w", encoding="utf-8") as outfile:
5374
+ json.dump(experiment_parameters, outfile)
5375
+
5376
+ if not os.path.exists(checkpoint_filepath):
5377
+ _fatal_error(f"{checkpoint_filepath} not found. Cannot continue_previous_job without.", 47)
5378
+
5379
+ @beartype
5380
+ def load_original_generation_strategy(experiment_parameters: dict, original_ax_client_file: str) -> dict:
5381
+ with open(original_ax_client_file, encoding="utf-8") as f:
5382
+ loaded_original_ax_client_json = json.load(f)
5383
+ original_generation_strategy = loaded_original_ax_client_json["generation_strategy"]
5384
+
5385
+ if original_generation_strategy:
5386
+ experiment_parameters["generation_strategy"] = original_generation_strategy
5387
+
5388
+ return experiment_parameters
5389
+
5390
+ @beartype
5391
+ def get_experiment_parameters(_params: list) -> Optional[Tuple[AxClient, Union[list, dict], dict, str, str]]:
5336
5392
  cli_params_experiment_parameters, experiment_parameters = _params
5337
5393
 
5338
5394
  continue_previous_job = args.continue_previous_job
@@ -5340,10 +5396,9 @@ def get_experiment_parameters(_params: list) -> Tuple[AxClient, Union[list, dict
5340
5396
 
5341
5397
  experiment_constraints = get_constraints()
5342
5398
 
5343
- global ax_client
5344
-
5345
5399
  if not ax_client:
5346
5400
  _fatal_error("Something went wrong with the ax_client", 9)
5401
+ return None
5347
5402
 
5348
5403
  gpu_string = ""
5349
5404
  gpu_color = "green"
@@ -5356,8 +5411,6 @@ def get_experiment_parameters(_params: list) -> Tuple[AxClient, Union[list, dict
5356
5411
  checkpoint_file: str = f"{continue_previous_job}/state_files/checkpoint.json"
5357
5412
  checkpoint_parameters_filepath: str = f"{continue_previous_job}/state_files/checkpoint.json.parameters.json"
5358
5413
  original_ax_client_file: str = f"{get_current_run_folder()}/state_files/original_ax_client_before_loading_tmp_one.json"
5359
- state_files_folder = f"{get_current_run_folder()}/state_files"
5360
- checkpoint_filepath = f'{state_files_folder}/checkpoint.json'
5361
5414
 
5362
5415
  die_with_47_if_file_doesnt_exists(checkpoint_parameters_filepath)
5363
5416
  die_with_47_if_file_doesnt_exists(checkpoint_file)
@@ -5368,37 +5421,27 @@ def get_experiment_parameters(_params: list) -> Tuple[AxClient, Union[list, dict
5368
5421
 
5369
5422
  copy_state_files_from_previous_job(continue_previous_job)
5370
5423
 
5371
- replace_parameters_for_continued_jobs(parameter, cli_params_experiment_parameters, experiment_parameters)
5372
-
5373
- ax_client.save_to_json_file(filepath=original_ax_client_file)
5424
+ if experiment_parameters is None or "experiment" not in experiment_parameters or "search_space" not in experiment_parameters["experiment"] or "parameters" not in experiment_parameters["experiment"]["search_space"]:
5425
+ print_red(f"Either, experiment_parameters was empty or it had no path to experiment/search_space/parameters: {experiment_parameters}")
5426
+ my_exit(95)
5427
+ else:
5428
+ replace_parameters_for_continued_jobs(parameter, cli_params_experiment_parameters, experiment_parameters)
5374
5429
 
5375
- with open(original_ax_client_file, encoding="utf-8") as f:
5376
- loaded_original_ax_client_json = json.load(f)
5377
- original_generation_strategy = loaded_original_ax_client_json["generation_strategy"]
5430
+ ax_client.save_to_json_file(filepath=original_ax_client_file)
5378
5431
 
5379
- if original_generation_strategy:
5380
- experiment_parameters["generation_strategy"] = original_generation_strategy
5432
+ experiment_parameters = load_original_generation_strategy(experiment_parameters, original_ax_client_file)
5381
5433
 
5382
- tmp_file_path = get_tmp_file_from_json(experiment_parameters)
5383
- ax_client = AxClient.load_from_json_file(tmp_file_path)
5384
- ax_client = cast(AxClient, ax_client)
5385
- os.unlink(tmp_file_path)
5434
+ load_ax_client_from_experiment_parameters(experiment_parameters)
5386
5435
 
5387
- makedirs(state_files_folder)
5436
+ save_checkpoint_for_continued(experiment_parameters)
5388
5437
 
5389
- with open(checkpoint_filepath, mode="w", encoding="utf-8") as outfile:
5390
- json.dump(experiment_parameters, outfile)
5438
+ with open(f'{get_current_run_folder()}/checkpoint_load_source', mode='w', encoding="utf-8") as f:
5439
+ print(f"Continuation from checkpoint {continue_previous_job}", file=f)
5391
5440
 
5392
- if not os.path.exists(checkpoint_filepath):
5393
- _fatal_error(f"{checkpoint_filepath} not found. Cannot continue_previous_job without.", 47)
5441
+ copy_continue_uuid()
5394
5442
 
5395
- with open(f'{get_current_run_folder()}/checkpoint_load_source', mode='w', encoding="utf-8") as f:
5396
- print(f"Continuation from checkpoint {continue_previous_job}", file=f)
5397
-
5398
- copy_continue_uuid()
5399
-
5400
- if experiment_constraints:
5401
- experiment_args = set_experiment_constraints(experiment_constraints, experiment_args, experiment_parameters["experiment"]["search_space"]["parameters"])
5443
+ if experiment_constraints:
5444
+ experiment_args = set_experiment_constraints(experiment_constraints, experiment_args, experiment_parameters["experiment"]["search_space"]["parameters"])
5402
5445
  else:
5403
5446
  objectives = set_objectives()
5404
5447
 
@@ -6245,6 +6288,9 @@ def insert_job_into_ax_client(arm_params: dict, result: dict, new_job_type: str
6245
6288
 
6246
6289
  while not done_converting:
6247
6290
  try:
6291
+ if ax_client is None:
6292
+ return False
6293
+
6248
6294
  new_trial = ax_client.attach_trial(arm_params)
6249
6295
  if not isinstance(new_trial, tuple) or len(new_trial) < 2:
6250
6296
  raise RuntimeError("attach_trial didn't return the expected tuple")
@@ -6704,6 +6750,10 @@ def _finish_job_core_helper_check_valid_result(result: Union[None, list, int, fl
6704
6750
 
6705
6751
  @beartype
6706
6752
  def _finish_job_core_helper_complete_trial(trial_index: int, raw_result: dict) -> None:
6753
+ if ax_client is None:
6754
+ print_red("ax_client is not defined in _finish_job_core_helper_complete_trial")
6755
+ return None
6756
+
6707
6757
  try:
6708
6758
  print_debug(f"Completing trial: {trial_index} with result: {raw_result}...")
6709
6759
  ax_client.complete_trial(trial_index=trial_index, raw_data=raw_result)
@@ -6716,6 +6766,8 @@ def _finish_job_core_helper_complete_trial(trial_index: int, raw_result: dict) -
6716
6766
  else:
6717
6767
  _fatal_error(f"Error completing trial: {e}", 234)
6718
6768
 
6769
+ return None
6770
+
6719
6771
  @beartype
6720
6772
  def _finish_job_core_helper_mark_success(_trial: ax.core.trial.Trial, result: Union[float, int, tuple]) -> None:
6721
6773
  print_debug(f"Marking trial {_trial} as completed")
@@ -6731,6 +6783,10 @@ def _finish_job_core_helper_mark_success(_trial: ax.core.trial.Trial, result: Un
6731
6783
 
6732
6784
  @beartype
6733
6785
  def _finish_job_core_helper_mark_failure(job: Any, trial_index: int, _trial: Any) -> None:
6786
+ if ax_client is None:
6787
+ print_red("ax_client is not defined in _finish_job_core_helper_mark_failure")
6788
+ return None
6789
+
6734
6790
  print_debug(f"Counting job {job} as failed, because the result is {job.result() if job else 'None'}")
6735
6791
  if job:
6736
6792
  try:
@@ -6745,6 +6801,8 @@ def _finish_job_core_helper_mark_failure(job: Any, trial_index: int, _trial: Any
6745
6801
  mark_trial_as_failed(trial_index, _trial)
6746
6802
  failed_jobs(1)
6747
6803
 
6804
+ return None
6805
+
6748
6806
  @beartype
6749
6807
  def finish_job_core(job: Any, trial_index: int, this_jobs_finished: int) -> int:
6750
6808
  die_for_debug_reasons()
@@ -6782,6 +6840,10 @@ def finish_job_core(job: Any, trial_index: int, this_jobs_finished: int) -> int:
6782
6840
 
6783
6841
  @beartype
6784
6842
  def _finish_previous_jobs_helper_handle_failed_job(job: Any, trial_index: int) -> None:
6843
+ if ax_client is None:
6844
+ print_red("ax_client is not defined in _finish_job_core_helper_mark_failure")
6845
+ return None
6846
+
6785
6847
  if job:
6786
6848
  try:
6787
6849
  progressbar_description(["job_failed"])
@@ -6800,6 +6862,8 @@ def _finish_previous_jobs_helper_handle_failed_job(job: Any, trial_index: int) -
6800
6862
  print_debug(f"finish_previous_jobs: removing job {job}, trial_index: {trial_index}")
6801
6863
  global_vars["jobs"].remove((job, trial_index))
6802
6864
 
6865
+ return None
6866
+
6803
6867
  @beartype
6804
6868
  def _finish_previous_jobs_helper_handle_exception(job: Any, trial_index: int, error: Exception) -> int:
6805
6869
  if "None for metric" in str(error):
@@ -7449,6 +7513,10 @@ def get_batched_arms(nr_of_jobs_to_get: int) -> list:
7449
7513
 
7450
7514
  return []
7451
7515
 
7516
+ if ax_client is None:
7517
+ print_red("get_batched_arms: ax_client was None")
7518
+ return []
7519
+
7452
7520
  while len(batched_arms) != nr_of_jobs_to_get:
7453
7521
  if attempts > args.max_attempts_for_generation:
7454
7522
  print_debug(f"_fetch_next_trials: Stopped after {attempts} attempts: could not generate enough arms "
@@ -7534,6 +7602,10 @@ class TrialRejected(Exception):
7534
7602
 
7535
7603
  @beartype
7536
7604
  def _create_and_handle_trial(arm: Any) -> Optional[Tuple[int, float, bool]]:
7605
+ if ax_client is None:
7606
+ print_red("ax_client is None in _create_and_handle_trial")
7607
+ return None
7608
+
7537
7609
  start = time.time()
7538
7610
 
7539
7611
  if global_gs is None:
@@ -9982,44 +10054,48 @@ def main() -> None:
9982
10054
 
9983
10055
  initialize_ax_client()
9984
10056
 
9985
- ax_client, experiment_parameters, experiment_args, gpu_string, gpu_color = get_experiment_parameters([
10057
+ exp_params = get_experiment_parameters([
9986
10058
  cli_params_experiment_parameters,
9987
10059
  experiment_parameters,
9988
10060
  ])
9989
10061
 
9990
- print_debug(f"experiment_parameters: {experiment_parameters}")
10062
+ if exp_params is not None:
10063
+ ax_client, experiment_parameters, experiment_args, gpu_string, gpu_color = exp_params
10064
+ print_debug(f"experiment_parameters: {experiment_parameters}")
9991
10065
 
9992
- set_orchestrator()
10066
+ set_orchestrator()
9993
10067
 
9994
- show_available_hardware_and_generation_strategy_string(gpu_string, gpu_color)
10068
+ show_available_hardware_and_generation_strategy_string(gpu_string, gpu_color)
9995
10069
 
9996
- original_print(f"Run-Program: {global_vars['joined_run_program']}")
10070
+ original_print(f"Run-Program: {global_vars['joined_run_program']}")
9997
10071
 
9998
- if args.external_generator:
9999
- original_print(f"External-Generator: {decode_if_base64(args.external_generator)}")
10072
+ if args.external_generator:
10073
+ original_print(f"External-Generator: {decode_if_base64(args.external_generator)}")
10000
10074
 
10001
- checkpoint_parameters_filepath = f"{get_current_run_folder()}/state_files/checkpoint.json.parameters.json"
10002
- save_experiment_parameters(checkpoint_parameters_filepath, experiment_parameters)
10075
+ checkpoint_parameters_filepath = f"{get_current_run_folder()}/state_files/checkpoint.json.parameters.json"
10076
+ save_experiment_parameters(checkpoint_parameters_filepath, experiment_parameters)
10003
10077
 
10004
- print_overview_tables(experiment_parameters, experiment_args)
10078
+ print_overview_tables(experiment_parameters, experiment_args)
10005
10079
 
10006
- write_files_and_show_overviews()
10080
+ write_files_and_show_overviews()
10007
10081
 
10008
- for existing_run in args.load_data_from_existing_jobs:
10009
- insert_jobs_from_csv(f"{existing_run}/results.csv".replace("//", "/"), experiment_parameters)
10082
+ for existing_run in args.load_data_from_existing_jobs:
10083
+ insert_jobs_from_csv(f"{existing_run}/results.csv".replace("//", "/"), experiment_parameters)
10010
10084
 
10011
- set_global_generation_strategy()
10085
+ set_global_generation_strategy()
10012
10086
 
10013
- try:
10014
- run_search_with_progress_bar()
10087
+ try:
10088
+ run_search_with_progress_bar()
10015
10089
 
10016
- live_share()
10090
+ live_share()
10017
10091
 
10018
- time.sleep(2)
10019
- except ax.exceptions.core.UnsupportedError:
10020
- pass
10092
+ time.sleep(2)
10093
+ except ax.exceptions.core.UnsupportedError:
10094
+ pass
10021
10095
 
10022
- end_program()
10096
+ end_program()
10097
+ else:
10098
+ print_red("exp_params is None!")
10023
10099
 
10024
10100
  @beartype
10025
10101
  def log_worker_creation() -> None:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: omniopt2
3
- Version: 7334
3
+ Version: 7344
4
4
  Summary: Automatic highly parallelized hyperparameter optimizer based on Ax/Botorch
5
5
  Home-page: https://scads.ai/transfer-2/verfuegbare-software-dienste-en/omniopt/
6
6
  Author: Norman Koch
@@ -3,7 +3,7 @@
3
3
  .general.sh,sha256=uyGMN8xNToQ0v50KoiYxm6jRmgf0orroOaodM_Nuq30,2107
4
4
  .gitignore,sha256=OMaFWOR6wxjAlI85rF3euQcjQFFAl1F34abZkltKnaU,3714
5
5
  .helpers.py,sha256=6uoxzpi8zfvvQy16LpGkIC1OzvDC8TR8luAOX1iW1OM,30679
6
- .omniopt.py,sha256=7LSRsvsb504INyPWHUWaWPJsFRtKLV-_fLKosv7UFXo,405260
6
+ .omniopt.py,sha256=MxdwmZkWb35WRc0wHY_5KyC7fj1FgJVRPU60Dpd6GnM,408178
7
7
  .omniopt_plot_cpu_ram_usage.py,sha256=DbOAmdrbcZtsMnHJgHfeRngjtv6zX5J0axyua_dYezc,3932
8
8
  .omniopt_plot_general.py,sha256=ZERZJkvVOoJhi7SszmTF1Iln-_08_0Aki48u3LHUW-k,6809
9
9
  .omniopt_plot_gpu_usage.py,sha256=ojxVicwSoiyl7f3c-6lLuT2EpyPcSJKEcbp75LgDY2k,5107
@@ -26,44 +26,44 @@ omniopt_docker,sha256=LWVUeyvmA5AKqAHiH9jBUkR5uZ6AHMnSy0eET7mK6E4,3602
26
26
  omniopt_evaluate,sha256=9oBh0_ikCuIz_aJQZrN0j39NDiIDYoSvEFmSVIoFjJE,23842
27
27
  omniopt_plot,sha256=Z8ZR10p-ZRSgMeVPO-wVCJ8lk-LQtntjZ9Bk9RifCIs,13360
28
28
  omniopt_share,sha256=PiO7Vt-dL5aC2uAZZZEYlNbyGjkyMUSeWVoiIURjr3k,13999
29
- pyproject.toml,sha256=mQ1cJbL2e6WCHQ1f2di8kHSUgack5Rz07su4zarYmwU,397
29
+ pyproject.toml,sha256=Reu9Z2mhBTi8pgrCqit_2TDwKTpK1DKPZlp440ATiPE,397
30
30
  requirements.txt,sha256=73KRc-JrFmFO02-Uy_Py88kt6pLDHL6BK0xNWstU_lE,313
31
31
  setup.cfg,sha256=HEc8uu6NpfxG5_AVh5SvXOpEFMNKPPPxgMIAH144vT4,38
32
32
  test_requirements.txt,sha256=hHblJ3DNG2Va76G-dV7ugDhKCc6ZmkpgiUVC-g1exsQ,494
33
- omniopt2-7334.data/data/bin/.colorfunctions.sh,sha256=xxc08V3Fh_0Je20fkJMRO14u9VCSvMyOiMaDfioEyCY,1098
34
- omniopt2-7334.data/data/bin/.general.sh,sha256=uyGMN8xNToQ0v50KoiYxm6jRmgf0orroOaodM_Nuq30,2107
35
- omniopt2-7334.data/data/bin/.helpers.py,sha256=6uoxzpi8zfvvQy16LpGkIC1OzvDC8TR8luAOX1iW1OM,30679
36
- omniopt2-7334.data/data/bin/.omniopt.py,sha256=7LSRsvsb504INyPWHUWaWPJsFRtKLV-_fLKosv7UFXo,405260
37
- omniopt2-7334.data/data/bin/.omniopt_plot_cpu_ram_usage.py,sha256=DbOAmdrbcZtsMnHJgHfeRngjtv6zX5J0axyua_dYezc,3932
38
- omniopt2-7334.data/data/bin/.omniopt_plot_general.py,sha256=ZERZJkvVOoJhi7SszmTF1Iln-_08_0Aki48u3LHUW-k,6809
39
- omniopt2-7334.data/data/bin/.omniopt_plot_gpu_usage.py,sha256=ojxVicwSoiyl7f3c-6lLuT2EpyPcSJKEcbp75LgDY2k,5107
40
- omniopt2-7334.data/data/bin/.omniopt_plot_kde.py,sha256=uRLWr72TDKvj3AqJ0O0AvkKZ1ok1O1QpXnbfQQdo0nA,6873
41
- omniopt2-7334.data/data/bin/.omniopt_plot_scatter.py,sha256=-amqmLR_YLCbHImLPh6gwVFv8iiVnXME544XHsRVCuw,8422
42
- omniopt2-7334.data/data/bin/.omniopt_plot_scatter_generation_method.py,sha256=rgKY_w1E516c9UucVaEvaKd8tCnoUq9xg-RrYSDzYEQ,4289
43
- omniopt2-7334.data/data/bin/.omniopt_plot_scatter_hex.py,sha256=w1L5gL6Bc_QudoSJi2lxEVvF17Apjjb3l2T-lXGnsUg,10279
44
- omniopt2-7334.data/data/bin/.omniopt_plot_time_and_exit_code.py,sha256=hC4RFDiJN_UImezFR6M5uVF-QKDqMDpq6R5DIg7dDDc,6463
45
- omniopt2-7334.data/data/bin/.omniopt_plot_trial_index_result.py,sha256=5DmqZAQO_PFmzdap-TIhSMAshRXpOHQacnHAtjwnzN4,4629
46
- omniopt2-7334.data/data/bin/.omniopt_plot_worker.py,sha256=VuluQq4W6KRR5RU08dxmDSFk5mbfDRkRJQFwwcLgAGw,4524
47
- omniopt2-7334.data/data/bin/.random_generator.py,sha256=ezBBUXpez_QaGdpCglMcJ0KZPdQP0XdX5gnLzO1xhwU,2987
48
- omniopt2-7334.data/data/bin/.shellscript_functions,sha256=anHc5T0Lm_BzTZTzEIp7cIICu5zdXj1FKL3LnODmHeE,13610
49
- omniopt2-7334.data/data/bin/.tpe.py,sha256=Yd9s-ixCbWxTd3x0O1M1sok9QfM2mBEfsDwXhx50-Nc,6464
50
- omniopt2-7334.data/data/bin/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
51
- omniopt2-7334.data/data/bin/apt-dependencies.txt,sha256=X5tBB8ZLW9XaFtRh8B7C2pIkSoxNNawqioDr0QZAtuM,149
52
- omniopt2-7334.data/data/bin/omniopt,sha256=WNbAGQOvqlmDPZyT3DrFJEg1Xn-QH07cgnq8n4jdRBc,47798
53
- omniopt2-7334.data/data/bin/omniopt_docker,sha256=LWVUeyvmA5AKqAHiH9jBUkR5uZ6AHMnSy0eET7mK6E4,3602
54
- omniopt2-7334.data/data/bin/omniopt_evaluate,sha256=9oBh0_ikCuIz_aJQZrN0j39NDiIDYoSvEFmSVIoFjJE,23842
55
- omniopt2-7334.data/data/bin/omniopt_plot,sha256=Z8ZR10p-ZRSgMeVPO-wVCJ8lk-LQtntjZ9Bk9RifCIs,13360
56
- omniopt2-7334.data/data/bin/omniopt_share,sha256=PiO7Vt-dL5aC2uAZZZEYlNbyGjkyMUSeWVoiIURjr3k,13999
57
- omniopt2-7334.data/data/bin/requirements.txt,sha256=73KRc-JrFmFO02-Uy_Py88kt6pLDHL6BK0xNWstU_lE,313
58
- omniopt2-7334.data/data/bin/setup.py,sha256=g3uEqJHXhggXwgLYoxOjsXg9Z6IV1ubh-Og59AZ264Q,4648
59
- omniopt2-7334.data/data/bin/test_requirements.txt,sha256=hHblJ3DNG2Va76G-dV7ugDhKCc6ZmkpgiUVC-g1exsQ,494
60
- omniopt2-7334.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
61
- omniopt2.egg-info/PKG-INFO,sha256=zgn9Fkbo2D79dH9Jm0Ms-8VgIHNuXS-jizJp-cdrYGk,5902
33
+ omniopt2-7344.data/data/bin/.colorfunctions.sh,sha256=xxc08V3Fh_0Je20fkJMRO14u9VCSvMyOiMaDfioEyCY,1098
34
+ omniopt2-7344.data/data/bin/.general.sh,sha256=uyGMN8xNToQ0v50KoiYxm6jRmgf0orroOaodM_Nuq30,2107
35
+ omniopt2-7344.data/data/bin/.helpers.py,sha256=6uoxzpi8zfvvQy16LpGkIC1OzvDC8TR8luAOX1iW1OM,30679
36
+ omniopt2-7344.data/data/bin/.omniopt.py,sha256=MxdwmZkWb35WRc0wHY_5KyC7fj1FgJVRPU60Dpd6GnM,408178
37
+ omniopt2-7344.data/data/bin/.omniopt_plot_cpu_ram_usage.py,sha256=DbOAmdrbcZtsMnHJgHfeRngjtv6zX5J0axyua_dYezc,3932
38
+ omniopt2-7344.data/data/bin/.omniopt_plot_general.py,sha256=ZERZJkvVOoJhi7SszmTF1Iln-_08_0Aki48u3LHUW-k,6809
39
+ omniopt2-7344.data/data/bin/.omniopt_plot_gpu_usage.py,sha256=ojxVicwSoiyl7f3c-6lLuT2EpyPcSJKEcbp75LgDY2k,5107
40
+ omniopt2-7344.data/data/bin/.omniopt_plot_kde.py,sha256=uRLWr72TDKvj3AqJ0O0AvkKZ1ok1O1QpXnbfQQdo0nA,6873
41
+ omniopt2-7344.data/data/bin/.omniopt_plot_scatter.py,sha256=-amqmLR_YLCbHImLPh6gwVFv8iiVnXME544XHsRVCuw,8422
42
+ omniopt2-7344.data/data/bin/.omniopt_plot_scatter_generation_method.py,sha256=rgKY_w1E516c9UucVaEvaKd8tCnoUq9xg-RrYSDzYEQ,4289
43
+ omniopt2-7344.data/data/bin/.omniopt_plot_scatter_hex.py,sha256=w1L5gL6Bc_QudoSJi2lxEVvF17Apjjb3l2T-lXGnsUg,10279
44
+ omniopt2-7344.data/data/bin/.omniopt_plot_time_and_exit_code.py,sha256=hC4RFDiJN_UImezFR6M5uVF-QKDqMDpq6R5DIg7dDDc,6463
45
+ omniopt2-7344.data/data/bin/.omniopt_plot_trial_index_result.py,sha256=5DmqZAQO_PFmzdap-TIhSMAshRXpOHQacnHAtjwnzN4,4629
46
+ omniopt2-7344.data/data/bin/.omniopt_plot_worker.py,sha256=VuluQq4W6KRR5RU08dxmDSFk5mbfDRkRJQFwwcLgAGw,4524
47
+ omniopt2-7344.data/data/bin/.random_generator.py,sha256=ezBBUXpez_QaGdpCglMcJ0KZPdQP0XdX5gnLzO1xhwU,2987
48
+ omniopt2-7344.data/data/bin/.shellscript_functions,sha256=anHc5T0Lm_BzTZTzEIp7cIICu5zdXj1FKL3LnODmHeE,13610
49
+ omniopt2-7344.data/data/bin/.tpe.py,sha256=Yd9s-ixCbWxTd3x0O1M1sok9QfM2mBEfsDwXhx50-Nc,6464
50
+ omniopt2-7344.data/data/bin/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
51
+ omniopt2-7344.data/data/bin/apt-dependencies.txt,sha256=X5tBB8ZLW9XaFtRh8B7C2pIkSoxNNawqioDr0QZAtuM,149
52
+ omniopt2-7344.data/data/bin/omniopt,sha256=WNbAGQOvqlmDPZyT3DrFJEg1Xn-QH07cgnq8n4jdRBc,47798
53
+ omniopt2-7344.data/data/bin/omniopt_docker,sha256=LWVUeyvmA5AKqAHiH9jBUkR5uZ6AHMnSy0eET7mK6E4,3602
54
+ omniopt2-7344.data/data/bin/omniopt_evaluate,sha256=9oBh0_ikCuIz_aJQZrN0j39NDiIDYoSvEFmSVIoFjJE,23842
55
+ omniopt2-7344.data/data/bin/omniopt_plot,sha256=Z8ZR10p-ZRSgMeVPO-wVCJ8lk-LQtntjZ9Bk9RifCIs,13360
56
+ omniopt2-7344.data/data/bin/omniopt_share,sha256=PiO7Vt-dL5aC2uAZZZEYlNbyGjkyMUSeWVoiIURjr3k,13999
57
+ omniopt2-7344.data/data/bin/requirements.txt,sha256=73KRc-JrFmFO02-Uy_Py88kt6pLDHL6BK0xNWstU_lE,313
58
+ omniopt2-7344.data/data/bin/setup.py,sha256=g3uEqJHXhggXwgLYoxOjsXg9Z6IV1ubh-Og59AZ264Q,4648
59
+ omniopt2-7344.data/data/bin/test_requirements.txt,sha256=hHblJ3DNG2Va76G-dV7ugDhKCc6ZmkpgiUVC-g1exsQ,494
60
+ omniopt2-7344.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
61
+ omniopt2.egg-info/PKG-INFO,sha256=zwqKJdjBmkaH_RCBRKOcC4RKqmi26yYqVJ2Qbc5sO5Q,5902
62
62
  omniopt2.egg-info/SOURCES.txt,sha256=N-HtSaaqFRsd4XqAfeWVSp__3I-sw0d7cknJgyewRwQ,778
63
63
  omniopt2.egg-info/dependency_links.txt,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
64
64
  omniopt2.egg-info/requires.txt,sha256=zqX3ukwAugAeeTE49b6azubs1Gx8T-8D_fJEsKl_cBY,807
65
65
  omniopt2.egg-info/top_level.txt,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
66
- omniopt2-7334.dist-info/METADATA,sha256=zgn9Fkbo2D79dH9Jm0Ms-8VgIHNuXS-jizJp-cdrYGk,5902
67
- omniopt2-7334.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
68
- omniopt2-7334.dist-info/top_level.txt,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
69
- omniopt2-7334.dist-info/RECORD,,
66
+ omniopt2-7344.dist-info/METADATA,sha256=zwqKJdjBmkaH_RCBRKOcC4RKqmi26yYqVJ2Qbc5sO5Q,5902
67
+ omniopt2-7344.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
68
+ omniopt2-7344.dist-info/top_level.txt,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
69
+ omniopt2-7344.dist-info/RECORD,,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: omniopt2
3
- Version: 7334
3
+ Version: 7344
4
4
  Summary: Automatic highly parallelized hyperparameter optimizer based on Ax/Botorch
5
5
  Home-page: https://scads.ai/transfer-2/verfuegbare-software-dienste-en/omniopt/
6
6
  Author: Norman Koch
pyproject.toml CHANGED
@@ -5,7 +5,7 @@ authors = [
5
5
  {email = "norman.koch@tu-dresden.de"},
6
6
  {name = "Norman Koch"}
7
7
  ]
8
- version = "7334"
8
+ version = "7344"
9
9
 
10
10
  readme = "README.md"
11
11
  dynamic = ["dependencies"]