n_dim, n_particle, nt)) else: model_file = os.path.join(dest, 'train_test_var_%.2f_%.2f_dim_%d_par_%d_test_%d.pkl' % ( var_x, var_comp, n_dim, n_particle, nt)) if not os.path.exists(model_file): # change file extension from pkl to txt for writing log log = os.path.splitext(model_file)[0] + ".txt" eval_log = os.path.splitext(model_file)[0] + "_eval.txt" if os.path.exists(log): os.remove(log) if os.path.exists(eval_log): os.remove(eval_log) if model == 'brescal': _model = PFBayesianRescal(n_dim, var_x=var_x, n_particles=n_particle, compute_score=False, parallel=False, log=log, eval_log=eval_log, dest=model_file, sample_all=True) elif model == 'bcomp_add': _model = PFBayesianCompRescal(n_dim, compositionality='additive', var_x=var_x, var_comp=var_comp, n_particles=n_particle, compute_score=False, log=log, dest=model_file, eval_log=eval_log) elif model == 'bcomp_mul': _model = PFBayesianCompRescal(n_dim, compositionality='multiplicative', var_x=var_x, var_comp=var_comp, n_particles=n_particle, compute_score=False, log=log, dest=model_file, eval_log=eval_log) elif model == 'logit': _model = PFBayesianLogitRescal(n_dim, log=log, dest=model_file, compute_score=False) else: raise Exception('No such model exists %s' % model) seq = _model.fit(T, obs_mask=obs_mask, max_iter=max_iter, test_mask=test_mask)
else: output_file = os.path.join(dest, '%s_%.2f_%d_training_error.pkl' % (model, p, n_dim)) if not os.path.exists(output_file): if model == 'brescal': model_file = os.path.join(dest, 'sRESCAL_varx_%.2f_dim_%d_par_%d_test_%d.pkl' % ( var_x, n_dim, n_particle, nt)) elif model == 'logit': model_file = os.path.join(dest, 'sRESCAL_dim_%d_par_%d_test_%d.pkl' % ( n_dim, n_particle, nt)) else: model_file = os.path.join(dest, 'sRESCAL_var_%.2f_%.2f_dim_%d_par_%d_test_%d.pkl' % ( var_x, var_comp, n_dim, n_particle, nt)) if model == 'brescal': _model = PFBayesianRescal(n_dim, var_x=var_x, n_particles=n_particle, compute_score=False, parallel=False, sample_all=True) elif model == 'bcomp_add': _model = PFBayesianCompRescal(n_dim, compositionality='additive', var_x=var_x, var_comp=var_comp, n_particles=n_particle, compute_score=False) elif model == 'bcomp_mul': _model = PFBayesianCompRescal(n_dim, compositionality='multiplicative', var_x=var_x, var_comp=var_comp, n_particles=n_particle, compute_score=False) elif model == 'logit': _model = PFBayesianLogitRescal(n_dim, compute_score=False, n_particles=n_particle) elif model == 'logit_mul': _model = PFBayesianCompRescal(n_dim, compositionality='logit_mul', n_particles=n_particle, compute_score=False) else: raise Exception('No such model exists %s' % model)