For MCMC, the $output()
method returns the stdout and stderr
of all chains as a list of character vectors if id=NULL
. If the id
argument is specified it instead pretty prints the console output for a
single chain.
For optimization and variational inference $output()
just pretty prints
the console output.
output(id = NULL)
(integer) The chain id. Ignored if the model was not fit using MCMC.
# \dontrun{
fit_mcmc <- cmdstanr_example("logistic", method = "sample")
fit_mcmc$output(1)
#>
#> method = sample (Default)
#> sample
#> num_samples = 1000 (Default)
#> num_warmup = 1000 (Default)
#> save_warmup = false (Default)
#> thin = 1 (Default)
#> adapt
#> engaged = true (Default)
#> gamma = 0.05 (Default)
#> delta = 0.8 (Default)
#> kappa = 0.75 (Default)
#> t0 = 10 (Default)
#> init_buffer = 75 (Default)
#> term_buffer = 50 (Default)
#> window = 25 (Default)
#> save_metric = false (Default)
#> algorithm = hmc (Default)
#> hmc
#> engine = nuts (Default)
#> nuts
#> max_depth = 10 (Default)
#> metric = diag_e (Default)
#> metric_file = (Default)
#> stepsize = 1 (Default)
#> stepsize_jitter = 0 (Default)
#> num_chains = 1 (Default)
#> id = 1 (Default)
#> data
#> file = /private/var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpBGNQRs/temp_libpath45223306cea5/cmdstanr/logistic.data.json
#> init = 2 (Default)
#> random
#> seed = 1162623978
#> output
#> file = /var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpiACQ3q/logistic-202407021538-1-35ac7c.csv
#> diagnostic_file = (Default)
#> refresh = 100 (Default)
#> sig_figs = -1 (Default)
#> profile_file = /var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpiACQ3q/logistic-profile-202407021538-1-88cb05.csv
#> save_cmdstan_config = false (Default)
#> num_threads = 1 (Default)
#>
#>
#> Gradient evaluation took 5.1e-05 seconds
#> 1000 transitions using 10 leapfrog steps per transition would take 0.51 seconds.
#> Adjust your expectations accordingly!
#>
#>
#> Iteration: 1 / 2000 [ 0%] (Warmup)
#> Iteration: 100 / 2000 [ 5%] (Warmup)
#> Iteration: 200 / 2000 [ 10%] (Warmup)
#> Iteration: 300 / 2000 [ 15%] (Warmup)
#> Iteration: 400 / 2000 [ 20%] (Warmup)
#> Iteration: 500 / 2000 [ 25%] (Warmup)
#> Iteration: 600 / 2000 [ 30%] (Warmup)
#> Iteration: 700 / 2000 [ 35%] (Warmup)
#> Iteration: 800 / 2000 [ 40%] (Warmup)
#> Iteration: 900 / 2000 [ 45%] (Warmup)
#> Iteration: 1000 / 2000 [ 50%] (Warmup)
#> Iteration: 1001 / 2000 [ 50%] (Sampling)
#> Iteration: 1100 / 2000 [ 55%] (Sampling)
#> Iteration: 1200 / 2000 [ 60%] (Sampling)
#> Iteration: 1300 / 2000 [ 65%] (Sampling)
#> Iteration: 1400 / 2000 [ 70%] (Sampling)
#> Iteration: 1500 / 2000 [ 75%] (Sampling)
#> Iteration: 1600 / 2000 [ 80%] (Sampling)
#> Iteration: 1700 / 2000 [ 85%] (Sampling)
#> Iteration: 1800 / 2000 [ 90%] (Sampling)
#> Iteration: 1900 / 2000 [ 95%] (Sampling)
#> Iteration: 2000 / 2000 [100%] (Sampling)
#>
#> Elapsed Time: 0.028 seconds (Warm-up)
#> 0.097 seconds (Sampling)
#> 0.125 seconds (Total)
out <- fit_mcmc$output()
str(out)
#> List of 4
#> $ : chr [1:75] "" "method = sample (Default)" " sample" " num_samples = 1000 (Default)" ...
#> $ : chr [1:75] "" "method = sample (Default)" " sample" " num_samples = 1000 (Default)" ...
#> $ : chr [1:75] "" "method = sample (Default)" " sample" " num_samples = 1000 (Default)" ...
#> $ : chr [1:75] "" "method = sample (Default)" " sample" " num_samples = 1000 (Default)" ...
fit_mle <- cmdstanr_example("logistic", method = "optimize")
fit_mle$output()
#>
#> method = optimize
#> optimize
#> algorithm = lbfgs (Default)
#> lbfgs
#> init_alpha = 0.001 (Default)
#> tol_obj = 1e-12 (Default)
#> tol_rel_obj = 10000 (Default)
#> tol_grad = 1e-08 (Default)
#> tol_rel_grad = 1e+07 (Default)
#> tol_param = 1e-08 (Default)
#> history_size = 5 (Default)
#> jacobian = false (Default)
#> iter = 2000 (Default)
#> save_iterations = false (Default)
#> id = 1 (Default)
#> data
#> file = /private/var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpBGNQRs/temp_libpath45223306cea5/cmdstanr/logistic.data.json
#> init = 2 (Default)
#> random
#> seed = 212160042
#> output
#> file = /var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpiACQ3q/logistic-202407021538-1-18b979.csv
#> diagnostic_file = (Default)
#> refresh = 100 (Default)
#> sig_figs = -1 (Default)
#> profile_file = /var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpiACQ3q/logistic-profile-202407021538-1-3c00bf.csv
#> save_cmdstan_config = false (Default)
#> num_threads = 1 (Default)
#>
#> Initial log joint probability = -125.672
#> Iter log prob ||dx|| ||grad|| alpha alpha0 # evals Notes
#> 7 -63.9218 0.000372447 0.00126853 1 1 10
#> Optimization terminated normally:
#> Convergence detected: relative gradient magnitude is below tolerance
fit_vb <- cmdstanr_example("logistic", method = "variational")
fit_vb$output()
#>
#> method = variational
#> variational
#> algorithm = meanfield (Default)
#> meanfield
#> iter = 10000 (Default)
#> grad_samples = 1 (Default)
#> elbo_samples = 100 (Default)
#> eta = 1 (Default)
#> adapt
#> engaged = true (Default)
#> iter = 50 (Default)
#> tol_rel_obj = 0.01 (Default)
#> eval_elbo = 100 (Default)
#> output_samples = 1000 (Default)
#> id = 1 (Default)
#> data
#> file = /private/var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpBGNQRs/temp_libpath45223306cea5/cmdstanr/logistic.data.json
#> init = 2 (Default)
#> random
#> seed = 490142728
#> output
#> file = /var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpiACQ3q/logistic-202407021538-1-81868f.csv
#> diagnostic_file = (Default)
#> refresh = 100 (Default)
#> sig_figs = -1 (Default)
#> profile_file = /var/folders/s0/zfzm55px2nd2v__zlw5xfj2h0000gn/T/RtmpiACQ3q/logistic-profile-202407021538-1-385cb7.csv
#> save_cmdstan_config = false (Default)
#> num_threads = 1 (Default)
#>
#> ------------------------------------------------------------
#> EXPERIMENTAL ALGORITHM:
#> This procedure has not been thoroughly tested and may be unstable
#> or buggy. The interface is subject to change.
#> ------------------------------------------------------------
#>
#>
#>
#> Gradient evaluation took 2.5e-05 seconds
#> 1000 transitions using 10 leapfrog steps per transition would take 0.25 seconds.
#> Adjust your expectations accordingly!
#>
#>
#> Begin eta adaptation.
#> Iteration: 1 / 250 [ 0%] (Adaptation)
#> Iteration: 50 / 250 [ 20%] (Adaptation)
#> Iteration: 100 / 250 [ 40%] (Adaptation)
#> Iteration: 150 / 250 [ 60%] (Adaptation)
#> Iteration: 200 / 250 [ 80%] (Adaptation)
#> Success! Found best value [eta = 1] earlier than expected.
#>
#> Begin stochastic gradient ascent.
#> iter ELBO delta_ELBO_mean delta_ELBO_med notes
#> 100 -66.510 1.000 1.000
#> 200 -66.168 0.503 1.000
#> 300 -66.153 0.335 0.005 MEDIAN ELBO CONVERGED
#>
#> Drawing a sample of size 1000 from the approximate posterior...
#> COMPLETED.
# }