diff --git a/tutorials/using-turing-sampler-viz/Manifest.toml b/tutorials/using-turing-sampler-viz/Manifest.toml index ea4ec1254..a63e1c9d0 100644 --- a/tutorials/using-turing-sampler-viz/Manifest.toml +++ b/tutorials/using-turing-sampler-viz/Manifest.toml @@ -124,11 +124,6 @@ git-tree-sha1 = "a3704b8e5170f9339dff4e6cb286ad49464d3646" uuid = "76274a88-744f-5084-9051-94815aaf08c4" version = "0.10.6" -[[deps.BitFlags]] -git-tree-sha1 = "43b1a4a8f797c1cddadf60499a8a077d4af2cd2d" -uuid = "d1d4a3ce-64b1-5f1a-9ba4-7e7e69966f35" -version = "0.1.7" - [[deps.Bzip2_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "19a35467a82e236ff51bc17a3a44b69ef35185a2" @@ -171,12 +166,6 @@ git-tree-sha1 = "64df3da1d2a26f4de23871cd1b6482bb68092bd5" uuid = "aaaa29a8-35af-508c-8bc3-b662a17a0fe5" version = "0.14.3" -[[deps.CodecZlib]] -deps = ["TranscodingStreams", "Zlib_jll"] -git-tree-sha1 = "9c209fb7536406834aa938fb149964b985de6c83" -uuid = "944b1d66-785c-5afd-91f1-9de20f533193" -version = "0.7.1" - [[deps.ColorSchemes]] deps = ["ColorTypes", "ColorVectorSpace", "Colors", "FixedPointNumbers", "Random", "SnoopPrecompile"] git-tree-sha1 = "aa3edc8f8dea6cbfa176ee12f7c2fc82f0608ed3" @@ -331,9 +320,9 @@ version = "0.6.43" [[deps.DocStringExtensions]] deps = ["LibGit2"] -git-tree-sha1 = "2fb1e02f2b635d0845df5d7c167fec4dd739b00d" +git-tree-sha1 = "b19534d1895d702889b219c382a6e18010797f0b" uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" -version = "0.9.3" +version = "0.8.6" [[deps.Downloads]] deps = ["ArgTools", "LibCURL", "NetworkOptions"] @@ -508,10 +497,10 @@ uuid = "42e2da0e-8278-4e71-bc24-59509adca0fe" version = "1.0.2" [[deps.HTTP]] -deps = ["Base64", "CodecZlib", "Dates", "IniFile", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"] -git-tree-sha1 = "37e4657cd56b11abe3d10cd4a1ec5fbdb4180263" +deps = ["Base64", "Dates", "IniFile", "MbedTLS", "Sockets"] +git-tree-sha1 = "c7ec02c4c6a039a98a15f955462cd7aea5df4508" uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" -version = "1.7.4" +version = "0.8.19" [[deps.HarfBuzz_jll]] deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "Graphite2_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg"] @@ -902,12 +891,6 @@ uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" deps = ["Artifacts", "Libdl"] uuid = "05823500-19ac-5b8b-9628-191a04bc5112" -[[deps.OpenSSL]] -deps = ["BitFlags", "Dates", "MozillaCACerts_jll", "OpenSSL_jll", "Sockets"] -git-tree-sha1 = "6503b77492fd7fcb9379bf73cd31035670e3c509" -uuid = "4d8831e6-92b7-49fb-bdf8-b643e874388c" -version = "1.3.3" - [[deps.OpenSSL_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "f6e9dba33f9f2c44e08a020b0caf6903be540004" @@ -1064,10 +1047,10 @@ uuid = "01d81517-befc-4cb6-b9ec-a95719d0359c" version = "0.6.11" [[deps.RecursiveArrayTools]] -deps = ["Adapt", "ArrayInterfaceCore", "ArrayInterfaceStaticArraysCore", "ChainRulesCore", "DocStringExtensions", "FillArrays", "GPUArraysCore", "IteratorInterfaceExtensions", "LinearAlgebra", "RecipesBase", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables", "ZygoteRules"] -git-tree-sha1 = "fcf0962b399f3bc0fa13ae7274db7879c3ef9f1e" +deps = ["Adapt", "ArrayInterfaceCore", "ArrayInterfaceStaticArraysCore", "ChainRulesCore", "DocStringExtensions", "FillArrays", "GPUArraysCore", "IteratorInterfaceExtensions", "LinearAlgebra", "RecipesBase", "StaticArraysCore", "Statistics", "Tables", "ZygoteRules"] +git-tree-sha1 = "a5ce741acddc02f0d4fc6505463ca89697d7fb23" uuid = "731186ca-8d62-57ce-b412-fbd966d074cd" -version = "2.35.0" +version = "2.32.3" [[deps.Reexport]] git-tree-sha1 = "45e428421666073eab6f2da5c9d310d99bb12f9b" @@ -1155,11 +1138,6 @@ git-tree-sha1 = "91eddf657aca81df9ae6ceb20b959ae5653ad1de" uuid = "992d4aef-0814-514b-bc4d-f2e9a6c4116f" version = "1.0.3" -[[deps.SimpleBufferStream]] -git-tree-sha1 = "874e8867b33a00e784c8a7e4b60afe9e037b74e1" -uuid = "777ac1f9-54b0-4bf8-805c-2214025038e7" -version = "1.1.0" - [[deps.SnoopPrecompile]] deps = ["Preferences"] git-tree-sha1 = "e760a70afdcd461cf01a575947738d359234665c" @@ -1251,12 +1229,6 @@ version = "0.6.14" deps = ["Libdl", "LinearAlgebra", "Serialization", "SparseArrays"] uuid = "4607b0f0-06f3-5cda-b6b1-a6196a1729e9" -[[deps.SymbolicIndexingInterface]] -deps = ["DocStringExtensions"] -git-tree-sha1 = "6b764c160547240d868be4e961a5037f47ad7379" -uuid = "2efcf032-c050-4f8e-a9bb-153293bab1f5" -version = "0.2.1" - [[deps.TOML]] deps = ["Dates"] uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76" @@ -1305,12 +1277,6 @@ git-tree-sha1 = "77817887c4b414b9c6914c61273910e3234eb21c" uuid = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" version = "0.2.23" -[[deps.TranscodingStreams]] -deps = ["Random", "Test"] -git-tree-sha1 = "94f38103c984f89cf77c402f2a68dbd870f8165f" -uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" -version = "0.9.11" - [[deps.Transducers]] deps = ["Adapt", "ArgCheck", "BangBang", "Baselet", "CompositionsBase", "DefineSingletons", "Distributed", "InitialValues", "Logging", "Markdown", "MicroCollections", "Requires", "Setfield", "SplittablesBase", "Tables"] git-tree-sha1 = "c42fa452a60f022e9e087823b47e5a5f8adc53d5" @@ -1323,11 +1289,6 @@ git-tree-sha1 = "8a40377bcc4b054ebdc8f680e96cd73a4a6fe2e6" uuid = "fce5fe82-541a-59a6-adf8-730c64b5f9a0" version = "0.22.0" -[[deps.URIs]] -git-tree-sha1 = "ac00576f90d8a259f2c9d823e91d1de3fd44d348" -uuid = "5c2747f8-b7ea-4ff2-ba2e-563bfd36b1d4" -version = "1.4.1" - [[deps.UUIDs]] deps = ["Random", "SHA"] uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" diff --git a/tutorials/using-turing-sampler-viz/Project.toml b/tutorials/using-turing-sampler-viz/Project.toml index f46580060..6f1ffd3ec 100644 --- a/tutorials/using-turing-sampler-viz/Project.toml +++ b/tutorials/using-turing-sampler-viz/Project.toml @@ -1,6 +1,4 @@ [deps] -Bijectors = "76274a88-744f-5084-9051-94815aaf08c4" -DynamicPPL = "366bfd00-2699-11ea-058f-f148b4cae6d8" Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" StatsPlots = "f3b207a7-027a-5e70-b257-86293d7955fd" Turing = "fce5fe82-541a-59a6-adf8-730c64b5f9a0" diff --git a/tutorials/using-turing-sampler-viz/sampler-viz.jmd b/tutorials/using-turing-sampler-viz/sampler-viz.jmd index f61b89770..b86cc839f 100644 --- a/tutorials/using-turing-sampler-viz/sampler-viz.jmd +++ b/tutorials/using-turing-sampler-viz/sampler-viz.jmd @@ -21,9 +21,7 @@ ENV["GKS_ENCODING"] = "utf-8" # Allows the use of unicode characters in Plots.jl using Plots using StatsPlots using Turing -using Bijectors using Random -using DynamicPPL: getlogp, settrans!, getval, reconstruct, vectorize, setval! # Set a seed. Random.seed!(0) @@ -45,25 +43,9 @@ x = [1.5, 2.0, 13.0, 2.1, 0.0] # Set up the model call, sample from the prior. model = gdemo(x) -vi = Turing.VarInfo(model) - -# Convert the variance parameter to the real line before sampling. -# Note: We only have to do this here because we are being very hands-on. -# Turing will handle all of this for you during normal sampling. -dist = InverseGamma(2, 3) -svn = vi.metadata.s².vns[1] -mvn = vi.metadata.m.vns[1] -setval!(vi, vectorize(dist, Bijectors.link(dist, reconstruct(dist, getval(vi, svn)))), svn) -settrans!(vi, true, svn) # Evaluate surface at coordinates. -function evaluate(m1, m2) - spl = Turing.SampleFromPrior() - vi[svn] = [m1] - vi[mvn] = [m2] - model(vi, spl) - return getlogp(vi) -end +evaluate(m1, m2) = logjoint(model, (m=m2, s²=m1)) function plot_sampler(chain; label="") # Extract values from chain. @@ -125,7 +107,7 @@ end; Gibbs sampling tends to exhibit a "jittery" trajectory. The example below combines `HMC` and `PG` sampling to traverse the posterior. ```julia -c = sample(model, Gibbs(HMC(0.01, 5, :s), PG(20, :m)), 1000) +c = sample(model, Gibbs(HMC(0.01, 5, :s²), PG(20, :m)), 1000) plot_sampler(c) ``` @@ -203,4 +185,4 @@ Next, we plot using 50 particles. ```julia c = sample(model, PG(50), 1000) plot_sampler(c) -``` \ No newline at end of file +``` diff --git a/tutorials/using-turing/using-turing.jmd b/tutorials/using-turing/index.jmd similarity index 62% rename from tutorials/using-turing/using-turing.jmd rename to tutorials/using-turing/index.jmd index 2823e35ca..af940d9fa 100644 --- a/tutorials/using-turing/using-turing.jmd +++ b/tutorials/using-turing/index.jmd @@ -7,11 +7,14 @@ weave_options: # Turing Documentation -Welcome to the documentation for Turing. - -Turing is a general-purpose probabilistic programming language for robust, efficient Bayesian inference and decision making. Current features include: +Welcome to the documentation for Turing. Turing is a general-purpose probabilistic programming language for robust, +efficient Bayesian inference and decision making. Current features include: - General-purpose probabilistic programming with an intuitive modelling interface; - Robust, efficient [Hamiltonian Monte Carlo (HMC)](https://github.com/TuringLang/AdvancedHMC.jl) sampling for differentiable posterior distributions; - Particle MCMC sampling for complex posterior distributions involving discrete variables and stochastic control flow; and - - Gibbs sampling combines particle MCMC, HMC and random-walk MH (RWMH) etc. + - Gibbs sampling that combines particle MCMC, HMC and random-walk MH (RWMH) etc. + +```julia + +```