testthat::test_that("MCMC Sampling", {
# We will follow other packages such as diffeqr and skip
# Julia related tests on CRAN
testthat::skip_on_cran()
# BayesFluxR_setup(installJulia = FALSE, env_path = ".", nthreads = 3, pkg_check = FALSE)
test_setup(nthreads = 3, pkg_check = FALSE)
y <- rnorm(100)
x <- matrix(rnorm(100), nrow = 1)
net <- Chain(Dense(1, 1))
prior <- prior.gaussian(net, 0.5)
like <- likelihood.feedforward_normal(net, Gamma(2.0, 0.5))
init <- initialise.allsame(Normal(0, 0.5), like, prior)
bnn <- BNN(x, y, like, prior, init)
sampler <- sampler.SGLD(stepsize_a = 1.0)
ch <- mcmc(bnn, 10, 1000, sampler = sampler)
expect_equal(dim(ch$samples)[2], 1000)
expect_equal(dim(ch$samples)[1], BNN.totparams(bnn))
ch2 <- mcmc(bnn, 10, 2000, sampler = sampler, continue_sampling = TRUE)
expect_equal(dim(ch2$samples)[2], 2000)
expect_true(all.equal(ch$samples, ch2$samples[, 1:1000]))
sampler <- sampler.SGLD(stepsize_a = 1.0)
ch <- mcmc(bnn, 10, 1000, sampler = sampler, start_value = rep(10, BNN.totparams(bnn)))
expect_equal(dim(ch$samples)[2], 1000)
expect_equal(dim(ch$samples)[1], BNN.totparams(bnn))
expect_true(ch$samples[1, 1] > 1)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.