From 4898a66d2ac986eb96081b3c55e15ec5e0b2db3b Mon Sep 17 00:00:00 2001 From: Johannes Pfeifer Date: Sun, 15 May 2016 14:18:28 +0200 Subject: [PATCH] Allow passing of optim option for TaRB --- matlab/check_posterior_sampler_options.m | 5 ++++- matlab/global_initialization.m | 1 + matlab/posterior_sampler.m | 3 +++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/matlab/check_posterior_sampler_options.m b/matlab/check_posterior_sampler_options.m index 7f242fc8e..91005482a 100644 --- a/matlab/check_posterior_sampler_options.m +++ b/matlab/check_posterior_sampler_options.m @@ -126,6 +126,9 @@ if init, case 'mode_compute' posterior_sampler_options.mode_compute=options_list{i,2}; + case 'optim' + posterior_sampler_options.optim_opt=options_list{i,2}; + case 'new_block_probability' if options_list{i,2}<0 || options_list{i,2}>1 error('check_posterior_sampler_options:: The tarb new_block_probability must be between 0 and 1!') @@ -333,7 +336,7 @@ if init, end otherwise - + error('check_posterior_sampler_options:: Unknown posterior_sampling_method option %s ',posterior_sampler_options.posterior_sampling_method); end return diff --git a/matlab/global_initialization.m b/matlab/global_initialization.m index 88b40c165..6493f97bb 100644 --- a/matlab/global_initialization.m +++ b/matlab/global_initialization.m @@ -469,6 +469,7 @@ options_.posterior_sampler_options.tarb.proposal_distribution = 'rand_multivaria options_.posterior_sampler_options.tarb.student_degrees_of_freedom = 3; options_.posterior_sampler_options.tarb.mode_compute=4; options_.posterior_sampler_options.tarb.new_block_probability=0.25; %probability that next parameter belongs to new block +options_.posterior_sampler_options.tarb.optim_opt=''; %probability that next parameter belongs to new block % Slice options_.posterior_sampler_options.slice.proposal_distribution = ''; options_.posterior_sampler_options.slice.rotated=0; diff --git a/matlab/posterior_sampler.m b/matlab/posterior_sampler.m index decea5d32..53b8a2750 100644 --- a/matlab/posterior_sampler.m +++ b/matlab/posterior_sampler.m @@ -117,6 +117,9 @@ localVars = struct('TargetFun', TargetFun, ... if strcmp(sampler_options.posterior_sampling_method,'tailored_random_block_metropolis_hastings'); localVars.options_.silent_optimizer=1; %locally set optimizer to silent mode + if ~isempty(sampler_options.optim_opt) + localVars.options_.optim_opt=sampler_options.optim_opt; %locally set options for optimizer + end end % User doesn't want to use parallel computing, or wants to compute a