Skip to content

Commit 4494216

Browse files
authored
Updated handling of saveing of optimization results (#151)
1 parent 1d755b1 commit 4494216

3 files changed

Lines changed: 11 additions & 6 deletions

File tree

src/popt/loop/optimize.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ def run_loop(self):
170170
self.msg = 'Optimization stopped due to maximum iterations reached!'
171171
self.optimize_result['message'] = self.msg
172172
else:
173-
if not isinstance(self.msg, str): self.msg = ''
173+
self.msg = 'No further improvement possible, optimization converged!'
174174
self.optimize_result['message'] = self.msg
175175

176176
# Logging some info to screen

src/popt/misc_tools/optim_tools.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -330,6 +330,12 @@ def get_optimize_result(obj):
330330
'nit': obj.iteration, 'nfev': obj.nfev, 'njev': obj.njev})
331331
if hasattr(obj, 'epf') and obj.epf:
332332
save_dict['epf_iteration'] = obj.epf_iteration
333+
if hasattr(obj, 'method') and obj.method:
334+
save_dict['method'] = obj.method
335+
elif 'method' in obj.options:
336+
save_dict['method'] = obj.options['method']
337+
if 'save_folder' in obj.options:
338+
save_dict['save_folder'] = obj.options['save_folder']
333339

334340
if 'savedata' in obj.options:
335341

@@ -354,9 +360,6 @@ def get_optimize_result(obj):
354360
else:
355361
print(f'Cannot save {save_typ}!\n\n')
356362

357-
if 'save_folder' in obj.options:
358-
save_dict['save_folder'] = obj.options['save_folder']
359-
360363
return save_dict
361364

362365

src/popt/update_schemes/linesearch.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,7 @@ def __init__(self, fun, x, jac, method='GD', hess=None, args=(), bounds=None, c
268268
self.p_old = None
269269

270270
# Initial results
271-
self.optimize_result = self.get_intermediate_results()
271+
self.optimize_result = ot.get_optimize_results()
272272
if self.saveit:
273273
ot.save_optimize_results(self.optimize_result)
274274
if self.logger is not None:
@@ -432,7 +432,7 @@ def calc_update(self, iter_resamp=0):
432432
success = True
433433

434434
# Save Results
435-
self.optimize_result = self.get_intermediate_results()
435+
self.optimize_result = ot.get_optimize_result()
436436
if self.saveit:
437437
ot.save_optimize_results(self.optimize_result)
438438

@@ -492,6 +492,8 @@ def calc_update(self, iter_resamp=0):
492492

493493
def get_intermediate_results(self):
494494

495+
# Obsolete: use get_optimize_results in optim_tools
496+
495497
# Define default results
496498
results = {
497499
'fun': self._fk,

0 commit comments

Comments
 (0)