Any way to get bayesopt current iteration number in the objective function?

4 次查看(过去 30 天)
So in my objective function, results are saved to the drive on every iteration. Right now I am using the tempname() function to create non-conflicting filenames. Because I am using parallel optimization, there is no easy way to match the files to the iteration number and thus to the results.
In the single threaded case I could just use a global variable or even just sort the files by date and time. But in parallel, it is unclear which thread is excuting which part first and this could lead to the file creation/modification times not matching the order of iterations.
The easiest solution would be to base the filename on the iteration number, but I haven't found a way of accessing this information in the objective function.

回答(1 个)

Atharva
Atharva 2023-8-8
Hi Nbay,
When using parallel optimization in MATLAB, you can generate filenames based on the iteration number by incorporating the getCurrentTask function. This function retrieves the current task's ID, which can be used to differentiate filenames across parallel workers.
I hope this helps.

类别

Help CenterFile Exchange 中查找有关 Model Building and Assessment 的更多信息

产品


版本

R2022a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by