Skip to contents

For MCMC and standalone generated quantities, 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, Laplace approximation, variational inference, and Pathfinder, $output() just pretty prints the console output.

Usage

output(id = NULL)

Arguments

id

(integer) The chain id. Ignored except for MCMC and standalone generated quantities.

Value

For MCMC and standalone generated quantities with id=NULL, a list of character vectors containing the console output for each chain. In all other cases, NULL invisibly.

Examples

# \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 = /home/runner/work/_temp/Library/cmdstanr/logistic.data.json
#> init = 2 (Default)
#> random
#>   seed = 923159217
#> output
#>   file = /tmp/RtmpwHIm89/logistic-202610151529-01-6e3cb2.csv
#>   diagnostic_file =  (Default)
#>   refresh = 100 (Default)
#>   sig_figs = 8 (Default)
#>   profile_file = /tmp/RtmpwHIm89/logistic-profile-202610151529-01-845722.csv
#>   save_cmdstan_config = false (Default)
#> num_threads = 1 (Default)
#> 
#> 
#> Gradient evaluation took 8e-06 seconds
#> 1000 transitions using 10 leapfrog steps per transition would take 0.08 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.013 seconds (Warm-up)
#>                0.04 seconds (Sampling)
#>                0.053 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_optim <- cmdstanr_example("logistic", method = "optimize")
fit_optim$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 = /home/runner/work/_temp/Library/cmdstanr/logistic.data.json
#> init = 2 (Default)
#> random
#>   seed = 1024131367
#> output
#>   file = /tmp/RtmpwHIm89/logistic-202610151529-01-901311.csv
#>   diagnostic_file =  (Default)
#>   refresh = 100 (Default)
#>   sig_figs = 8 (Default)
#>   profile_file = /tmp/RtmpwHIm89/logistic-profile-202610151529-01-42f5b1.csv
#>   save_cmdstan_config = false (Default)
#> num_threads = 1 (Default)
#> 
#> Initial log joint probability = -119.279
#>     Iter      log prob        ||dx||      ||grad||       alpha      alpha0  # evals  Notes 
#>        8      -63.9218   0.000155384   0.000762918           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 = /home/runner/work/_temp/Library/cmdstanr/logistic.data.json
#> init = 2 (Default)
#> random
#>   seed = 1076341494
#> output
#>   file = /tmp/RtmpwHIm89/logistic-202610151529-01-3e5b69.csv
#>   diagnostic_file =  (Default)
#>   refresh = 100 (Default)
#>   sig_figs = 8 (Default)
#>   profile_file = /tmp/RtmpwHIm89/logistic-profile-202610151529-01-35b39d.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 8e-06 seconds
#> 1000 transitions using 10 leapfrog steps per transition would take 0.08 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.113             1.000            1.000
#>    200          -66.195             0.501            1.000
#>    300          -66.417             0.335            0.003   MEDIAN ELBO CONVERGED
#> 
#> Drawing a sample of size 1000 from the approximate posterior... 
#> COMPLETED.
# }