From 43cfe65aaea011a8c1d76fd3e824fe422d972a67 Mon Sep 17 00:00:00 2001 From: jaimerz Date: Thu, 9 Mar 2023 10:38:57 -0800 Subject: [PATCH 01/27] Lab --- Lab.ipynb | 467 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 467 insertions(+) create mode 100644 Lab.ipynb diff --git a/Lab.ipynb b/Lab.ipynb new file mode 100644 index 00000000..ee38db5b --- /dev/null +++ b/Lab.ipynb @@ -0,0 +1,467 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "91129cb1", + "metadata": {}, + "source": [ + "# No-glue-code" + ] + }, + { + "cell_type": "markdown", + "id": "97121235", + "metadata": {}, + "source": [ + "## Model" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "baed58e3", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling Turing [fce5fe82-541a-59a6-adf8-730c64b5f9a0]\n" + ] + } + ], + "source": [ + "# The statistical inference frame-work we will use\n", + "using Turing\n", + "using AdvancedHMC\n", + "using LogDensityProblems\n", + "using LogDensityProblemsAD\n", + "using DynamicPPL\n", + "using ForwardDiff\n", + "# Some data management libs.\n", + "using CSV\n", + "using NPZ\n", + "using YAML\n", + "#Plotting\n", + "using Plots\n", + "# Some Lin. Alg.\n", + "using LinearAlgebra\n", + "using Interpolations" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "a7d6f81c", + "metadata": {}, + "outputs": [], + "source": [ + "fs8_zs = [0.38, 0.51, 0.61, 1.48, 0.44, 0.6, 0.73, 0.6, 0.86, 0.067, 1.4]\n", + "fs8_data = [0.49749, 0.457523, 0.436148, 0.462, 0.413, 0.39, 0.437, 0.55, 0.4, 0.423, 0.482]\n", + "fs8_cov = [0.00203355 0.000811829 0.000264615 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0;\n", + " 0.000811829 0.00142289 0.000662824 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0; \n", + " 0.000264615 0.000662824 0.00118576 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0;\n", + " 0.0 0.0 0.0 0.002025 0.0 0.0 0.0 0.0 0.0 0.0 0.0;\n", + " 0.0 0.0 0.0 0.0 0.0064 0.00257 0.0 0.0 0.0 0.0 0.0;\n", + " 0.0 0.0 0.0 0.0 0.00257 0.003969 0.00254 0.0 0.0 0.0 0.0;\n", + " 0.0 0.0 0.0 0.0 0.0 0.00254 0.005184 0.0 0.0 0.0 0.0;\n", + " 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0144 0.0 0.0 0.0;\n", + " 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0121 0.0 0.0; \n", + " 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.003025 0.0;\n", + " 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.013456000000000001];" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "1359a630", + "metadata": { + "code_folding": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "make_fs8 (generic function with 1 method)" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "function make_fs8(Ωm, σ8; Ωr=8.24*10^-5)\n", + " # ODE solution for growth factor\n", + " x_Dz = LinRange(0, log(1+1100), 300)\n", + " dx_Dz = x_Dz[2]-x_Dz[1]\n", + " z_Dz = @.(exp(x_Dz) - 1)\n", + " a_Dz = @.(1/(1+z_Dz))\n", + " aa = reverse(a_Dz)\n", + " e = @.(sqrt.(abs(Ωm)*(1+z_Dz)^3+Ωr*(1+z_Dz)^4+(1-Ωm-Ωr)))\n", + " ee = reverse(e)\n", + "\n", + " dd = zeros(typeof(Ωm), 300)\n", + " yy = zeros(typeof(Ωm), 300)\n", + " dd[1] = aa[1]\n", + " yy[1] = aa[1]^3*ee[end]\n", + "\n", + " for i in 1:(300-1)\n", + " A0 = -1.5 * Ωm / (aa[i]*ee[i])\n", + " B0 = -1. / (aa[i]^2*ee[i])\n", + " A1 = -1.5 * Ωm / (aa[i+1]*ee[i+1])\n", + " B1 = -1. / (aa[i+1]^2*ee[i+1])\n", + " yy[i+1] = (1+0.5*dx_Dz^2*A0*B0)*yy[i] + 0.5*(A0+A1)*dx_Dz*dd[i]\n", + " dd[i+1] = 0.5*(B0+B1)*dx_Dz*yy[i] + (1+0.5*dx_Dz^2*A0*B0)*dd[i]\n", + " end\n", + "\n", + " y = reverse(yy)\n", + " d = reverse(dd)\n", + "\n", + " Dzi = linear_interpolation(z_Dz, d./d[1], extrapolation_bc=Line())\n", + " fs8zi = linear_interpolation(z_Dz, -σ8 .* y./ (a_Dz.^2 .*e.*d[1]),\n", + " extrapolation_bc=Line())\n", + " return fs8zi\n", + "end" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "8005e277", + "metadata": {}, + "outputs": [], + "source": [ + "@model function model(data; cov = fs8_cov) \n", + " # Define priors\n", + " #KiDS priors\n", + " Ωm ~ Uniform(0.1, 0.9)\n", + " σ8 ~ Uniform(0.4, 1.2)\n", + " fs8_itp = make_fs8(Ωm, σ8)\n", + " theory = fs8_itp(fs8_zs)\n", + " data ~ MvNormal(theory, cov)\n", + "end;" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "1eebe796", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Model{typeof(model), (:data, :cov), (:cov,), (), Tuple{Vector{Float64}, Matrix{Float64}}, Tuple{Matrix{Float64}}, DefaultContext}(model, (data = [0.49749, 0.457523, 0.436148, 0.462, 0.413, 0.39, 0.437, 0.55, 0.4, 0.423, 0.482], cov = [0.00203355 0.000811829 … 0.0 0.0; 0.000811829 0.00142289 … 0.0 0.0; … ; 0.0 0.0 … 0.003025 0.0; 0.0 0.0 … 0.0 0.013456000000000001]), (cov = [0.00203355 0.000811829 … 0.0 0.0; 0.000811829 0.00142289 … 0.0 0.0; … ; 0.0 0.0 … 0.003025 0.0; 0.0 0.0 … 0.0 0.013456000000000001],), DefaultContext())" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "stat_model = model(fs8_data)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "96aa5549", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Turing.Inference.NUTS{Turing.Essential.ForwardDiffAD{0}, (), DiagEuclideanMetric}(1000, 0.65, 10, 1000.0, 0.0)" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "adaptation = 1000\n", + "TAP = 0.65\n", + "alg = Turing.NUTS(adaptation, TAP)" + ] + }, + { + "cell_type": "markdown", + "id": "e1cb8e03", + "metadata": {}, + "source": [ + "## Getting MAP and Hessian" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "56874cd3", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "maximum_a_posteriori (generic function with 1 method)" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "using Optim\n", + "\n", + "function Xi2(params; model=stat_model)\n", + " Ωm, σ8 = params\n", + " return loglikelihood(model, (Ωm=Ωm, σ8=σ8))\n", + "end;\n", + " \n", + "function maximum_a_posteriori(model, lower_bound, upper_bound)\n", + " start_value = (upper_bound .+ lower_bound) ./ 2 \n", + " opt = optimize((v)->-Xi2(v), lower_bound, upper_bound, start_value, Fminbox())\n", + " return Optim.minimizer(opt)\n", + "end" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "f48c433c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "2-element Vector{Float64}:\n", + " 0.21256856797862178\n", + " 0.8763540154601552" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "MAP = maximum_a_posteriori(stat_model, [0.2, 0.4], [0.6, 1.2])" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "01a11feb", + "metadata": {}, + "outputs": [], + "source": [ + "# Get the Hessian\n", + "hess = ForwardDiff.hessian(Xi2, MAP)\n", + "inv_hess = inv(hess);" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "9c6ca1e4", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "2×2 Matrix{Float64}:\n", + " 0.00383693 -0.00328434\n", + " -0.00328434 0.0042819" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Turn the Hessian into more of a covariance Matrix\n", + "w, v = eigen(inv_hess)\n", + "hess_cov = v * (diagm(abs.(w)) * v')\n", + "hess_cov = tril(hess_cov) + triu(hess_cov', 1)\n", + "hess_cov = Hermitian(hess_cov)\n", + "hess_cov = convert(Matrix{Float64}, hess_cov)" + ] + }, + { + "cell_type": "markdown", + "id": "10dfa4cc", + "metadata": {}, + "source": [ + "## Sampling" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "a79c2b35", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Sampler{Turing.Inference.NUTS{Turing.Essential.ForwardDiffAD{0}, (), DiagEuclideanMetric}}(Turing.Inference.NUTS{Turing.Essential.ForwardDiffAD{0}, (), DiagEuclideanMetric}(1000, 0.65, 10, 1000.0, 0.0), DynamicPPL.Selector(0x000005c4fc804c8d, :default, false))" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "spl = Sampler(alg, stat_model)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "087b18a8", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "TypedVarInfo{NamedTuple{(:Ωm, :σ8), Tuple{DynamicPPL.Metadata{Dict{VarName{:Ωm, Setfield.IdentityLens}, Int64}, Vector{Uniform{Float64}}, Vector{VarName{:Ωm, Setfield.IdentityLens}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}, DynamicPPL.Metadata{Dict{VarName{:σ8, Setfield.IdentityLens}, Int64}, Vector{Uniform{Float64}}, Vector{VarName{:σ8, Setfield.IdentityLens}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}}}, Float64}((Ωm = DynamicPPL.Metadata{Dict{VarName{:Ωm, Setfield.IdentityLens}, Int64}, Vector{Uniform{Float64}}, Vector{VarName{:Ωm, Setfield.IdentityLens}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}(Dict(Ωm => 1), [Ωm], UnitRange{Int64}[1:1], [0.24189169385043288], Uniform{Float64}[Uniform{Float64}(a=0.1, b=0.9)], Set{DynamicPPL.Selector}[Set()], [0], Dict{String, BitVector}(\"del\" => [0], \"trans\" => [0])), σ8 = DynamicPPL.Metadata{Dict{VarName{:σ8, Setfield.IdentityLens}, Int64}, Vector{Uniform{Float64}}, Vector{VarName{:σ8, Setfield.IdentityLens}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}(Dict(σ8 => 1), [σ8], UnitRange{Int64}[1:1], [1.072723393210094], Uniform{Float64}[Uniform{Float64}(a=0.4, b=1.2)], Set{DynamicPPL.Selector}[Set()], [0], Dict{String, BitVector}(\"del\" => [0], \"trans\" => [0]))), Base.RefValue{Float64}(0.6820075794802404), Base.RefValue{Int64}(1))" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "context = stat_model.context\n", + "varinfo = DynamicPPL.VarInfo(stat_model, context)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "82938e27", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Hamiltonian(metric=DenseEuclideanMetric(diag=[0.003836928914103148, 0.00 ...]), kinetic=GaussianKinetic())" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ℓ = LogDensityProblemsAD.ADgradient(DynamicPPL.LogDensityFunction(varinfo, stat_model, context))\n", + "lπ = Base.Fix1(LogDensityProblems.logdensity, ℓ)\n", + "∂lπ∂θ(x) = LogDensityProblems.logdensity_and_gradient(ℓ, x)\n", + "metric = DenseEuclideanMetric(hess_cov)\n", + "hamiltonian = AdvancedHMC.Hamiltonian(metric, lπ, ∂lπ∂θ)" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "9a554c93", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mProgressMeter by default refresh meters with additional information in IJulia via `IJulia.clear_output`, which clears all outputs in the cell. \n", + "\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m - To prevent this behaviour, do `ProgressMeter.ijulia_behavior(:append)`. \n", + "\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m - To disable this warning message, do `ProgressMeter.ijulia_behavior(:clear)`.\n", + "\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ ProgressMeter ~/.julia/packages/ProgressMeter/sN2xr/src/ProgressMeter.jl:618\u001b[39m\n", + "\u001b[32mSampling 100%|███████████████████████████████| Time: 0:00:01\u001b[39m\n", + "\u001b[34m iterations: 2000\u001b[39m\n", + "\u001b[34m n_steps: 3\u001b[39m\n", + "\u001b[34m is_accept: true\u001b[39m\n", + "\u001b[34m acceptance_rate: 1.0\u001b[39m\n", + "\u001b[34m log_density: 17.729748960723036\u001b[39m\n", + "\u001b[34m hamiltonian_energy: -17.289392697793396\u001b[39m\n", + "\u001b[34m hamiltonian_energy_error: -0.051060919913108904\u001b[39m\n", + "\u001b[34m max_hamiltonian_energy_error: -0.06881331813539404\u001b[39m\n", + "\u001b[34m tree_depth: 2\u001b[39m\n", + "\u001b[34m numerical_error: false\u001b[39m\n", + "\u001b[34m step_size: 0.6487150772760925\u001b[39m\n", + "\u001b[34m nom_step_size: 0.6487150772760925\u001b[39m\n", + "\u001b[34m is_adapt: false\u001b[39m\n", + "\u001b[34m mass_matrix: DenseEuclideanMetric(diag=[0.004834262741463085, 0.00 ...])\u001b[39m\n", + "\u001b[36m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mFinished 2000 sampling steps for 1 chains in 1.989433731 (s)\n", + "\u001b[36m\u001b[1m│ \u001b[22m\u001b[39m h = Hamiltonian(metric=DenseEuclideanMetric(diag=[0.004834262741463085, 0.00 ...]), kinetic=GaussianKinetic())\n", + "\u001b[36m\u001b[1m│ \u001b[22m\u001b[39m κ = HMCKernel{AdvancedHMC.FullMomentumRefreshment, Trajectory{MultinomialTS, Leapfrog{Float64}, GeneralisedNoUTurn{Float64}}}(AdvancedHMC.FullMomentumRefreshment(), Trajectory{MultinomialTS}(integrator=Leapfrog(ϵ=0.649), tc=GeneralisedNoUTurn{Float64}(10, 1000.0)))\n", + "\u001b[36m\u001b[1m│ \u001b[22m\u001b[39m EBFMI_est = 1.1967632126213832\n", + "\u001b[36m\u001b[1m└ \u001b[22m\u001b[39m average_acceptance_rate = 0.8302521245860884\n" + ] + }, + { + "data": { + "text/plain": [ + "([[0.24217072449163063, 0.8815235005982114], [0.24217072449163063, 0.8815235005982114], [0.1964040900666372, 0.8682642940757254], [0.23220726706788417, 0.8594888321891413], [0.23220726706788417, 0.8594888321891413], [0.30600748508356646, 0.8187262839439398], [0.24638113811106768, 0.8264874921491668], [0.17930813221283726, 0.9012387514591719], [0.257747112897827, 0.8659528543802886], [0.2219106258796527, 0.872052499881699] … [0.2155585668611011, 0.9387916846186595], [0.30467165855486844, 0.8016599731719438], [0.19238795508040302, 0.8454240746568259], [0.23402240097427798, 0.7968218235978053], [0.2694905067075098, 0.9217373336532368], [0.1882021323995838, 0.8599530394625028], [0.23797097860528293, 0.8813057277500905], [0.2943973036254594, 0.8006200200955638], [0.15372119929153283, 0.9463410337224535], [0.2267280941717041, 0.8903478326313119]], NamedTuple[(n_steps = 7, is_accept = true, acceptance_rate = 0.4004465309788565, log_density = 17.597878418351858, hamiltonian_energy = -17.584306152172577, hamiltonian_energy_error = 0.22942376141385168, max_hamiltonian_energy_error = Inf, tree_depth = 2, numerical_error = true, step_size = 1.6, nom_step_size = 1.6, is_adapt = true), (n_steps = 1, is_accept = true, acceptance_rate = 0.0, log_density = 17.597878418351858, hamiltonian_energy = -16.558191490290692, hamiltonian_energy_error = 0.0, max_hamiltonian_energy_error = Inf, tree_depth = 0, numerical_error = true, step_size = 7.737880937824665, nom_step_size = 7.737880937824665, is_adapt = true), (n_steps = 3, is_accept = true, acceptance_rate = 1.0, log_density = 17.774639366407868, hamiltonian_energy = -17.52695167820066, hamiltonian_energy_error = -0.10403474654004086, max_hamiltonian_energy_error = -0.10403474654004086, tree_depth = 2, numerical_error = false, step_size = 0.9466877942295883, nom_step_size = 0.9466877942295883, is_adapt = true), (n_steps = 3, is_accept = true, acceptance_rate = 0.9565585456951909, log_density = 17.93534198384408, hamiltonian_energy = -17.561725761293022, hamiltonian_energy_error = -0.05821247679514485, max_hamiltonian_energy_error = 0.13963496778836415, tree_depth = 2, numerical_error = false, step_size = 1.1152571881739461, nom_step_size = 1.1152571881739461, is_adapt = true), (n_steps = 1, is_accept = true, acceptance_rate = 0.0, log_density = 17.93534198384408, hamiltonian_energy = -16.9360350855726, hamiltonian_energy_error = 0.0, max_hamiltonian_energy_error = Inf, tree_depth = 0, numerical_error = true, step_size = 1.4391199752169883, nom_step_size = 1.4391199752169883, is_adapt = true), (n_steps = 23, is_accept = true, acceptance_rate = 0.998307688034895, log_density = 17.18288847025175, hamiltonian_energy = -16.79486555363845, hamiltonian_energy_error = 0.002132761397088956, max_hamiltonian_energy_error = 0.0062659876693764716, tree_depth = 4, numerical_error = false, step_size = 0.11932842364303432, nom_step_size = 0.11932842364303432, is_adapt = true), (n_steps = 23, is_accept = true, acceptance_rate = 0.9982457266999285, log_density = 17.64510465204781, hamiltonian_energy = -16.511962660997323, hamiltonian_energy_error = -0.0017304548998566815, max_hamiltonian_energy_error = 0.01389785976084923, tree_depth = 4, numerical_error = false, step_size = 0.1918877941548512, nom_step_size = 0.1918877941548512, is_adapt = true), (n_steps = 7, is_accept = true, acceptance_rate = 0.9985622910079208, log_density = 17.79497499896697, hamiltonian_energy = -17.36456358503488, hamiltonian_energy_error = -0.002316787497289141, max_hamiltonian_energy_error = -0.005054362624175468, tree_depth = 3, numerical_error = false, step_size = 0.33050096627467557, nom_step_size = 0.33050096627467557, is_adapt = true), (n_steps = 7, is_accept = true, acceptance_rate = 0.9434082460228754, log_density = 17.567144109524513, hamiltonian_energy = -16.750213612559964, hamiltonian_energy_error = 0.01857002695859933, max_hamiltonian_energy_error = 0.14346458501904635, tree_depth = 3, numerical_error = false, step_size = 0.5941770457737136, nom_step_size = 0.5941770457737136, is_adapt = true), (n_steps = 3, is_accept = true, acceptance_rate = 0.9690852370828736, log_density = 17.966950482076246, hamiltonian_energy = -17.119810850568182, hamiltonian_energy_error = -0.07318864070505882, max_hamiltonian_energy_error = -0.07318864070505882, tree_depth = 2, numerical_error = false, step_size = 0.9197665432507248, nom_step_size = 0.9197665432507248, is_adapt = true) … (n_steps = 3, is_accept = true, acceptance_rate = 0.9213473146458767, log_density = 16.537272691565338, hamiltonian_energy = -16.323713789575883, hamiltonian_energy_error = 0.12712056714812547, max_hamiltonian_energy_error = 0.12712056714812547, tree_depth = 2, numerical_error = false, step_size = 0.6487150772760925, nom_step_size = 0.6487150772760925, is_adapt = false), (n_steps = 5, is_accept = true, acceptance_rate = 0.8, log_density = 17.11997628243147, hamiltonian_energy = -15.664486235192319, hamiltonian_energy_error = -0.2122168015045247, max_hamiltonian_energy_error = Inf, tree_depth = 2, numerical_error = true, step_size = 0.6487150772760925, nom_step_size = 0.6487150772760925, is_adapt = false), (n_steps = 7, is_accept = true, acceptance_rate = 0.5981300844469599, log_density = 17.123264211937048, hamiltonian_energy = -15.016766660150758, hamiltonian_energy_error = -0.08443509535509008, max_hamiltonian_energy_error = 1.0603027078241922, tree_depth = 3, numerical_error = false, step_size = 0.6487150772760925, nom_step_size = 0.6487150772760925, is_adapt = false), (n_steps = 3, is_accept = true, acceptance_rate = 0.961423493148753, log_density = 16.547919743539897, hamiltonian_energy = -16.225937932111357, hamiltonian_energy_error = 0.043193377590835524, max_hamiltonian_energy_error = 0.07629340917987903, tree_depth = 2, numerical_error = false, step_size = 0.6487150772760925, nom_step_size = 0.6487150772760925, is_adapt = false), (n_steps = 5, is_accept = true, acceptance_rate = 0.914515380518722, log_density = 14.881304876196909, hamiltonian_energy = -14.644696000519271, hamiltonian_energy_error = 0.18659482952747553, max_hamiltonian_energy_error = 0.18659482952747553, tree_depth = 2, numerical_error = false, step_size = 0.6487150772760925, nom_step_size = 0.6487150772760925, is_adapt = false), (n_steps = 3, is_accept = true, acceptance_rate = 0.9724539381716123, log_density = 17.397459333584454, hamiltonian_energy = -14.246564080690828, hamiltonian_energy_error = -0.3756158587449079, max_hamiltonian_energy_error = -0.3756158587449079, tree_depth = 2, numerical_error = false, step_size = 0.6487150772760925, nom_step_size = 0.6487150772760925, is_adapt = false), (n_steps = 3, is_accept = true, acceptance_rate = 0.9992717301423056, log_density = 17.685678023816294, hamiltonian_energy = -17.293182880161233, hamiltonian_energy_error = -0.018389696777354914, max_hamiltonian_energy_error = -0.07336717041285468, tree_depth = 2, numerical_error = false, step_size = 0.6487150772760925, nom_step_size = 0.6487150772760925, is_adapt = false), (n_steps = 3, is_accept = true, acceptance_rate = 0.9799764236218241, log_density = 17.175985358716144, hamiltonian_energy = -16.98513606871984, hamiltonian_energy_error = 0.030502143261902148, max_hamiltonian_energy_error = 0.030502143261902148, tree_depth = 2, numerical_error = false, step_size = 0.6487150772760925, nom_step_size = 0.6487150772760925, is_adapt = false), (n_steps = 7, is_accept = true, acceptance_rate = 0.6627086059638556, log_density = 17.36153954676204, hamiltonian_energy = -16.40239257594932, hamiltonian_energy_error = -0.10928158380060538, max_hamiltonian_energy_error = 0.7818258659566535, tree_depth = 3, numerical_error = false, step_size = 0.6487150772760925, nom_step_size = 0.6487150772760925, is_adapt = false), (n_steps = 3, is_accept = true, acceptance_rate = 1.0, log_density = 17.729748960723036, hamiltonian_energy = -17.289392697793396, hamiltonian_energy_error = -0.051060919913108904, max_hamiltonian_energy_error = -0.06881331813539404, tree_depth = 2, numerical_error = false, step_size = 0.6487150772760925, nom_step_size = 0.6487150772760925, is_adapt = false)])" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Set the number of samples to draw and warmup iterations\n", + "n_samples, n_adapts = 2_000, 1_000\n", + "initial_ϵ = find_good_stepsize(hamiltonian, MAP)\n", + "integrator = Leapfrog(initial_ϵ)\n", + "\n", + "# Define an HMC sampler, with the following components\n", + "# - multinomial sampling scheme,\n", + "# - generalised No-U-Turn criteria, and\n", + "# - windowed adaption for step-size and diagonal mass matrix\n", + "proposal = AdvancedHMC.NUTS{MultinomialTS, GeneralisedNoUTurn}(integrator)\n", + "adaptor = StanHMCAdaptor(MassMatrixAdaptor(metric), StepSizeAdaptor(0.8, integrator))\n", + "\n", + "# Run the sampler to draw samples from the specified Gaussian, where\n", + "# - `samples` will store the samples\n", + "# - `stats` will store diagnostic statistics for each sample\n", + "samples, stats = sample(hamiltonian, proposal, MAP, n_samples, adaptor, n_adapts; progress=true)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ed71d871", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2a803eb8", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Julia 1.9.0-beta3", + "language": "julia", + "name": "julia-1.9" + }, + "language_info": { + "file_extension": ".jl", + "mimetype": "application/julia", + "name": "julia", + "version": "1.9.0" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From 3158bb6dfd759762d3c3c05fed83fcc2dcbdec14 Mon Sep 17 00:00:00 2001 From: jaimerz Date: Thu, 9 Mar 2023 12:06:13 -0800 Subject: [PATCH 02/27] first draft --- Lab.ipynb | 465 +++++++++++++++++++++++++-------------------------- Project.toml | 1 + 2 files changed, 226 insertions(+), 240 deletions(-) diff --git a/Lab.ipynb b/Lab.ipynb index ee38db5b..1948abbd 100644 --- a/Lab.ipynb +++ b/Lab.ipynb @@ -8,81 +8,66 @@ "# No-glue-code" ] }, - { - "cell_type": "markdown", - "id": "97121235", - "metadata": {}, - "source": [ - "## Model" - ] - }, { "cell_type": "code", "execution_count": 1, - "id": "baed58e3", + "id": "71111157", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling Turing [fce5fe82-541a-59a6-adf8-730c64b5f9a0]\n" + "\u001b[32m\u001b[1m Activating\u001b[22m\u001b[39m project at `~/PhD/AdvancedHMC.jl`\n" ] } ], + "source": [ + "] activate \".\"" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "baed58e3", + "metadata": {}, + "outputs": [], "source": [ "# The statistical inference frame-work we will use\n", "using Turing\n", - "using AdvancedHMC\n", "using LogDensityProblems\n", "using LogDensityProblemsAD\n", "using DynamicPPL\n", "using ForwardDiff\n", - "# Some data management libs.\n", - "using CSV\n", - "using NPZ\n", - "using YAML\n", - "#Plotting\n", - "using Plots\n", - "# Some Lin. Alg.\n", + "using Random\n", "using LinearAlgebra\n", - "using Interpolations" + "\n", + "#Plotting\n", + "using PyPlot\n", + "\n", + "#What we are tweaking\n", + "using Revise\n", + "using AdvancedHMC" ] }, { - "cell_type": "code", - "execution_count": 2, - "id": "a7d6f81c", + "cell_type": "markdown", + "id": "b1b2050a", "metadata": {}, - "outputs": [], "source": [ - "fs8_zs = [0.38, 0.51, 0.61, 1.48, 0.44, 0.6, 0.73, 0.6, 0.86, 0.067, 1.4]\n", - "fs8_data = [0.49749, 0.457523, 0.436148, 0.462, 0.413, 0.39, 0.437, 0.55, 0.4, 0.423, 0.482]\n", - "fs8_cov = [0.00203355 0.000811829 0.000264615 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0;\n", - " 0.000811829 0.00142289 0.000662824 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0; \n", - " 0.000264615 0.000662824 0.00118576 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0;\n", - " 0.0 0.0 0.0 0.002025 0.0 0.0 0.0 0.0 0.0 0.0 0.0;\n", - " 0.0 0.0 0.0 0.0 0.0064 0.00257 0.0 0.0 0.0 0.0 0.0;\n", - " 0.0 0.0 0.0 0.0 0.00257 0.003969 0.00254 0.0 0.0 0.0 0.0;\n", - " 0.0 0.0 0.0 0.0 0.0 0.00254 0.005184 0.0 0.0 0.0 0.0;\n", - " 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0144 0.0 0.0 0.0;\n", - " 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0121 0.0 0.0; \n", - " 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.003025 0.0;\n", - " 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.013456000000000001];" + "## Model" ] }, { "cell_type": "code", "execution_count": 3, - "id": "1359a630", - "metadata": { - "code_folding": [] - }, + "id": "a7d6f81c", + "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "make_fs8 (generic function with 1 method)" + "funnel (generic function with 2 methods)" ] }, "execution_count": 3, @@ -91,284 +76,243 @@ } ], "source": [ - "function make_fs8(Ωm, σ8; Ωr=8.24*10^-5)\n", - " # ODE solution for growth factor\n", - " x_Dz = LinRange(0, log(1+1100), 300)\n", - " dx_Dz = x_Dz[2]-x_Dz[1]\n", - " z_Dz = @.(exp(x_Dz) - 1)\n", - " a_Dz = @.(1/(1+z_Dz))\n", - " aa = reverse(a_Dz)\n", - " e = @.(sqrt.(abs(Ωm)*(1+z_Dz)^3+Ωr*(1+z_Dz)^4+(1-Ωm-Ωr)))\n", - " ee = reverse(e)\n", - "\n", - " dd = zeros(typeof(Ωm), 300)\n", - " yy = zeros(typeof(Ωm), 300)\n", - " dd[1] = aa[1]\n", - " yy[1] = aa[1]^3*ee[end]\n", - "\n", - " for i in 1:(300-1)\n", - " A0 = -1.5 * Ωm / (aa[i]*ee[i])\n", - " B0 = -1. / (aa[i]^2*ee[i])\n", - " A1 = -1.5 * Ωm / (aa[i+1]*ee[i+1])\n", - " B1 = -1. / (aa[i+1]^2*ee[i+1])\n", - " yy[i+1] = (1+0.5*dx_Dz^2*A0*B0)*yy[i] + 0.5*(A0+A1)*dx_Dz*dd[i]\n", - " dd[i+1] = 0.5*(B0+B1)*dx_Dz*yy[i] + (1+0.5*dx_Dz^2*A0*B0)*dd[i]\n", - " end\n", - "\n", - " y = reverse(yy)\n", - " d = reverse(dd)\n", - "\n", - " Dzi = linear_interpolation(z_Dz, d./d[1], extrapolation_bc=Line())\n", - " fs8zi = linear_interpolation(z_Dz, -σ8 .* y./ (a_Dz.^2 .*e.*d[1]),\n", - " extrapolation_bc=Line())\n", - " return fs8zi\n", + "# Just a simple Neal Funnel\n", + "d = 21\n", + "@model function funnel()\n", + " θ ~ Normal(0, 3)\n", + " z ~ MvNormal(zeros(d-1), exp(θ)*I)\n", + " x ~ MvNormal(z, I)\n", "end" ] }, { "cell_type": "code", "execution_count": 4, - "id": "8005e277", - "metadata": {}, - "outputs": [], - "source": [ - "@model function model(data; cov = fs8_cov) \n", - " # Define priors\n", - " #KiDS priors\n", - " Ωm ~ Uniform(0.1, 0.9)\n", - " σ8 ~ Uniform(0.4, 1.2)\n", - " fs8_itp = make_fs8(Ωm, σ8)\n", - " theory = fs8_itp(fs8_zs)\n", - " data ~ MvNormal(theory, cov)\n", - "end;" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "1eebe796", + "id": "a4d0b131", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "Model{typeof(model), (:data, :cov), (:cov,), (), Tuple{Vector{Float64}, Matrix{Float64}}, Tuple{Matrix{Float64}}, DefaultContext}(model, (data = [0.49749, 0.457523, 0.436148, 0.462, 0.413, 0.39, 0.437, 0.55, 0.4, 0.423, 0.482], cov = [0.00203355 0.000811829 … 0.0 0.0; 0.000811829 0.00142289 … 0.0 0.0; … ; 0.0 0.0 … 0.003025 0.0; 0.0 0.0 … 0.0 0.013456000000000001]), (cov = [0.00203355 0.000811829 … 0.0 0.0; 0.000811829 0.00142289 … 0.0 0.0; … ; 0.0 0.0 … 0.003025 0.0; 0.0 0.0 … 0.0 0.013456000000000001],), DefaultContext())" + "Model{typeof(funnel), (), (), (), Tuple{}, Tuple{}, ConditionContext{NamedTuple{(:x,), Tuple{Vector{Float64}}}, DefaultContext}}(funnel, NamedTuple(), NamedTuple(), ConditionContext((x = [0.7273459156073062, -0.7137895625029701, -1.3112158987551843, 3.195064335503728, 0.6578668590997088, 1.8201670957594605, 2.5774094189910475, 1.2959606640141557, -2.615684720848553, -1.7192495259048919, 0.38510954102334116, 0.7049475219687015, 1.4527158089056038, 1.5438517444010695, 0.8504145036053463, 0.9997932200168839, -0.14767140951984356, 0.6046583528834097, -0.38477500804604936, -1.506202996455002],), DefaultContext()))" ] }, - "execution_count": 5, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "stat_model = model(fs8_data)" + "Random.seed!(1)\n", + "(;x) = rand(funnel() | (θ=0,))\n", + "funnel_model = funnel() | (;x)" ] }, { "cell_type": "code", - "execution_count": 6, - "id": "96aa5549", + "execution_count": 18, + "id": "59fe3327", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "Turing.Inference.NUTS{Turing.Essential.ForwardDiffAD{0}, (), DiagEuclideanMetric}(1000, 0.65, 10, 1000.0, 0.0)" + "Model{typeof(funnel), (), (), (), Tuple{}, Tuple{}, ConditionContext{NamedTuple{(:x,), Tuple{Vector{Float64}}}, DefaultContext}}" ] }, - "execution_count": 6, + "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "adaptation = 1000\n", - "TAP = 0.65\n", - "alg = Turing.NUTS(adaptation, TAP)" + "typeof(funnel_model)" ] }, { "cell_type": "markdown", - "id": "e1cb8e03", + "id": "10dfa4cc", "metadata": {}, "source": [ - "## Getting MAP and Hessian" + "## Turing interface" ] }, { "cell_type": "code", - "execution_count": 7, - "id": "56874cd3", + "execution_count": 16, + "id": "82938e27", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "maximum_a_posteriori (generic function with 1 method)" + "Hamiltonian(metric=DiagEuclideanMetric([1.0, 1.0, 1.0, 1.0, 1.0, 1 ...]), kinetic=GaussianKinetic())" ] }, - "execution_count": 7, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "using Optim\n", - "\n", - "function Xi2(params; model=stat_model)\n", - " Ωm, σ8 = params\n", - " return loglikelihood(model, (Ωm=Ωm, σ8=σ8))\n", - "end;\n", - " \n", - "function maximum_a_posteriori(model, lower_bound, upper_bound)\n", - " start_value = (upper_bound .+ lower_bound) ./ 2 \n", - " opt = optimize((v)->-Xi2(v), lower_bound, upper_bound, start_value, Fminbox())\n", - " return Optim.minimizer(opt)\n", - "end" + "context = funnel_model.context\n", + "varinfo = DynamicPPL.VarInfo(funnel_model, context)\n", + "ℓ = LogDensityProblemsAD.ADgradient(DynamicPPL.LogDensityFunction(varinfo, funnel_model, context))\n", + "lπ = Base.Fix1(LogDensityProblems.logdensity, ℓ)\n", + "∂lπ∂θ(x) = LogDensityProblems.logdensity_and_gradient(ℓ, x)\n", + "metric = DiagEuclideanMetric(d)\n", + "hamiltonian = AdvancedHMC.Hamiltonian(metric, lπ, ∂lπ∂θ)" ] }, { "cell_type": "code", - "execution_count": 8, - "id": "f48c433c", + "execution_count": 19, + "id": "7892c22f", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "2-element Vector{Float64}:\n", - " 0.21256856797862178\n", - " 0.8763540154601552" + "Sampler" ] }, - "execution_count": 8, + "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "MAP = maximum_a_posteriori(stat_model, [0.2, 0.4], [0.6, 1.2])" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "01a11feb", - "metadata": {}, - "outputs": [], - "source": [ - "# Get the Hessian\n", - "hess = ForwardDiff.hessian(Xi2, MAP)\n", - "inv_hess = inv(hess);" + "struct Sampler\n", + " metric\n", + " integrator\n", + " adaptor\n", + " proposal\n", + "end\n", + "\n", + "Sampler(ϵ, TAP) = begin\n", + " metric = DiagEuclideanMetric(d)\n", + " integrator = Leapfrog(ϵ)\n", + " proposal = AdvancedHMC.NUTS{MultinomialTS, GeneralisedNoUTurn}(integrator)\n", + " adaptor = StanHMCAdaptor(MassMatrixAdaptor(metric), StepSizeAdaptor(TAP, integrator))\n", + " \n", + " Sampler(\n", + " metric,\n", + " integrator,\n", + " adaptor,\n", + " proposal)\n", + "end" ] }, { "cell_type": "code", - "execution_count": 10, - "id": "9c6ca1e4", + "execution_count": 20, + "id": "5d2b54c6", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "2×2 Matrix{Float64}:\n", - " 0.00383693 -0.00328434\n", - " -0.00328434 0.0042819" + "Sampler(DiagEuclideanMetric([1.0, 1.0, 1.0, 1.0, 1.0, 1 ...]), Leapfrog(ϵ=1.6), StanHMCAdaptor(\n", + " pc=WelfordVar,\n", + " ssa=NesterovDualAveraging(γ=0.05, t_0=10.0, κ=0.75, δ=0.95, state.ϵ=1.6),\n", + " init_buffer=75, term_buffer=50, window_size=25,\n", + " state=window(0, 0), window_splits()\n", + "), HMCKernel{AdvancedHMC.FullMomentumRefreshment, Trajectory{MultinomialTS, Leapfrog{Float64}, GeneralisedNoUTurn{Float64}}}(AdvancedHMC.FullMomentumRefreshment(), Trajectory{MultinomialTS}(integrator=Leapfrog(ϵ=1.6), tc=GeneralisedNoUTurn{Float64}(10, 1000.0))))" ] }, - "execution_count": 10, + "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "# Turn the Hessian into more of a covariance Matrix\n", - "w, v = eigen(inv_hess)\n", - "hess_cov = v * (diagm(abs.(w)) * v')\n", - "hess_cov = tril(hess_cov) + triu(hess_cov', 1)\n", - "hess_cov = Hermitian(hess_cov)\n", - "hess_cov = convert(Matrix{Float64}, hess_cov)" - ] - }, - { - "cell_type": "markdown", - "id": "10dfa4cc", - "metadata": {}, - "source": [ - "## Sampling" + "initial_θ = randn(21)\n", + "initial_ϵ = find_good_stepsize(hamiltonian, initial_θ)\n", + "sampler = Sampler(initial_ϵ, 0.95)" ] }, { "cell_type": "code", - "execution_count": 11, - "id": "a79c2b35", + "execution_count": 23, + "id": "4e6daaa5", "metadata": {}, "outputs": [ { - "data": { - "text/plain": [ - "Sampler{Turing.Inference.NUTS{Turing.Essential.ForwardDiffAD{0}, (), DiagEuclideanMetric}}(Turing.Inference.NUTS{Turing.Essential.ForwardDiffAD{0}, (), DiagEuclideanMetric}(1000, 0.65, 10, 1000.0, 0.0), DynamicPPL.Selector(0x000005c4fc804c8d, :default, false))" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" + "ename": "LoadError", + "evalue": "error in method definition: function StatsBase.sample must be explicitly imported to be extended", + "output_type": "error", + "traceback": [ + "error in method definition: function StatsBase.sample must be explicitly imported to be extended", + "", + "Stacktrace:", + " [1] top-level scope", + " @ none:0", + " [2] top-level scope", + " @ In[23]:1" + ] } ], "source": [ - "spl = Sampler(alg, stat_model)" + "function StatsBase.sample(model::DynamicPPL.Model, sampler::Sampler, n_samples::Int, n_adapts::Int;\n", + " initial_θ=initial_θ, kwargs...)\n", + " ctxt = model.context\n", + " vi = DynamicPPL.VarInfo(model, ctxt)\n", + " \n", + " # We will need to implement this but it is going to be \n", + " # Interesting how to plug the transforms along the sampling\n", + " # processes\n", + " \n", + " #vi_t = Turing.link!!(vi, model)\n", + " \n", + " ℓ = LogDensityProblemsAD.ADgradient(DynamicPPL.LogDensityFunction(vi, model, ctxt))\n", + " ℓπ(x) = LogDensityProblems.logdensity(ℓ, x)\n", + " ∂lπ∂θ(x) = LogDensityProblems.logdensity_and_gradient(ℓ, x)\n", + " \n", + " metric = sampler.metric\n", + " integrator = sampler.integrator\n", + " adaptor = sampler.adaptor\n", + " proposal = sampler.proposal\n", + " hamiltonian = AdvancedHMC.Hamiltonian(metric, lπ, ∂lπ∂θ)\n", + " \n", + " return StatsBase.sample(hamiltonian, proposal, initial_θ, n_samples, adaptor, n_adapts; progress=true)\n", + "end " ] }, { "cell_type": "code", - "execution_count": 12, - "id": "087b18a8", + "execution_count": 22, + "id": "d155ffb6", "metadata": {}, "outputs": [ { - "data": { - "text/plain": [ - "TypedVarInfo{NamedTuple{(:Ωm, :σ8), Tuple{DynamicPPL.Metadata{Dict{VarName{:Ωm, Setfield.IdentityLens}, Int64}, Vector{Uniform{Float64}}, Vector{VarName{:Ωm, Setfield.IdentityLens}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}, DynamicPPL.Metadata{Dict{VarName{:σ8, Setfield.IdentityLens}, Int64}, Vector{Uniform{Float64}}, Vector{VarName{:σ8, Setfield.IdentityLens}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}}}, Float64}((Ωm = DynamicPPL.Metadata{Dict{VarName{:Ωm, Setfield.IdentityLens}, Int64}, Vector{Uniform{Float64}}, Vector{VarName{:Ωm, Setfield.IdentityLens}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}(Dict(Ωm => 1), [Ωm], UnitRange{Int64}[1:1], [0.24189169385043288], Uniform{Float64}[Uniform{Float64}(a=0.1, b=0.9)], Set{DynamicPPL.Selector}[Set()], [0], Dict{String, BitVector}(\"del\" => [0], \"trans\" => [0])), σ8 = DynamicPPL.Metadata{Dict{VarName{:σ8, Setfield.IdentityLens}, Int64}, Vector{Uniform{Float64}}, Vector{VarName{:σ8, Setfield.IdentityLens}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}(Dict(σ8 => 1), [σ8], UnitRange{Int64}[1:1], [1.072723393210094], Uniform{Float64}[Uniform{Float64}(a=0.4, b=1.2)], Set{DynamicPPL.Selector}[Set()], [0], Dict{String, BitVector}(\"del\" => [0], \"trans\" => [0]))), Base.RefValue{Float64}(0.6820075794802404), Base.RefValue{Int64}(1))" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" + "ename": "LoadError", + "evalue": "MethodError: no method matching sample(::Model{typeof(funnel), (), (), (), Tuple{}, Tuple{}, ConditionContext{NamedTuple{(:x,), Tuple{Vector{Float64}}}, DefaultContext}}, ::Sampler, ::Int64, ::Int64; initial_θ::Vector{Float64})\n\nSome of the types have been truncated in the stacktrace for improved reading. To emit complete information\nin the stack trace, evaluate `TruncatedStacktraces.VERBOSE[] = true` and re-run the code.\n\n\n\u001b[0mClosest candidates are:\n\u001b[0m sample(\u001b[91m::AbstractRNG\u001b[39m, ::Any, \u001b[91m::AbstractMCMC.AbstractSampler\u001b[39m, ::Any; kwargs...)\n\u001b[0m\u001b[90m @\u001b[39m \u001b[35mAbstractMCMC\u001b[39m \u001b[90m~/.julia/packages/AbstractMCMC/F9Hbk/src/\u001b[39m\u001b[90m\u001b[4mlogdensityproblems.jl:43\u001b[24m\u001b[39m\n\u001b[0m sample(::Any, \u001b[91m::AbstractMCMC.AbstractSampler\u001b[39m, \u001b[91m::AbstractMCMC.AbstractMCMCEnsemble\u001b[39m, ::Integer, \u001b[91m::Integer\u001b[39m; kwargs...)\n\u001b[0m\u001b[90m @\u001b[39m \u001b[35mAbstractMCMC\u001b[39m \u001b[90m~/.julia/packages/AbstractMCMC/F9Hbk/src/\u001b[39m\u001b[90m\u001b[4msample.jl:54\u001b[24m\u001b[39m\n\u001b[0m sample(::Any, \u001b[91m::AbstractMCMC.AbstractSampler\u001b[39m, ::Any; kwargs...)\n\u001b[0m\u001b[90m @\u001b[39m \u001b[35mAbstractMCMC\u001b[39m \u001b[90m~/.julia/packages/AbstractMCMC/F9Hbk/src/\u001b[39m\u001b[90m\u001b[4msample.jl:15\u001b[24m\u001b[39m\n\u001b[0m ...\n", + "output_type": "error", + "traceback": [ + "MethodError: no method matching sample(::Model{typeof(funnel), (), (), (), Tuple{}, Tuple{}, ConditionContext{NamedTuple{(:x,), Tuple{Vector{Float64}}}, DefaultContext}}, ::Sampler, ::Int64, ::Int64; initial_θ::Vector{Float64})\n\nSome of the types have been truncated in the stacktrace for improved reading. To emit complete information\nin the stack trace, evaluate `TruncatedStacktraces.VERBOSE[] = true` and re-run the code.\n\n\n\u001b[0mClosest candidates are:\n\u001b[0m sample(\u001b[91m::AbstractRNG\u001b[39m, ::Any, \u001b[91m::AbstractMCMC.AbstractSampler\u001b[39m, ::Any; kwargs...)\n\u001b[0m\u001b[90m @\u001b[39m \u001b[35mAbstractMCMC\u001b[39m \u001b[90m~/.julia/packages/AbstractMCMC/F9Hbk/src/\u001b[39m\u001b[90m\u001b[4mlogdensityproblems.jl:43\u001b[24m\u001b[39m\n\u001b[0m sample(::Any, \u001b[91m::AbstractMCMC.AbstractSampler\u001b[39m, \u001b[91m::AbstractMCMC.AbstractMCMCEnsemble\u001b[39m, ::Integer, \u001b[91m::Integer\u001b[39m; kwargs...)\n\u001b[0m\u001b[90m @\u001b[39m \u001b[35mAbstractMCMC\u001b[39m \u001b[90m~/.julia/packages/AbstractMCMC/F9Hbk/src/\u001b[39m\u001b[90m\u001b[4msample.jl:54\u001b[24m\u001b[39m\n\u001b[0m sample(::Any, \u001b[91m::AbstractMCMC.AbstractSampler\u001b[39m, ::Any; kwargs...)\n\u001b[0m\u001b[90m @\u001b[39m \u001b[35mAbstractMCMC\u001b[39m \u001b[90m~/.julia/packages/AbstractMCMC/F9Hbk/src/\u001b[39m\u001b[90m\u001b[4msample.jl:15\u001b[24m\u001b[39m\n\u001b[0m ...\n", + "", + "Stacktrace:", + " [1] top-level scope", + " @ In[22]:2" + ] } ], "source": [ - "context = stat_model.context\n", - "varinfo = DynamicPPL.VarInfo(stat_model, context)" + "n_samples, n_adapts = 10_000, 1_000\n", + "sample(funnel_model, sampler, n_samples, n_adapts; initial_θ=initial_θ)" ] }, { - "cell_type": "code", - "execution_count": 14, - "id": "82938e27", + "cell_type": "markdown", + "id": "177aaeb0", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Hamiltonian(metric=DenseEuclideanMetric(diag=[0.003836928914103148, 0.00 ...]), kinetic=GaussianKinetic())" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], "source": [ - "ℓ = LogDensityProblemsAD.ADgradient(DynamicPPL.LogDensityFunction(varinfo, stat_model, context))\n", - "lπ = Base.Fix1(LogDensityProblems.logdensity, ℓ)\n", - "∂lπ∂θ(x) = LogDensityProblems.logdensity_and_gradient(ℓ, x)\n", - "metric = DenseEuclideanMetric(hess_cov)\n", - "hamiltonian = AdvancedHMC.Hamiltonian(metric, lπ, ∂lπ∂θ)" + "## Sampling" ] }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 13, "id": "9a554c93", "metadata": {}, "outputs": [ @@ -381,42 +325,35 @@ "\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m - To disable this warning message, do `ProgressMeter.ijulia_behavior(:clear)`.\n", "\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ ProgressMeter ~/.julia/packages/ProgressMeter/sN2xr/src/ProgressMeter.jl:618\u001b[39m\n", "\u001b[32mSampling 100%|███████████████████████████████| Time: 0:00:01\u001b[39m\n", - "\u001b[34m iterations: 2000\u001b[39m\n", - "\u001b[34m n_steps: 3\u001b[39m\n", - "\u001b[34m is_accept: true\u001b[39m\n", - "\u001b[34m acceptance_rate: 1.0\u001b[39m\n", - "\u001b[34m log_density: 17.729748960723036\u001b[39m\n", - "\u001b[34m hamiltonian_energy: -17.289392697793396\u001b[39m\n", - "\u001b[34m hamiltonian_energy_error: -0.051060919913108904\u001b[39m\n", - "\u001b[34m max_hamiltonian_energy_error: -0.06881331813539404\u001b[39m\n", - "\u001b[34m tree_depth: 2\u001b[39m\n", - "\u001b[34m numerical_error: false\u001b[39m\n", - "\u001b[34m step_size: 0.6487150772760925\u001b[39m\n", - "\u001b[34m nom_step_size: 0.6487150772760925\u001b[39m\n", - "\u001b[34m is_adapt: false\u001b[39m\n", - "\u001b[34m mass_matrix: DenseEuclideanMetric(diag=[0.004834262741463085, 0.00 ...])\u001b[39m\n", - "\u001b[36m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mFinished 2000 sampling steps for 1 chains in 1.989433731 (s)\n", - "\u001b[36m\u001b[1m│ \u001b[22m\u001b[39m h = Hamiltonian(metric=DenseEuclideanMetric(diag=[0.004834262741463085, 0.00 ...]), kinetic=GaussianKinetic())\n", - "\u001b[36m\u001b[1m│ \u001b[22m\u001b[39m κ = HMCKernel{AdvancedHMC.FullMomentumRefreshment, Trajectory{MultinomialTS, Leapfrog{Float64}, GeneralisedNoUTurn{Float64}}}(AdvancedHMC.FullMomentumRefreshment(), Trajectory{MultinomialTS}(integrator=Leapfrog(ϵ=0.649), tc=GeneralisedNoUTurn{Float64}(10, 1000.0)))\n", - "\u001b[36m\u001b[1m│ \u001b[22m\u001b[39m EBFMI_est = 1.1967632126213832\n", - "\u001b[36m\u001b[1m└ \u001b[22m\u001b[39m average_acceptance_rate = 0.8302521245860884\n" + "\u001b[34m iterations: 10000\u001b[39m\n", + "\u001b[34m ratio_divergent_transitions: 0.0\u001b[39m\n", + "\u001b[34m ratio_divergent_transitions_during_adaption: 0.0\u001b[39m\n", + "\u001b[34m n_steps: 15\u001b[39m\n", + "\u001b[34m is_accept: true\u001b[39m\n", + "\u001b[34m acceptance_rate: 0.9429472344154662\u001b[39m\n", + "\u001b[34m log_density: -60.09829978233757\u001b[39m\n", + "\u001b[34m hamiltonian_energy: 68.99870162156931\u001b[39m\n", + "\u001b[34m hamiltonian_energy_error: 0.09210815757290902\u001b[39m\n", + "\u001b[34m max_hamiltonian_energy_error: 0.128026123025748\u001b[39m\n", + "\u001b[34m tree_depth: 4\u001b[39m\n", + "\u001b[34m numerical_error: false\u001b[39m\n", + "\u001b[34m step_size: 0.3022038351736327\u001b[39m\n", + "\u001b[34m nom_step_size: 0.3022038351736327\u001b[39m\n", + "\u001b[34m is_adapt: false\u001b[39m\n", + "\u001b[34m mass_matrix: DiagEuclideanMetric([0.40626103542505176, 0.488 ...])\u001b[39m\n", + "\u001b[36m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mFinished 10000 sampling steps for 1 chains in 1.607604043 (s)\n", + "\u001b[36m\u001b[1m│ \u001b[22m\u001b[39m h = Hamiltonian(metric=DiagEuclideanMetric([0.40626103542505176, 0.488 ...]), kinetic=GaussianKinetic())\n", + "\u001b[36m\u001b[1m│ \u001b[22m\u001b[39m κ = HMCKernel{AdvancedHMC.FullMomentumRefreshment, Trajectory{MultinomialTS, Leapfrog{Float64}, GeneralisedNoUTurn{Float64}}}(AdvancedHMC.FullMomentumRefreshment(), Trajectory{MultinomialTS}(integrator=Leapfrog(ϵ=0.302), tc=GeneralisedNoUTurn{Float64}(10, 1000.0)))\n", + "\u001b[36m\u001b[1m│ \u001b[22m\u001b[39m EBFMI_est = 0.5282960862196817\n", + "\u001b[36m\u001b[1m└ \u001b[22m\u001b[39m average_acceptance_rate = 0.9356960325097549\n" ] - }, - { - "data": { - "text/plain": [ - "([[0.24217072449163063, 0.8815235005982114], [0.24217072449163063, 0.8815235005982114], [0.1964040900666372, 0.8682642940757254], [0.23220726706788417, 0.8594888321891413], [0.23220726706788417, 0.8594888321891413], [0.30600748508356646, 0.8187262839439398], [0.24638113811106768, 0.8264874921491668], [0.17930813221283726, 0.9012387514591719], [0.257747112897827, 0.8659528543802886], [0.2219106258796527, 0.872052499881699] … [0.2155585668611011, 0.9387916846186595], [0.30467165855486844, 0.8016599731719438], [0.19238795508040302, 0.8454240746568259], [0.23402240097427798, 0.7968218235978053], [0.2694905067075098, 0.9217373336532368], [0.1882021323995838, 0.8599530394625028], [0.23797097860528293, 0.8813057277500905], [0.2943973036254594, 0.8006200200955638], [0.15372119929153283, 0.9463410337224535], [0.2267280941717041, 0.8903478326313119]], NamedTuple[(n_steps = 7, is_accept = true, acceptance_rate = 0.4004465309788565, log_density = 17.597878418351858, hamiltonian_energy = -17.584306152172577, hamiltonian_energy_error = 0.22942376141385168, max_hamiltonian_energy_error = Inf, tree_depth = 2, numerical_error = true, step_size = 1.6, nom_step_size = 1.6, is_adapt = true), (n_steps = 1, is_accept = true, acceptance_rate = 0.0, log_density = 17.597878418351858, hamiltonian_energy = -16.558191490290692, hamiltonian_energy_error = 0.0, max_hamiltonian_energy_error = Inf, tree_depth = 0, numerical_error = true, step_size = 7.737880937824665, nom_step_size = 7.737880937824665, is_adapt = true), (n_steps = 3, is_accept = true, acceptance_rate = 1.0, log_density = 17.774639366407868, hamiltonian_energy = -17.52695167820066, hamiltonian_energy_error = -0.10403474654004086, max_hamiltonian_energy_error = -0.10403474654004086, tree_depth = 2, numerical_error = false, step_size = 0.9466877942295883, nom_step_size = 0.9466877942295883, is_adapt = true), (n_steps = 3, is_accept = true, acceptance_rate = 0.9565585456951909, log_density = 17.93534198384408, hamiltonian_energy = -17.561725761293022, hamiltonian_energy_error = -0.05821247679514485, max_hamiltonian_energy_error = 0.13963496778836415, tree_depth = 2, numerical_error = false, step_size = 1.1152571881739461, nom_step_size = 1.1152571881739461, is_adapt = true), (n_steps = 1, is_accept = true, acceptance_rate = 0.0, log_density = 17.93534198384408, hamiltonian_energy = -16.9360350855726, hamiltonian_energy_error = 0.0, max_hamiltonian_energy_error = Inf, tree_depth = 0, numerical_error = true, step_size = 1.4391199752169883, nom_step_size = 1.4391199752169883, is_adapt = true), (n_steps = 23, is_accept = true, acceptance_rate = 0.998307688034895, log_density = 17.18288847025175, hamiltonian_energy = -16.79486555363845, hamiltonian_energy_error = 0.002132761397088956, max_hamiltonian_energy_error = 0.0062659876693764716, tree_depth = 4, numerical_error = false, step_size = 0.11932842364303432, nom_step_size = 0.11932842364303432, is_adapt = true), (n_steps = 23, is_accept = true, acceptance_rate = 0.9982457266999285, log_density = 17.64510465204781, hamiltonian_energy = -16.511962660997323, hamiltonian_energy_error = -0.0017304548998566815, max_hamiltonian_energy_error = 0.01389785976084923, tree_depth = 4, numerical_error = false, step_size = 0.1918877941548512, nom_step_size = 0.1918877941548512, is_adapt = true), (n_steps = 7, is_accept = true, acceptance_rate = 0.9985622910079208, log_density = 17.79497499896697, hamiltonian_energy = -17.36456358503488, hamiltonian_energy_error = -0.002316787497289141, max_hamiltonian_energy_error = -0.005054362624175468, tree_depth = 3, numerical_error = false, step_size = 0.33050096627467557, nom_step_size = 0.33050096627467557, is_adapt = true), (n_steps = 7, is_accept = true, acceptance_rate = 0.9434082460228754, log_density = 17.567144109524513, hamiltonian_energy = -16.750213612559964, hamiltonian_energy_error = 0.01857002695859933, max_hamiltonian_energy_error = 0.14346458501904635, tree_depth = 3, numerical_error = false, step_size = 0.5941770457737136, nom_step_size = 0.5941770457737136, is_adapt = true), (n_steps = 3, is_accept = true, acceptance_rate = 0.9690852370828736, log_density = 17.966950482076246, hamiltonian_energy = -17.119810850568182, hamiltonian_energy_error = -0.07318864070505882, max_hamiltonian_energy_error = -0.07318864070505882, tree_depth = 2, numerical_error = false, step_size = 0.9197665432507248, nom_step_size = 0.9197665432507248, is_adapt = true) … (n_steps = 3, is_accept = true, acceptance_rate = 0.9213473146458767, log_density = 16.537272691565338, hamiltonian_energy = -16.323713789575883, hamiltonian_energy_error = 0.12712056714812547, max_hamiltonian_energy_error = 0.12712056714812547, tree_depth = 2, numerical_error = false, step_size = 0.6487150772760925, nom_step_size = 0.6487150772760925, is_adapt = false), (n_steps = 5, is_accept = true, acceptance_rate = 0.8, log_density = 17.11997628243147, hamiltonian_energy = -15.664486235192319, hamiltonian_energy_error = -0.2122168015045247, max_hamiltonian_energy_error = Inf, tree_depth = 2, numerical_error = true, step_size = 0.6487150772760925, nom_step_size = 0.6487150772760925, is_adapt = false), (n_steps = 7, is_accept = true, acceptance_rate = 0.5981300844469599, log_density = 17.123264211937048, hamiltonian_energy = -15.016766660150758, hamiltonian_energy_error = -0.08443509535509008, max_hamiltonian_energy_error = 1.0603027078241922, tree_depth = 3, numerical_error = false, step_size = 0.6487150772760925, nom_step_size = 0.6487150772760925, is_adapt = false), (n_steps = 3, is_accept = true, acceptance_rate = 0.961423493148753, log_density = 16.547919743539897, hamiltonian_energy = -16.225937932111357, hamiltonian_energy_error = 0.043193377590835524, max_hamiltonian_energy_error = 0.07629340917987903, tree_depth = 2, numerical_error = false, step_size = 0.6487150772760925, nom_step_size = 0.6487150772760925, is_adapt = false), (n_steps = 5, is_accept = true, acceptance_rate = 0.914515380518722, log_density = 14.881304876196909, hamiltonian_energy = -14.644696000519271, hamiltonian_energy_error = 0.18659482952747553, max_hamiltonian_energy_error = 0.18659482952747553, tree_depth = 2, numerical_error = false, step_size = 0.6487150772760925, nom_step_size = 0.6487150772760925, is_adapt = false), (n_steps = 3, is_accept = true, acceptance_rate = 0.9724539381716123, log_density = 17.397459333584454, hamiltonian_energy = -14.246564080690828, hamiltonian_energy_error = -0.3756158587449079, max_hamiltonian_energy_error = -0.3756158587449079, tree_depth = 2, numerical_error = false, step_size = 0.6487150772760925, nom_step_size = 0.6487150772760925, is_adapt = false), (n_steps = 3, is_accept = true, acceptance_rate = 0.9992717301423056, log_density = 17.685678023816294, hamiltonian_energy = -17.293182880161233, hamiltonian_energy_error = -0.018389696777354914, max_hamiltonian_energy_error = -0.07336717041285468, tree_depth = 2, numerical_error = false, step_size = 0.6487150772760925, nom_step_size = 0.6487150772760925, is_adapt = false), (n_steps = 3, is_accept = true, acceptance_rate = 0.9799764236218241, log_density = 17.175985358716144, hamiltonian_energy = -16.98513606871984, hamiltonian_energy_error = 0.030502143261902148, max_hamiltonian_energy_error = 0.030502143261902148, tree_depth = 2, numerical_error = false, step_size = 0.6487150772760925, nom_step_size = 0.6487150772760925, is_adapt = false), (n_steps = 7, is_accept = true, acceptance_rate = 0.6627086059638556, log_density = 17.36153954676204, hamiltonian_energy = -16.40239257594932, hamiltonian_energy_error = -0.10928158380060538, max_hamiltonian_energy_error = 0.7818258659566535, tree_depth = 3, numerical_error = false, step_size = 0.6487150772760925, nom_step_size = 0.6487150772760925, is_adapt = false), (n_steps = 3, is_accept = true, acceptance_rate = 1.0, log_density = 17.729748960723036, hamiltonian_energy = -17.289392697793396, hamiltonian_energy_error = -0.051060919913108904, max_hamiltonian_energy_error = -0.06881331813539404, tree_depth = 2, numerical_error = false, step_size = 0.6487150772760925, nom_step_size = 0.6487150772760925, is_adapt = false)])" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" } ], "source": [ "# Set the number of samples to draw and warmup iterations\n", - "n_samples, n_adapts = 2_000, 1_000\n", - "initial_ϵ = find_good_stepsize(hamiltonian, MAP)\n", + "n_samples, n_adapts = 10_000, 1_000\n", + "initial_θ = randn(21)\n", + "initial_ϵ = find_good_stepsize(hamiltonian, initial_θ)\n", "integrator = Leapfrog(initial_ϵ)\n", "\n", "# Define an HMC sampler, with the following components\n", @@ -424,26 +361,74 @@ "# - generalised No-U-Turn criteria, and\n", "# - windowed adaption for step-size and diagonal mass matrix\n", "proposal = AdvancedHMC.NUTS{MultinomialTS, GeneralisedNoUTurn}(integrator)\n", - "adaptor = StanHMCAdaptor(MassMatrixAdaptor(metric), StepSizeAdaptor(0.8, integrator))\n", + "adaptor = StanHMCAdaptor(MassMatrixAdaptor(metric), StepSizeAdaptor(0.95, integrator))\n", "\n", "# Run the sampler to draw samples from the specified Gaussian, where\n", "# - `samples` will store the samples\n", "# - `stats` will store diagnostic statistics for each sample\n", - "samples, stats = sample(hamiltonian, proposal, MAP, n_samples, adaptor, n_adapts; progress=true)" + "samples, stats = sample(hamiltonian, proposal, initial_θ, n_samples, adaptor, n_adapts; progress=true);" + ] + }, + { + "cell_type": "markdown", + "id": "b823abef", + "metadata": {}, + "source": [ + "## Plotting" ] }, { "cell_type": "code", - "execution_count": null, - "id": "ed71d871", + "execution_count": 14, + "id": "2a803eb8", "metadata": {}, "outputs": [], - "source": [] + "source": [ + "theta_mchmc = [sample[1] for sample in samples]\n", + "x10_mchmc = [sample[10+1] for sample in samples];" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "a499aa74", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAArEAAAL3CAYAAACd2x1cAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAABSEUlEQVR4nO3deZhdVZkv/rdSRSrzQEgCISFFQOZRAjigBEEBUZtutblXtAG92PoDhw4OAcWAegUUcUCF5vYVmqveRhwbgwqCwQlpBaKgEJlKSCADCRkIGUjl/P7wcvY6ldrFqaQqp1bV5/M8eZ5d++y9z6pTFXiz13e/q6lSqVQCAAAyMqTRAwAAgJ5SxAIAkB1FLAAA2VHEAgCQHUUsAADZUcQCAJAdRSwAANlRxAIAkB1FLAAA2VHEAg3R1tYWTU1N0dTUFN/5zndKjzvhhBOiqakprrvuuh03uE7a29ujqakp2tratnrthe+jL73wOXX35wc/+EGfjqG/uOiii6KpqSkuuuiiRg8FaLCWRg8A4GMf+1iceuqp0dLiP0ndOfHEE2PXXXft8rU99thjB48GoLH8HwNoqBEjRsRf/vKX+Ld/+7d4z3ve0+jh9Gtz5syJWbNmNXoYAP2COAHQUB/4wAciIuKTn/xkPPfccw0eDQC5UMQCDfX6178+jj322HjqqafiC1/4Qo/Pv/vuu+P000+PPfbYI1pbW2PnnXeOE088MW6++eYuj//zn/8cc+fOjVe+8pWx++67x9ChQ2PChAlxwgknxLe//e3t/XaqnnrqqfjABz4Q++yzTwwbNixGjBgR06ZNi+OPPz4uv/zyXnufzmbNmhVNTU0xf/78Ll8vy5Sm+5cvXx7nnHNOTJs2LYYOHRrTpk2L973vfbFq1aqtrnfddddFU1NTnHnmmbFu3bo4//zzY++9947W1tbYdddd44wzzojFixeXjvfJJ5+M2bNnx/777x8jRoyI0aNHx5FHHhlf+cpXYvPmzdvxSQADnSIWaLjLLrssIiI++9nPxooVK+o+70tf+lIcddRR8a1vfSsmTJgQb3rTm+LAAw+M+fPnxymnnBKf/OQntzrniiuuiE9+8pOxcuXKOPjgg+Mf/uEfYt99942f//zncdppp8Xs2bO3+/tZsmRJzJw5M7785S/Hxo0b46STToo3velNseeee8aCBQvi05/+9Ha/R1954okn4qUvfWl897vfjaOOOipe+9rXxtq1a+MrX/lKvO51r4vnn3++y/NWr14dr3jFK+Lqq6+OAw44IE4++eSoVCpx/fXXxytf+cpYvXr1Vuf84he/iIMOOii+8IUvxIYNG+K1r31tvPKVr4xHHnkk3ve+98Upp5xS+n4AUQFogOnTp1ciovLLX/6yUqlUKv/wD/9QiYjKv/zLv9Qcd/zxx1cionLttdfW7P/JT35SaWpqquyyyy6VO+64o+a1P/7xj5WpU6dWIqIyf/78mtfmz59feeSRR7Yaz4MPPlg956677qp57bHHHqtERGX69Ol1fW8XX3xxJSIq7373uytbtmypeW3Tpk2Vn/3sZ3Vd5wURUYmIys9//vMXPfbYY4/t9ti5c+dWIqIyd+7cLvdHROXMM8+sbNiwofra448/Xtl9990rEVH51re+VXPetddeWz3vxBNPrKxevbr62sqVKyuHHXZYJSIqn/nMZ2rOe+qppyoTJkyoNDU1Vb72ta9VOjo6qq89/fTTlde85jWViKhcfPHFdY0fGHzciQX6hc985jPR0tISX/va1+Kvf/3rix4/d+7cqFQqcfXVV8erX/3qmtcOPvjguOKKKyIi4sorr6x57dhjj40ZM2Zsdb199903LrzwwoiIblt+1WPp0qUREXHSSSdt1X5rp512iuOPP36brnvcccd12V7rzDPP3K7xpqZOnRpf/epXo7W1tbrvhThBRMTPfvazLs8bOXJkXHvttTFmzJjqvvHjx8ecOXO6PO+LX/xirFixIs4555x473vfG0OGFP87mjBhQlx//fWx0047xVe+8pWoVCq99v0BA4fuBEC/sO+++8Y73/nOuOaaa+LCCy+M66+/vvTYp59+Ov7rv/4rhg8fHm984xu7POaFp/h/85vfbPXas88+Gz/+8Y/j3nvvjaeffjo2bdoUEX/LsUZELFy4cLu+l6OOOiq+9rWvxZw5c6JSqcTrXve6GDVq1HZdM6K8xdYxxxyz3dd+wfHHHx8jRozYav/+++8fEVGab505c2bstttudZ83b968iIg47bTTurze7rvvHi95yUviz3/+czz00EOxzz771P9NAIOCIhboNy666KL4xje+Ed/85jfjQx/6UBxyyCFdHvfYY49FpVKJ9evX19wx7Mry5ctrvr7pppvirLPO6jZ7u2bNmp4PPvGOd7wjbr311vjmN78Zb37zm6O5uTkOOOCAOOaYY+Itb3lLvOY1r9mm6+6IFltl/WZfuMO6YcOGXjnv0UcfjYiIV73qVS86puXLlytiga0oYoF+Y7fddosPfOADcckll8T5559fvVvX2ZYtWyIiYtSoUfHmN7+57usvXrw4TjvttFi/fn185CMfidNPPz3a2tpi1KhRMWTIkLjlllvixBNP3O7p6yFDhsQ3vvGNuOCCC2LevHnx61//On7961/HVVddFVdddVW88Y1vjO9///vR3Ny8Xe+zLV747Mqk0/o90dPzXhjHW97ylhg5cmS3x06YMGGbxgQMbIpYoF/56Ec/Gtdcc03cfPPN8Ytf/KLLY6ZNmxYRf1uO9etf/3rdBdRNN90U69evj7//+7+vdkRIPfTQQ9s+8C4ccMABccABB8SHP/zhqFQqcfvtt8fb3va2uOmmm+L666+Ps846q1ffLyJi6NChERGxdu3aLl+vJ2+8I0ybNi0eeuih+OhHPxozZ85s9HCADHmwC+hXxo4dGxdccEFERHzkIx/p8pgpU6bEIYccEmvXro2f/OQndV975cqVERExffr0rV6rVCrxrW99axtGXJ+mpqY4/vjj421ve1tERCxYsKBP3mf33XePiIgHHnhgq9eee+65+PnPf94n79tTJ598ckREr/bmBQYXRSzQ75xzzjmxxx57xF133RV33nlnl8e80Gv1rLPOiptuummr1yuVStx1111xyy23VPe98JDRd77znepDXBERHR0d8YlPfKLLh8C2xfXXXx933333VvvXrl1bXYSgq0K6N5xwwgkREfHVr3615mGqdevWxbvf/e544okn+uR9e+rDH/5wjBs3Lq644or4/Oc/X324LvXYY4/FN77xjQaMDsiBIhbod1pbW6sLFZQtRfvGN74xvvSlL8XKlSvjTW96U7zkJS+JN7zhDXH66afH6173uth1113jZS97Wdx+++015xxxxBGxaNGi2GeffeINb3hDnHbaabHXXnvFZZddFh/96Ed7Zfzf+973YubMmbH77rvHKaecEm9/+9vjlFNOiWnTpsWCBQvioIMOirPPPrtX3quzf/zHf4yZM2fG448/HgceeGC84Q1viNe//vWx5557xvz58+Od73xnn7xvT02dOjV++MMfxvjx4+NDH/pQdTWzt7/97fHGN74x9t5775gx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wSmLIra9vT0+9alPxe233x5LliyJKVOmxNvf/vb42Mc+FkOHDm308ACyUXY31oNfQG6yKGIffPDB2LJlS/zrv/5r7L333nH//ffH2WefHevWrYvLL7+80cMDAGAHy6KIPemkk+Kkk06qfj1jxoxYuHBhXHXVVYpY6AVl0/Npd4I0MhDRKV6QxAY60thAHe9dFjlI369zlGFbFkJ4MfVEFADoP7IoYruyevXq2Hnnnbs9ZuPGjbFx48bq12vWrOnrYQH0e6IDwECQZXeChx9+OK688sr453/+526Pu+SSS2Ls2LHVP9OmTdtBIwQAoC819E7snDlz4rLLLuv2mAceeCD2269ogL548eI46aST4q1vfWucffbZ3Z57/vnnx+zZs6tfr1mzRiELXaiJEJRNq3eaYi9bTKBsgYOmA2cU2+1LqtuVScWMSvofpEpybuf4QE+n+7uLJmzrNQForIYWseedd16ceeaZ3R4zY0bxP74nn3wyjjvuuHjFK14R11xzzYtev7W1NVpbW7d3mADZEyEABpqGFrETJ06MiRMn1nXs4sWL47jjjosjjjgirr322hgyJMskBAAAvSCLB7sWL14cs2bNiunTp8fll18ey5cvr7626667NnBkMPCURQvqPS6NFqSa2oq/q2mEIF3goJIe381CCz3tJFAWIQAgX1kUsbfeems8/PDD8fDDD8fUqVNrXqtUKiVnAfCCtjnzRAqAASWLOfkzzzwzKpVKl38AABh8srgTC+w49S4kUDalX9adYPNdfyyOr+P9uosA1NVNAYABTRELMMCJEQADURZxAgAASLkTC9Qom5Kvd8GBmoUPkkUG0u2OpFNBRxIzSN9jW2ICogVda5szLyLckQUGFndiAQDIjiIWAIDsiBMA26SeLgZlHQaak64FTWXdDOpcoKDexRkGO1ECYKBxJxYAgOwoYgEAyI44AVCq3qf90wUOKsue7vL8ppEjimPS2EBZN4Pkmukx3dGRYGtiBMBA5U4sAADZUcQCAJAdRSzAAPbCQgcAA41MLLBNWkpaY5XmUpP9NdnXSbtUt9Psq3ZZAHTHnVgAALKjiAUY4NrmzBMrAAYccQKgLp2n9+tpe1VPi600ilB2fGidBUAniliAAURfWGCwECcAACA77sQCpepdAassBrB56bLimPSEPacWxy9b2eXxaYSgc5TBylwAKGIB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mW0bn1vP+cy2jc8NGKwaGieYOHFiTJw48UWP+/KXvxyf/vSnq18/+eSTceKJJ8YNN9wQRx99dF8OEQCAfiiLTOwee+xR8/WoUaMiImKvvfaKqVOnNmJIAAA0UFYttrZXa2trzJ07N1pbWxs9lGz4zLaNz63nfGbbxucGDFYNzcQCAMC2GFR3YgEAGBgUsQAAZEcRCwBAdhSxAABkZ1AXsfPmzYujjz46hg8fHuPHj49TTz210UPKxsaNG+Owww6LpqamWLBgQaOH02+1t7fHu971rthzzz1j+PDhsddee8XcuXNj06ZNjR5av/PVr3412traYtiwYXH00UfHf/3XfzV6SP3WJZdcEkceeWSMHj06Jk2aFKeeemosXLiw0cMC2KEGbRH73e9+N97xjnfEWWedFX/4wx/i17/+dbztbW9r9LCy8ZGPfCSmTJnS6GH0ew8++GBs2bIl/vVf/zX+9Kc/xRe+8IW4+uqr44ILLmj00PqVG264IWbPnh1z586Ne+65Jw499NA48cQTY9myZY0eWr90xx13xDnnnBO//e1v49Zbb43nn38+Xve618W6desaPTSAHWZQttjavHlztLW1xcUXXxzvete7Gj2c7Pz4xz+O2bNnx3e/+9048MAD4957743DDjus0cPKxuc+97m46qqr4tFHH230UPqNo48+Oo488sj4yle+EhERW7ZsiWnTpsX73ve+mDNnToNH1/8tX748Jk2aFHfccUe8+tWvbvRwAHaIQXkn9p577onFixfHkCFD4vDDD4/ddtstTj755Lj//vsbPbR+b+nSpXH22WfH//k//ydGjBjR6OFkafXq1bHzzjs3ehj9xqZNm+Luu++OE044obpvyJAhccIJJ8Sdd97ZwJHlY/Xq1RERfq+AQWVQFrEv3AG76KKL4uMf/3j86Ec/ivHjx8esWbNi5cqVDR5d/1WpVOLMM8+M97znPTFz5sxGDydLDz/8cFx55ZXxz//8z40eSr/x9NNPR0dHR0yePLlm/+TJk2PJkiUNGlU+tmzZEh/84Afjla98ZRx00EGNHg7ADjOgitg5c+ZEU1NTt39eyChGRHzsYx+LN7/5zXHEEUfEtddeG01NTXHjjTc2+LvY8er93K688spYu3ZtnH/++Y0ecsPV+5mlFi9eHCeddFK89a1vjbPPPrtBI2egOeecc+L++++P//iP/2j0UAB2qJZGD6A3nXfeeXHmmWd2e8yMGTPiqaeeioiIAw44oLq/tbU1ZsyYEY8//nhfDrFfqvdzu/322+POO+/cao32mTNnxumnnx7//u//3oej7F/q/cxe8OSTT8Zxxx0Xr3jFK+Kaa67p49HlZZdddonm5uZYunRpzf6lS5fGrrvu2qBR5eHcc8+NH/3oR/GLX/wipk6d2ujhAOxQA6qInThxYkycOPFFjzviiCOitbU1Fi5cGMccc0xERDz//PPR3t4e06dP7+th9jv1fm5f/vKX49Of/nT16yeffDJOPPHEuOGGG+Loo4/uyyH2O/V+ZhF/uwN73HHHVe/4DxkyoCZAttvQoUPjiCOOiNtuu63a5m7Lli1x2223xbnnntvYwfVTlUol3ve+98X3v//9mD9/fuy5556NHhLADjegith6jRkzJt7znvfE3LlzY9q0aTF9+vT43Oc+FxERb33rWxs8uv5rjz32qPl61KhRERGx1157uQtUYvHixTFr1qyYPn16XH755bF8+fLqa+4yFmbPnh1nnHFGzJw5M4466qj44he/GOvWrYuzzjqr0UPrl84555z41re+FT/84Q9j9OjR1ezw2LFjY/jw4Q0eHcCOMSiL2Ii/tTlqaWmJd7zjHbF+/fo4+uij4/bbb4/x48c3emgMILfeems8/PDD8fDDD29V6A/C7nalTjvttFi+fHl84hOfiCVLlsRhhx0WP/nJT7Z62Iu/ueqqqyIiYtasWTX7r7322heNuQAMFIOyTywAAHkTzgMAIDuKWAAAsqOIBQAgO4pYAACyo4gFACA7ilgAALKjiAUAIDuKWAAAsqOIhV7w1FNPxdve9rbYZ599YsiQIfHBD36wy+NuvPHG2G+//WLYsGFx8MEHx80337xjBwoAA4QiFnrBxo0bY+LEifHxj388Dj300C6P+c1vfhP//b//93jXu94V9957b5x66qlx6qmnxv3337+DRwsA+bPsLNRh+fLlcfDBB8f73//+uOCCCyLib0XprFmz4sc//nEcf/zx1WNnzZoVhx12WHzxi1+sucZpp50W69atix/96EfVfS972cvisMMOi6uvvnqHfB8AMFC4Ewt1mDhxYnz961+Piy66KH7/+9/H2rVr4x3veEece+65NQVsd+6888444YQTavadeOKJceedd/bFkAFgQGtp9AAgF69//evj7LPPjtNPPz1mzpwZI0eOjEsuuaTu85csWRKTJ0+u2Td58uRYsmRJbw8VAAY8d2KhBy6//PLYvHlz3HjjjfHNb34zWltbGz0kABiUFLHQA4888kg8+eSTsWXLlmhvb+/RubvuumssXbq0Zt/SpUtj11137cURAsDgoIiFOm3atCne/va3x2mnnRaf+tSn4n/8j/8Ry5Ytq/v8l7/85XHbbbfV7Lv11lvj5S9/eW8PFQAGPJlYqNPHPvaxWL16dXz5y1+OUaNGxc033xzvfOc7q90GFixYEBERzz77bCxfvjwWLFgQQ4cOjQMOOCAiIj7wgQ/EscceG5///OfjlFNOif/4j/+I3//+93HNNdc06lsCgGxpsQV1mD9/frz2ta+Nn//853HMMcdERER7e3sceuihcemll8Z73/veaGpq2uq86dOn18QObrzxxvj4xz8e7e3t8ZKXvCQ++9nPxutf//od9W0AwIChiAUAIDsysQAAZEcRCwBAdhSxAABkRxELAEB2FLEAAGRHEQsAQHYUsQAAZEcRCwBAdhSxAABkRxELAEB2FLEAAGRHEQsAQHb+f5rbvS6L3oI+AAAAAElFTkSuQmCC", + "text/plain": [ + "Figure(PyObject
)" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, axis = plt.subplots(2, 2, figsize=(8,8))\n", + "fig.suptitle(\"Neal's Funnel\", fontsize=16)\n", + "\n", + "fig.delaxes(axis[1,2])\n", + "fig.subplots_adjust(hspace=0)\n", + "fig.subplots_adjust(wspace=0)\n", + "\n", + "axis[1,1].hist(x10_mchmc, bins=100, range=[-6,2])\n", + "axis[1,1].set_yticks([])\n", + "\n", + "axis[2,2].hist(theta_mchmc, bins=100, orientation=\"horizontal\", range=[-4, 2])\n", + "axis[2,2].set_xticks([])\n", + "axis[2,2].set_yticks([])\n", + "\n", + "axis[2,1].hist2d(x10_mchmc, theta_mchmc, bins=100, range=[[-6,2],[-4, 2]])\n", + "axis[2,1].set_xlabel(\"x10\")\n", + "axis[2,1].set_ylabel(\"theta\");" + ] }, { "cell_type": "code", "execution_count": null, - "id": "2a803eb8", + "id": "db7f4a47", "metadata": {}, "outputs": [], "source": [] @@ -451,7 +436,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Julia 1.9.0-beta3", + "display_name": "Julia 1.9.0-rc1", "language": "julia", "name": "julia-1.9" }, diff --git a/Project.toml b/Project.toml index cdffc3b2..e482eb67 100644 --- a/Project.toml +++ b/Project.toml @@ -17,6 +17,7 @@ Setfield = "efcf1570-3423-57d1-acb7-fd33fddbac46" Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" StatsBase = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" StatsFuns = "4c63d2b9-4356-54db-8cca-17b64c39e42c" +Turing = "fce5fe82-541a-59a6-adf8-730c64b5f9a0" UnPack = "3a884ed6-31ef-47d7-9d2a-63182c4928ed" [compat] From 37d6831173fce65ba4ac8e45aa153c085f661529 Mon Sep 17 00:00:00 2001 From: jaimerz Date: Thu, 9 Mar 2023 13:54:27 -0800 Subject: [PATCH 03/27] cleaning Lab a lil --- Lab.ipynb | 192 ++++++++++++------------------------------------------ 1 file changed, 41 insertions(+), 151 deletions(-) diff --git a/Lab.ipynb b/Lab.ipynb index 1948abbd..a33d04d2 100644 --- a/Lab.ipynb +++ b/Lab.ipynb @@ -11,7 +11,7 @@ { "cell_type": "code", "execution_count": 1, - "id": "71111157", + "id": "ac62259b", "metadata": {}, "outputs": [ { @@ -52,7 +52,7 @@ }, { "cell_type": "markdown", - "id": "b1b2050a", + "id": "3d76390f", "metadata": {}, "source": [ "## Model" @@ -88,7 +88,7 @@ { "cell_type": "code", "execution_count": 4, - "id": "a4d0b131", + "id": "5f408f2b", "metadata": {}, "outputs": [ { @@ -108,27 +108,6 @@ "funnel_model = funnel() | (;x)" ] }, - { - "cell_type": "code", - "execution_count": 18, - "id": "59fe3327", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Model{typeof(funnel), (), (), (), Tuple{}, Tuple{}, ConditionContext{NamedTuple{(:x,), Tuple{Vector{Float64}}}, DefaultContext}}" - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "typeof(funnel_model)" - ] - }, { "cell_type": "markdown", "id": "10dfa4cc", @@ -139,35 +118,8 @@ }, { "cell_type": "code", - "execution_count": 16, - "id": "82938e27", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Hamiltonian(metric=DiagEuclideanMetric([1.0, 1.0, 1.0, 1.0, 1.0, 1 ...]), kinetic=GaussianKinetic())" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "context = funnel_model.context\n", - "varinfo = DynamicPPL.VarInfo(funnel_model, context)\n", - "ℓ = LogDensityProblemsAD.ADgradient(DynamicPPL.LogDensityFunction(varinfo, funnel_model, context))\n", - "lπ = Base.Fix1(LogDensityProblems.logdensity, ℓ)\n", - "∂lπ∂θ(x) = LogDensityProblems.logdensity_and_gradient(ℓ, x)\n", - "metric = DiagEuclideanMetric(d)\n", - "hamiltonian = AdvancedHMC.Hamiltonian(metric, lπ, ∂lπ∂θ)" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "id": "7892c22f", + "execution_count": 7, + "id": "be8a75dd", "metadata": {}, "outputs": [ { @@ -176,7 +128,7 @@ "Sampler" ] }, - "execution_count": 19, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -189,7 +141,7 @@ " proposal\n", "end\n", "\n", - "Sampler(ϵ, TAP) = begin\n", + "Sampler(ϵ::Number, TAP::Number) = begin\n", " metric = DiagEuclideanMetric(d)\n", " integrator = Leapfrog(ϵ)\n", " proposal = AdvancedHMC.NUTS{MultinomialTS, GeneralisedNoUTurn}(integrator)\n", @@ -205,22 +157,22 @@ }, { "cell_type": "code", - "execution_count": 20, - "id": "5d2b54c6", + "execution_count": 8, + "id": "baaf795f", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "Sampler(DiagEuclideanMetric([1.0, 1.0, 1.0, 1.0, 1.0, 1 ...]), Leapfrog(ϵ=1.6), StanHMCAdaptor(\n", + "Sampler(DiagEuclideanMetric([1.0, 1.0, 1.0, 1.0, 1.0, 1 ...]), Leapfrog(ϵ=0.8), StanHMCAdaptor(\n", " pc=WelfordVar,\n", - " ssa=NesterovDualAveraging(γ=0.05, t_0=10.0, κ=0.75, δ=0.95, state.ϵ=1.6),\n", + " ssa=NesterovDualAveraging(γ=0.05, t_0=10.0, κ=0.75, δ=0.95, state.ϵ=0.8),\n", " init_buffer=75, term_buffer=50, window_size=25,\n", " state=window(0, 0), window_splits()\n", - "), HMCKernel{AdvancedHMC.FullMomentumRefreshment, Trajectory{MultinomialTS, Leapfrog{Float64}, GeneralisedNoUTurn{Float64}}}(AdvancedHMC.FullMomentumRefreshment(), Trajectory{MultinomialTS}(integrator=Leapfrog(ϵ=1.6), tc=GeneralisedNoUTurn{Float64}(10, 1000.0))))" + "), HMCKernel{AdvancedHMC.FullMomentumRefreshment, Trajectory{MultinomialTS, Leapfrog{Float64}, GeneralisedNoUTurn{Float64}}}(AdvancedHMC.FullMomentumRefreshment(), Trajectory{MultinomialTS}(integrator=Leapfrog(ϵ=0.8), tc=GeneralisedNoUTurn{Float64}(10, 1000.0))))" ] }, - "execution_count": 20, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } @@ -233,27 +185,12 @@ }, { "cell_type": "code", - "execution_count": 23, - "id": "4e6daaa5", + "execution_count": 9, + "id": "e68aec0b", "metadata": {}, - "outputs": [ - { - "ename": "LoadError", - "evalue": "error in method definition: function StatsBase.sample must be explicitly imported to be extended", - "output_type": "error", - "traceback": [ - "error in method definition: function StatsBase.sample must be explicitly imported to be extended", - "", - "Stacktrace:", - " [1] top-level scope", - " @ none:0", - " [2] top-level scope", - " @ In[23]:1" - ] - } - ], + "outputs": [], "source": [ - "function StatsBase.sample(model::DynamicPPL.Model, sampler::Sampler, n_samples::Int, n_adapts::Int;\n", + "function AdvancedHMC.sample(model::DynamicPPL.Model, sampler::Sampler, n_samples::Int, n_adapts::Int;\n", " initial_θ=initial_θ, kwargs...)\n", " ctxt = model.context\n", " vi = DynamicPPL.VarInfo(model, ctxt)\n", @@ -274,37 +211,13 @@ " proposal = sampler.proposal\n", " hamiltonian = AdvancedHMC.Hamiltonian(metric, lπ, ∂lπ∂θ)\n", " \n", - " return StatsBase.sample(hamiltonian, proposal, initial_θ, n_samples, adaptor, n_adapts; progress=true)\n", + " return AdvancedHMC.sample(hamiltonian, proposal, initial_θ, n_samples, adaptor, n_adapts; progress=true)\n", "end " ] }, - { - "cell_type": "code", - "execution_count": 22, - "id": "d155ffb6", - "metadata": {}, - "outputs": [ - { - "ename": "LoadError", - "evalue": "MethodError: no method matching sample(::Model{typeof(funnel), (), (), (), Tuple{}, Tuple{}, ConditionContext{NamedTuple{(:x,), Tuple{Vector{Float64}}}, DefaultContext}}, ::Sampler, ::Int64, ::Int64; initial_θ::Vector{Float64})\n\nSome of the types have been truncated in the stacktrace for improved reading. To emit complete information\nin the stack trace, evaluate `TruncatedStacktraces.VERBOSE[] = true` and re-run the code.\n\n\n\u001b[0mClosest candidates are:\n\u001b[0m sample(\u001b[91m::AbstractRNG\u001b[39m, ::Any, \u001b[91m::AbstractMCMC.AbstractSampler\u001b[39m, ::Any; kwargs...)\n\u001b[0m\u001b[90m @\u001b[39m \u001b[35mAbstractMCMC\u001b[39m \u001b[90m~/.julia/packages/AbstractMCMC/F9Hbk/src/\u001b[39m\u001b[90m\u001b[4mlogdensityproblems.jl:43\u001b[24m\u001b[39m\n\u001b[0m sample(::Any, \u001b[91m::AbstractMCMC.AbstractSampler\u001b[39m, \u001b[91m::AbstractMCMC.AbstractMCMCEnsemble\u001b[39m, ::Integer, \u001b[91m::Integer\u001b[39m; kwargs...)\n\u001b[0m\u001b[90m @\u001b[39m \u001b[35mAbstractMCMC\u001b[39m \u001b[90m~/.julia/packages/AbstractMCMC/F9Hbk/src/\u001b[39m\u001b[90m\u001b[4msample.jl:54\u001b[24m\u001b[39m\n\u001b[0m sample(::Any, \u001b[91m::AbstractMCMC.AbstractSampler\u001b[39m, ::Any; kwargs...)\n\u001b[0m\u001b[90m @\u001b[39m \u001b[35mAbstractMCMC\u001b[39m \u001b[90m~/.julia/packages/AbstractMCMC/F9Hbk/src/\u001b[39m\u001b[90m\u001b[4msample.jl:15\u001b[24m\u001b[39m\n\u001b[0m ...\n", - "output_type": "error", - "traceback": [ - "MethodError: no method matching sample(::Model{typeof(funnel), (), (), (), Tuple{}, Tuple{}, ConditionContext{NamedTuple{(:x,), Tuple{Vector{Float64}}}, DefaultContext}}, ::Sampler, ::Int64, ::Int64; initial_θ::Vector{Float64})\n\nSome of the types have been truncated in the stacktrace for improved reading. To emit complete information\nin the stack trace, evaluate `TruncatedStacktraces.VERBOSE[] = true` and re-run the code.\n\n\n\u001b[0mClosest candidates are:\n\u001b[0m sample(\u001b[91m::AbstractRNG\u001b[39m, ::Any, \u001b[91m::AbstractMCMC.AbstractSampler\u001b[39m, ::Any; kwargs...)\n\u001b[0m\u001b[90m @\u001b[39m \u001b[35mAbstractMCMC\u001b[39m \u001b[90m~/.julia/packages/AbstractMCMC/F9Hbk/src/\u001b[39m\u001b[90m\u001b[4mlogdensityproblems.jl:43\u001b[24m\u001b[39m\n\u001b[0m sample(::Any, \u001b[91m::AbstractMCMC.AbstractSampler\u001b[39m, \u001b[91m::AbstractMCMC.AbstractMCMCEnsemble\u001b[39m, ::Integer, \u001b[91m::Integer\u001b[39m; kwargs...)\n\u001b[0m\u001b[90m @\u001b[39m \u001b[35mAbstractMCMC\u001b[39m \u001b[90m~/.julia/packages/AbstractMCMC/F9Hbk/src/\u001b[39m\u001b[90m\u001b[4msample.jl:54\u001b[24m\u001b[39m\n\u001b[0m sample(::Any, \u001b[91m::AbstractMCMC.AbstractSampler\u001b[39m, ::Any; kwargs...)\n\u001b[0m\u001b[90m @\u001b[39m \u001b[35mAbstractMCMC\u001b[39m \u001b[90m~/.julia/packages/AbstractMCMC/F9Hbk/src/\u001b[39m\u001b[90m\u001b[4msample.jl:15\u001b[24m\u001b[39m\n\u001b[0m ...\n", - "", - "Stacktrace:", - " [1] top-level scope", - " @ In[22]:2" - ] - } - ], - "source": [ - "n_samples, n_adapts = 10_000, 1_000\n", - "sample(funnel_model, sampler, n_samples, n_adapts; initial_θ=initial_θ)" - ] - }, { "cell_type": "markdown", - "id": "177aaeb0", + "id": "3ac319cb", "metadata": {}, "source": [ "## Sampling" @@ -312,8 +225,8 @@ }, { "cell_type": "code", - "execution_count": 13, - "id": "9a554c93", + "execution_count": 10, + "id": "10fae471", "metadata": {}, "outputs": [ { @@ -324,54 +237,39 @@ "\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m - To prevent this behaviour, do `ProgressMeter.ijulia_behavior(:append)`. \n", "\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m - To disable this warning message, do `ProgressMeter.ijulia_behavior(:clear)`.\n", "\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ ProgressMeter ~/.julia/packages/ProgressMeter/sN2xr/src/ProgressMeter.jl:618\u001b[39m\n", - "\u001b[32mSampling 100%|███████████████████████████████| Time: 0:00:01\u001b[39m\n", + "\u001b[32mSampling 100%|███████████████████████████████| Time: 0:00:03\u001b[39m\n", "\u001b[34m iterations: 10000\u001b[39m\n", "\u001b[34m ratio_divergent_transitions: 0.0\u001b[39m\n", "\u001b[34m ratio_divergent_transitions_during_adaption: 0.0\u001b[39m\n", "\u001b[34m n_steps: 15\u001b[39m\n", "\u001b[34m is_accept: true\u001b[39m\n", - "\u001b[34m acceptance_rate: 0.9429472344154662\u001b[39m\n", - "\u001b[34m log_density: -60.09829978233757\u001b[39m\n", - "\u001b[34m hamiltonian_energy: 68.99870162156931\u001b[39m\n", - "\u001b[34m hamiltonian_energy_error: 0.09210815757290902\u001b[39m\n", - "\u001b[34m max_hamiltonian_energy_error: 0.128026123025748\u001b[39m\n", + "\u001b[34m acceptance_rate: 0.9957307002113069\u001b[39m\n", + "\u001b[34m log_density: -56.15323172895425\u001b[39m\n", + "\u001b[34m hamiltonian_energy: 61.98481790053206\u001b[39m\n", + "\u001b[34m hamiltonian_energy_error: -0.09351149588895424\u001b[39m\n", + "\u001b[34m max_hamiltonian_energy_error: -0.23993993436536698\u001b[39m\n", "\u001b[34m tree_depth: 4\u001b[39m\n", "\u001b[34m numerical_error: false\u001b[39m\n", - "\u001b[34m step_size: 0.3022038351736327\u001b[39m\n", - "\u001b[34m nom_step_size: 0.3022038351736327\u001b[39m\n", + "\u001b[34m step_size: 0.2984283755673474\u001b[39m\n", + "\u001b[34m nom_step_size: 0.2984283755673474\u001b[39m\n", "\u001b[34m is_adapt: false\u001b[39m\n", - "\u001b[34m mass_matrix: DiagEuclideanMetric([0.40626103542505176, 0.488 ...])\u001b[39m\n", - "\u001b[36m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mFinished 10000 sampling steps for 1 chains in 1.607604043 (s)\n", - "\u001b[36m\u001b[1m│ \u001b[22m\u001b[39m h = Hamiltonian(metric=DiagEuclideanMetric([0.40626103542505176, 0.488 ...]), kinetic=GaussianKinetic())\n", - "\u001b[36m\u001b[1m│ \u001b[22m\u001b[39m κ = HMCKernel{AdvancedHMC.FullMomentumRefreshment, Trajectory{MultinomialTS, Leapfrog{Float64}, GeneralisedNoUTurn{Float64}}}(AdvancedHMC.FullMomentumRefreshment(), Trajectory{MultinomialTS}(integrator=Leapfrog(ϵ=0.302), tc=GeneralisedNoUTurn{Float64}(10, 1000.0)))\n", - "\u001b[36m\u001b[1m│ \u001b[22m\u001b[39m EBFMI_est = 0.5282960862196817\n", - "\u001b[36m\u001b[1m└ \u001b[22m\u001b[39m average_acceptance_rate = 0.9356960325097549\n" + "\u001b[34m mass_matrix: DiagEuclideanMetric([0.5852522649248381, 0.4935 ...])\u001b[39m\n", + "\u001b[36m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mFinished 10000 sampling steps for 1 chains in 3.565489432 (s)\n", + "\u001b[36m\u001b[1m│ \u001b[22m\u001b[39m h = Hamiltonian(metric=DiagEuclideanMetric([0.5852522649248381, 0.4935 ...]), kinetic=GaussianKinetic())\n", + "\u001b[36m\u001b[1m│ \u001b[22m\u001b[39m κ = HMCKernel{AdvancedHMC.FullMomentumRefreshment, Trajectory{MultinomialTS, Leapfrog{Float64}, GeneralisedNoUTurn{Float64}}}(AdvancedHMC.FullMomentumRefreshment(), Trajectory{MultinomialTS}(integrator=Leapfrog(ϵ=0.298), tc=GeneralisedNoUTurn{Float64}(10, 1000.0)))\n", + "\u001b[36m\u001b[1m│ \u001b[22m\u001b[39m EBFMI_est = 0.5632576843403713\n", + "\u001b[36m\u001b[1m└ \u001b[22m\u001b[39m average_acceptance_rate = 0.9339986654725632\n" ] } ], "source": [ - "# Set the number of samples to draw and warmup iterations\n", "n_samples, n_adapts = 10_000, 1_000\n", - "initial_θ = randn(21)\n", - "initial_ϵ = find_good_stepsize(hamiltonian, initial_θ)\n", - "integrator = Leapfrog(initial_ϵ)\n", - "\n", - "# Define an HMC sampler, with the following components\n", - "# - multinomial sampling scheme,\n", - "# - generalised No-U-Turn criteria, and\n", - "# - windowed adaption for step-size and diagonal mass matrix\n", - "proposal = AdvancedHMC.NUTS{MultinomialTS, GeneralisedNoUTurn}(integrator)\n", - "adaptor = StanHMCAdaptor(MassMatrixAdaptor(metric), StepSizeAdaptor(0.95, integrator))\n", - "\n", - "# Run the sampler to draw samples from the specified Gaussian, where\n", - "# - `samples` will store the samples\n", - "# - `stats` will store diagnostic statistics for each sample\n", - "samples, stats = sample(hamiltonian, proposal, initial_θ, n_samples, adaptor, n_adapts; progress=true);" + "samples, stats = sample(funnel_model, sampler, n_samples, n_adapts; initial_θ=initial_θ);" ] }, { "cell_type": "markdown", - "id": "b823abef", + "id": "7839a767", "metadata": {}, "source": [ "## Plotting" @@ -379,7 +277,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 11, "id": "2a803eb8", "metadata": {}, "outputs": [], @@ -390,13 +288,13 @@ }, { "cell_type": "code", - "execution_count": 15, - "id": "a499aa74", + "execution_count": 12, + "id": "00f17868", "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAArEAAAL3CAYAAACd2x1cAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAABSEUlEQVR4nO3deZhdVZkv/rdSRSrzQEgCISFFQOZRAjigBEEBUZtutblXtAG92PoDhw4OAcWAegUUcUCF5vYVmqveRhwbgwqCwQlpBaKgEJlKSCADCRkIGUjl/P7wcvY6ldrFqaQqp1bV5/M8eZ5d++y9z6pTFXiz13e/q6lSqVQCAAAyMqTRAwAAgJ5SxAIAkB1FLAAA2VHEAgCQHUUsAADZUcQCAJAdRSwAANlRxAIAkB1FLAAA2VHEAg3R1tYWTU1N0dTUFN/5zndKjzvhhBOiqakprrvuuh03uE7a29ujqakp2tratnrthe+jL73wOXX35wc/+EGfjqG/uOiii6KpqSkuuuiiRg8FaLCWRg8A4GMf+1iceuqp0dLiP0ndOfHEE2PXXXft8rU99thjB48GoLH8HwNoqBEjRsRf/vKX+Ld/+7d4z3ve0+jh9Gtz5syJWbNmNXoYAP2COAHQUB/4wAciIuKTn/xkPPfccw0eDQC5UMQCDfX6178+jj322HjqqafiC1/4Qo/Pv/vuu+P000+PPfbYI1pbW2PnnXeOE088MW6++eYuj//zn/8cc+fOjVe+8pWx++67x9ChQ2PChAlxwgknxLe//e3t/XaqnnrqqfjABz4Q++yzTwwbNixGjBgR06ZNi+OPPz4uv/zyXnufzmbNmhVNTU0xf/78Ll8vy5Sm+5cvXx7nnHNOTJs2LYYOHRrTpk2L973vfbFq1aqtrnfddddFU1NTnHnmmbFu3bo4//zzY++9947W1tbYdddd44wzzojFixeXjvfJJ5+M2bNnx/777x8jRoyI0aNHx5FHHhlf+cpXYvPmzdvxSQADnSIWaLjLLrssIiI++9nPxooVK+o+70tf+lIcddRR8a1vfSsmTJgQb3rTm+LAAw+M+fPnxymnnBKf/OQntzrniiuuiE9+8pOxcuXKOPjgg+Mf/uEfYt99942f//zncdppp8Xs2bO3+/tZsmRJzJw5M7785S/Hxo0b46STToo3velNseeee8aCBQvi05/+9Ha/R1954okn4qUvfWl897vfjaOOOipe+9rXxtq1a+MrX/lKvO51r4vnn3++y/NWr14dr3jFK+Lqq6+OAw44IE4++eSoVCpx/fXXxytf+cpYvXr1Vuf84he/iIMOOii+8IUvxIYNG+K1r31tvPKVr4xHHnkk3ve+98Upp5xS+n4AUQFogOnTp1ciovLLX/6yUqlUKv/wD/9QiYjKv/zLv9Qcd/zxx1cionLttdfW7P/JT35SaWpqquyyyy6VO+64o+a1P/7xj5WpU6dWIqIyf/78mtfmz59feeSRR7Yaz4MPPlg956677qp57bHHHqtERGX69Ol1fW8XX3xxJSIq7373uytbtmypeW3Tpk2Vn/3sZ3Vd5wURUYmIys9//vMXPfbYY4/t9ti5c+dWIqIyd+7cLvdHROXMM8+sbNiwofra448/Xtl9990rEVH51re+VXPetddeWz3vxBNPrKxevbr62sqVKyuHHXZYJSIqn/nMZ2rOe+qppyoTJkyoNDU1Vb72ta9VOjo6qq89/fTTlde85jWViKhcfPHFdY0fGHzciQX6hc985jPR0tISX/va1+Kvf/3rix4/d+7cqFQqcfXVV8erX/3qmtcOPvjguOKKKyIi4sorr6x57dhjj40ZM2Zsdb199903LrzwwoiIblt+1WPp0qUREXHSSSdt1X5rp512iuOPP36brnvcccd12V7rzDPP3K7xpqZOnRpf/epXo7W1tbrvhThBRMTPfvazLs8bOXJkXHvttTFmzJjqvvHjx8ecOXO6PO+LX/xirFixIs4555x473vfG0OGFP87mjBhQlx//fWx0047xVe+8pWoVCq99v0BA4fuBEC/sO+++8Y73/nOuOaaa+LCCy+M66+/vvTYp59+Ov7rv/4rhg8fHm984xu7POaFp/h/85vfbPXas88+Gz/+8Y/j3nvvjaeffjo2bdoUEX/LsUZELFy4cLu+l6OOOiq+9rWvxZw5c6JSqcTrXve6GDVq1HZdM6K8xdYxxxyz3dd+wfHHHx8jRozYav/+++8fEVGab505c2bstttudZ83b968iIg47bTTurze7rvvHi95yUviz3/+czz00EOxzz771P9NAIOCIhboNy666KL4xje+Ed/85jfjQx/6UBxyyCFdHvfYY49FpVKJ9evX19wx7Mry5ctrvr7pppvirLPO6jZ7u2bNmp4PPvGOd7wjbr311vjmN78Zb37zm6O5uTkOOOCAOOaYY+Itb3lLvOY1r9mm6+6IFltl/WZfuMO6YcOGXjnv0UcfjYiIV73qVS86puXLlytiga0oYoF+Y7fddosPfOADcckll8T5559fvVvX2ZYtWyIiYtSoUfHmN7+57usvXrw4TjvttFi/fn185CMfidNPPz3a2tpi1KhRMWTIkLjlllvixBNP3O7p6yFDhsQ3vvGNuOCCC2LevHnx61//On7961/HVVddFVdddVW88Y1vjO9///vR3Ny8Xe+zLV747Mqk0/o90dPzXhjHW97ylhg5cmS3x06YMGGbxgQMbIpYoF/56Ec/Gtdcc03cfPPN8Ytf/KLLY6ZNmxYRf1uO9etf/3rdBdRNN90U69evj7//+7+vdkRIPfTQQ9s+8C4ccMABccABB8SHP/zhqFQqcfvtt8fb3va2uOmmm+L666+Ps846q1ffLyJi6NChERGxdu3aLl+vJ2+8I0ybNi0eeuih+OhHPxozZ85s9HCADHmwC+hXxo4dGxdccEFERHzkIx/p8pgpU6bEIYccEmvXro2f/OQndV975cqVERExffr0rV6rVCrxrW99axtGXJ+mpqY4/vjj421ve1tERCxYsKBP3mf33XePiIgHHnhgq9eee+65+PnPf94n79tTJ598ckREr/bmBQYXRSzQ75xzzjmxxx57xF133RV33nlnl8e80Gv1rLPOiptuummr1yuVStx1111xyy23VPe98JDRd77znepDXBERHR0d8YlPfKLLh8C2xfXXXx933333VvvXrl1bXYSgq0K6N5xwwgkREfHVr3615mGqdevWxbvf/e544okn+uR9e+rDH/5wjBs3Lq644or4/Oc/X324LvXYY4/FN77xjQaMDsiBIhbod1pbW6sLFZQtRfvGN74xvvSlL8XKlSvjTW96U7zkJS+JN7zhDXH66afH6173uth1113jZS97Wdx+++015xxxxBGxaNGi2GeffeINb3hDnHbaabHXXnvFZZddFh/96Ed7Zfzf+973YubMmbH77rvHKaecEm9/+9vjlFNOiWnTpsWCBQvioIMOirPPPrtX3quzf/zHf4yZM2fG448/HgceeGC84Q1viNe//vWx5557xvz58+Od73xnn7xvT02dOjV++MMfxvjx4+NDH/pQdTWzt7/97fHGN74x9t5775gx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wSmLIra9vT0+9alPxe233x5LliyJKVOmxNvf/vb42Mc+FkOHDm308ACyUXY31oNfQG6yKGIffPDB2LJlS/zrv/5r7L333nH//ffH2WefHevWrYvLL7+80cMDAGAHy6KIPemkk+Kkk06qfj1jxoxYuHBhXHXVVYpY6AVl0/Npd4I0MhDRKV6QxAY60thAHe9dFjlI369zlGFbFkJ4MfVEFADoP7IoYruyevXq2Hnnnbs9ZuPGjbFx48bq12vWrOnrYQH0e6IDwECQZXeChx9+OK688sr453/+526Pu+SSS2Ls2LHVP9OmTdtBIwQAoC819E7snDlz4rLLLuv2mAceeCD2269ogL548eI46aST4q1vfWucffbZ3Z57/vnnx+zZs6tfr1mzRiELXaiJEJRNq3eaYi9bTKBsgYOmA2cU2+1LqtuVScWMSvofpEpybuf4QE+n+7uLJmzrNQForIYWseedd16ceeaZ3R4zY0bxP74nn3wyjjvuuHjFK14R11xzzYtev7W1NVpbW7d3mADZEyEABpqGFrETJ06MiRMn1nXs4sWL47jjjosjjjgirr322hgyJMskBAAAvSCLB7sWL14cs2bNiunTp8fll18ey5cvr7626667NnBkMPCURQvqPS6NFqSa2oq/q2mEIF3goJIe381CCz3tJFAWIQAgX1kUsbfeems8/PDD8fDDD8fUqVNrXqtUKiVnAfCCtjnzRAqAASWLOfkzzzwzKpVKl38AABh8srgTC+w49S4kUDalX9adYPNdfyyOr+P9uosA1NVNAYABTRELMMCJEQADURZxAgAASLkTC9Qom5Kvd8GBmoUPkkUG0u2OpFNBRxIzSN9jW2ICogVda5szLyLckQUGFndiAQDIjiIWAIDsiBMA26SeLgZlHQaak64FTWXdDOpcoKDexRkGO1ECYKBxJxYAgOwoYgEAyI44AVCq3qf90wUOKsue7vL8ppEjimPS2EBZN4Pkmukx3dGRYGtiBMBA5U4sAADZUcQCAJAdRSzAAPbCQgcAA41MLLBNWkpaY5XmUpP9NdnXSbtUt9Psq3ZZAHTHnVgAALKjiAUY4NrmzBMrAAYccQKgLp2n9+tpe1VPi600ilB2fGidBUAniliAAURfWGCwECcAACA77sQCpepdAassBrB56bLimPSEPacWxy9b2eXxaYSgc5TBylwAKGIB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mW0bn1vP+cy2jc8NGKwaGieYOHFiTJw48UWP+/KXvxyf/vSnq18/+eSTceKJJ8YNN9wQRx99dF8OEQCAfiiLTOwee+xR8/WoUaMiImKvvfaKqVOnNmJIAAA0UFYttrZXa2trzJ07N1pbWxs9lGz4zLaNz63nfGbbxucGDFYNzcQCAMC2GFR3YgEAGBgUsQAAZEcRCwBAdhSxAABkZ1AXsfPmzYujjz46hg8fHuPHj49TTz210UPKxsaNG+Owww6LpqamWLBgQaOH02+1t7fHu971rthzzz1j+PDhsddee8XcuXNj06ZNjR5av/PVr3412traYtiwYXH00UfHf/3XfzV6SP3WJZdcEkceeWSMHj06Jk2aFKeeemosXLiw0cMC2KEGbRH73e9+N97xjnfEWWedFX/4wx/i17/+dbztbW9r9LCy8ZGPfCSmTJnS6GH0ew8++GBs2bIl/vVf/zX+9Kc/xRe+8IW4+uqr44ILLmj00PqVG264IWbPnh1z586Ne+65Jw499NA48cQTY9myZY0eWr90xx13xDnnnBO//e1v49Zbb43nn38+Xve618W6desaPTSAHWZQttjavHlztLW1xcUXXxzvete7Gj2c7Pz4xz+O2bNnx3e/+9048MAD4957743DDjus0cPKxuc+97m46qqr4tFHH230UPqNo48+Oo488sj4yle+EhERW7ZsiWnTpsX73ve+mDNnToNH1/8tX748Jk2aFHfccUe8+tWvbvRwAHaIQXkn9p577onFixfHkCFD4vDDD4/ddtstTj755Lj//vsbPbR+b+nSpXH22WfH//k//ydGjBjR6OFkafXq1bHzzjs3ehj9xqZNm+Luu++OE044obpvyJAhccIJJ8Sdd97ZwJHlY/Xq1RERfq+AQWVQFrEv3AG76KKL4uMf/3j86Ec/ivHjx8esWbNi5cqVDR5d/1WpVOLMM8+M97znPTFz5sxGDydLDz/8cFx55ZXxz//8z40eSr/x9NNPR0dHR0yePLlm/+TJk2PJkiUNGlU+tmzZEh/84Afjla98ZRx00EGNHg7ADjOgitg5c+ZEU1NTt39eyChGRHzsYx+LN7/5zXHEEUfEtddeG01NTXHjjTc2+LvY8er93K688spYu3ZtnH/++Y0ecsPV+5mlFi9eHCeddFK89a1vjbPPPrtBI2egOeecc+L++++P//iP/2j0UAB2qJZGD6A3nXfeeXHmmWd2e8yMGTPiqaeeioiIAw44oLq/tbU1ZsyYEY8//nhfDrFfqvdzu/322+POO+/cao32mTNnxumnnx7//u//3oej7F/q/cxe8OSTT8Zxxx0Xr3jFK+Kaa67p49HlZZdddonm5uZYunRpzf6lS5fGrrvu2qBR5eHcc8+NH/3oR/GLX/wipk6d2ujhAOxQA6qInThxYkycOPFFjzviiCOitbU1Fi5cGMccc0xERDz//PPR3t4e06dP7+th9jv1fm5f/vKX49Of/nT16yeffDJOPPHEuOGGG+Loo4/uyyH2O/V+ZhF/uwN73HHHVe/4DxkyoCZAttvQoUPjiCOOiNtuu63a5m7Lli1x2223xbnnntvYwfVTlUol3ve+98X3v//9mD9/fuy5556NHhLADjegith6jRkzJt7znvfE3LlzY9q0aTF9+vT43Oc+FxERb33rWxs8uv5rjz32qPl61KhRERGx1157uQtUYvHixTFr1qyYPn16XH755bF8+fLqa+4yFmbPnh1nnHFGzJw5M4466qj44he/GOvWrYuzzjqr0UPrl84555z41re+FT/84Q9j9OjR1ezw2LFjY/jw4Q0eHcCOMSiL2Ii/tTlqaWmJd7zjHbF+/fo4+uij4/bbb4/x48c3emgMILfeems8/PDD8fDDD29V6A/C7nalTjvttFi+fHl84hOfiCVLlsRhhx0WP/nJT7Z62Iu/ueqqqyIiYtasWTX7r7322heNuQAMFIOyTywAAHkTzgMAIDuKWAAAsqOIBQAgO4pYAACyo4gFACA7ilgAALKjiAUAIDuKWAAAsqOIhV7w1FNPxdve9rbYZ599YsiQIfHBD36wy+NuvPHG2G+//WLYsGFx8MEHx80337xjBwoAA4QiFnrBxo0bY+LEifHxj388Dj300C6P+c1vfhP//b//93jXu94V9957b5x66qlx6qmnxv3337+DRwsA+bPsLNRh+fLlcfDBB8f73//+uOCCCyLib0XprFmz4sc//nEcf/zx1WNnzZoVhx12WHzxi1+sucZpp50W69atix/96EfVfS972cvisMMOi6uvvnqHfB8AMFC4Ewt1mDhxYnz961+Piy66KH7/+9/H2rVr4x3veEece+65NQVsd+6888444YQTavadeOKJceedd/bFkAFgQGtp9AAgF69//evj7LPPjtNPPz1mzpwZI0eOjEsuuaTu85csWRKTJ0+u2Td58uRYsmRJbw8VAAY8d2KhBy6//PLYvHlz3HjjjfHNb34zWltbGz0kABiUFLHQA4888kg8+eSTsWXLlmhvb+/RubvuumssXbq0Zt/SpUtj11137cURAsDgoIiFOm3atCne/va3x2mnnRaf+tSn4n/8j/8Ry5Ytq/v8l7/85XHbbbfV7Lv11lvj5S9/eW8PFQAGPJlYqNPHPvaxWL16dXz5y1+OUaNGxc033xzvfOc7q90GFixYEBERzz77bCxfvjwWLFgQQ4cOjQMOOCAiIj7wgQ/EscceG5///OfjlFNOif/4j/+I3//+93HNNdc06lsCgGxpsQV1mD9/frz2ta+Nn//853HMMcdERER7e3sceuihcemll8Z73/veaGpq2uq86dOn18QObrzxxvj4xz8e7e3t8ZKXvCQ++9nPxutf//od9W0AwIChiAUAIDsysQAAZEcRCwBAdhSxAABkRxELAEB2FLEAAGRHEQsAQHYUsQAAZEcRCwBAdhSxAABkRxELAEB2FLEAAGRHEQsAQHb+f5rbvS6L3oI+AAAAAElFTkSuQmCC", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAArEAAAL3CAYAAACd2x1cAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAABTf0lEQVR4nO39e3idZZ0v/n/SpA30DKW0lIaWchIEKVJBARUEAUGRGXX4jcgAunHwh6hTPBQUC+oWUcQDKgwzW5CtbhHPWA8gJ08ocuge0FIO2im0tJTWtumBtE3W9w9213OvkJWutElW7uT1uq5e1521nudZd1ZC+fS53+tzN5RKpVIAAEBGhtV7AgAA0FOKWAAAsqOIBQAgO4pYAACyo4gFACA7ilgAALKjiAUAIDuKWAAAsqOIBQAgO4pYoC6mT58eDQ0N0dDQEN/73veqHnfCCSdEQ0ND3Hjjjf03uU4WLVoUDQ0NMX369Bc9t/X76Etb36fu/vzoRz/q0zkMFJdddlk0NDTEZZddVu+pAHXWVO8JAHz0ox+N008/PZqa/JXUnZNOOikmT57c5XN77bVXP88GoL78HwOoq5EjR8Zjjz0W//mf/xnnn39+vaczoM2ZMyeOPfbYek8DYEAQJwDq6v3vf39ERHziE5+IDRs21Hk2AORCEQvU1SmnnBKvfe1r45lnnokvfOELPT7/gQceiDPPPDP22muvaG5ujl133TVOOumk+NnPftbl8X/5y19i7ty5cfTRR8eee+4ZI0aMiAkTJsQJJ5wQ3/3ud3f02yl75pln4v3vf3/sv//+sdNOO8XIkSOjpaUljj/++Ljqqqt67XU6O/bYY6OhoSHuvvvuLp+vlilNH1+xYkVccMEF0dLSEiNGjIiWlpa48MILY/Xq1S+63o033hgNDQ1xzjnnxPr16+Piiy+OfffdN5qbm2Py5Mlx9tlnx5IlS6rOd+nSpTF79uw48MADY+TIkTFmzJh4xSteEV/5yldiy5YtO/BOAIOdIhaouyuvvDIiIj772c/GypUraz7vS1/6UhxxxBHx7W9/OyZMmBCnnXZavPSlL4277747Tj311PjEJz7xonOuvvrq+MQnPhGrVq2KQw45JP7xH/8xDjjggLjrrrvijDPOiNmzZ+/w97Ns2bKYNWtWfPnLX462trY4+eST47TTTou999475s+fH5/61Kd2+DX6ylNPPRUvf/nL4/vf/34cccQR8frXvz5aW1vjK1/5Spx44omxefPmLs9bs2ZNHHXUUXHdddfFQQcdFG94wxuiVCrFTTfdFEcffXSsWbPmRef8+te/joMPPji+8IUvxPPPPx+vf/3r4+ijj44nn3wyLrzwwjj11FOrvh5AlADqYNq0aaWIKP3mN78plUql0j/+4z+WIqL0b//2bxXHHX/88aWIKN1www0Vj//iF78oNTQ0lHbbbbfSPffcU/Hcf/3Xf5WmTp1aiojS3XffXfHc3XffXXryySdfNJ9HH320fM4f//jHiuf+9re/lSKiNG3atJq+t8svv7wUEaV3v/vdpY6OjornNm3aVPrVr35V03W2iohSRJTuuuuubR772te+tttj586dW4qI0ty5c7t8PCJK55xzTun5558vP7d48eLSnnvuWYqI0re//e2K82644YbyeSeddFJpzZo15edWrVpVmjlzZikiSp/+9KcrznvmmWdKEyZMKDU0NJS+9rWvldrb28vPPffcc6XXve51pYgoXX755TXNHxh63IkFBoRPf/rT0dTUFF/72tfiv//7v7d5/Ny5c6NUKsV1110Xr3nNayqeO+SQQ+Lqq6+OiIhrrrmm4rnXvva1MWPGjBdd74ADDohLL700IqLbll+1WL58eUREnHzyyS9qvzV8+PA4/vjjt+u6xx13XJfttc4555wdmm9q6tSp8dWvfjWam5vLj22NE0RE/OpXv+ryvFGjRsUNN9wQY8eOLT+2yy67xJw5c7o874tf/GKsXLkyLrjggnjPe94Tw4YV/zuaMGFC3HTTTTF8+PD4yle+EqVSqde+P2Dw0J0AGBAOOOCAeOc73xnXX399XHrppXHTTTdVPfa5556L++67L3beeed405ve1OUxWz/F//vf//5Fz61bty5+/vOfx0MPPRTPPfdcbNq0KSJeyLFGRCxcuHCHvpcjjjgivva1r8WcOXOiVCrFiSeeGKNHj96ha0ZUb7F1zDHH7PC1tzr++ONj5MiRL3r8wAMPjIiomm+dNWtW7LHHHjWfN2/evIiIOOOMM7q83p577hn77bdf/OUvf4nHH3889t9//9q/CWBIUMQCA8Zll10W3/zmN+Nb3/pWfPCDH4yXvexlXR73t7/9LUqlUmzcuLHijmFXVqxYUfH1rbfeGueee2632du1a9f2fPKJs846K26//fb41re+FW95y1uisbExDjrooDjmmGPirW99a7zuda/bruv2R4utav1mt95hff7553vlvL/+9a8REfHqV796m3NasWKFIhZ4EUUsMGDsscce8f73vz+uuOKKuPjii8t36zrr6OiIiIjRo0fHW97ylpqvv2TJkjjjjDNi48aN8eEPfzjOPPPMmD59eowePTqGDRsWt912W5x00kk7vHw9bNiw+OY3vxmXXHJJzJs3L373u9/F7373u7j22mvj2muvjTe96U3xwx/+MBobG3fodbbH1veumnRZvyd6et7Webz1rW+NUaNGdXvshAkTtmtOwOCmiAUGlI985CNx/fXXx89+9rP49a9/3eUxLS0tEfHCdqxf//rXay6gbr311ti4cWP8wz/8Q7kjQurxxx/f/ol34aCDDoqDDjooPvShD0WpVIo777wz3v72t8ett94aN910U5x77rm9+noRESNGjIiIiNbW1i6fryVv3B9aWlri8ccfj4985CMxa9asek8HyJAPdgEDyrhx4+KSSy6JiIgPf/jDXR4zZcqUeNnLXhatra3xi1/8ouZrr1q1KiIipk2b9qLnSqVSfPvb396OGdemoaEhjj/++Hj7298eERHz58/vk9fZc889IyJiwYIFL3puw4YNcdddd/XJ6/bUG97whoiIXu3NCwwtilhgwLngggtir732ij/+8Y9x7733dnnM1l6r5557btx6660ver5UKsUf//jHuO2228qPbf2Q0fe+973yh7giItrb2+PjH/94lx8C2x433XRTPPDAAy96vLW1tbwJQVeFdG844YQTIiLiq1/9asWHqdavXx/vfve746mnnuqT1+2pD33oQzF+/Pi4+uqr4/Of/3z5w3Wpv/3tb/HNb36zDrMDcqCIBQac5ubm8kYF1baifdOb3hRf+tKXYtWqVXHaaafFfvvtF2984xvjzDPPjBNPPDEmT54cr3zlK+POO++sOOfwww+Pp59+Ovbff/944xvfGGeccUbss88+ceWVV8ZHPvKRXpn/D37wg5g1a1bsueeeceqpp8Y73vGOOPXUU6OlpSXmz58fBx98cJx33nm98lqd/dM//VPMmjUrFi9eHC996UvjjW98Y5xyyimx9957x9133x3vfOc7++R1e2rq1Knx4x//OHbZZZf44Ac/WN7N7B3veEe86U1vin333Tdm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AMiOO7HAkCQrC5A3RSyDgoIEAIYWRSzZUbACANkUsVdccUX84Ac/iEcffTR23nnnOOqoo+LKK6+MAw44oN5To48oVgGAarIpYu+555644IIL4hWveEVs2bIlLrnkkjjxxBPjL3/5S4waNare06OXKFwZSLb+PupYADDwNJRKpVK9J7E9VqxYEbvvvnvcc8898ZrXvKamc9auXRvjxo2LNWvWxNixY/t4hkNDb7cmUsQy0A20gtbfa8BQlc2d2M7WrFkTERG77rprnWfCtmyr0FW4kpNqv68DrbgFGOyyLGI7OjriAx/4QBx99NFx8MEHVz2ura0t2trayl///e9/j4iIp59+2h2L7fDKT99RHv/hkuMjImLL2ufKj039/3/jRc9XO6ba85Crp59+uuZju/pvaXutXr06IiJWrVq1Q9cBGChKpVK0trbGlClTYtiw6lsaZBkneM973hM///nP47e//W1MnTq16nGXXXZZXH755f04MwAAesNTTz3VbZ2XXRH73ve+N3784x/Hr3/969h77727PbarO7HTp0+PY+KUaIrhfT1VgD63MdbHH+NX8dRTT1lhAgaFtWvXRktLS6xevTrGjRtX9bhs4gSlUikuvPDC+OEPfxh33333NgvYiIjm5uZobm5+0eNNMTyaGhSxQP6Gl0ZERMTYsWMVscCg0tDQ0O3z2RSxF1xwQXz729+OH//4xzFmzJhYtmxZRESMGzcudt555zrPDgCA/lQ9LTvAXHvttbFmzZo49thjY4899ij/ufnmm+s9NQAA+lk2d2Izi+4CANCHsiligd7VmITl2/9f32UAyEU2cQIAANhKEQsAQHbECRjyerqs3tipZ121c+q5XC8q0D+8zwD1404sAADZUcQCAJAdcQKGvJ4uA/fmsnG15egdXaau5RzL3zvOewhQP+7EAgCQHUUsAADZESegT/TWp7Z789PffTGn7q5VSzxgR87tTTopAJAbd2IBAMiOIhYAgOyIE9AnemtZuDeXl3dkib5zhGBHXrs/VJtvT7/Xau9Zrdeq5boiBABsD3diAQDIjiIWAIDsiBMw6PTFBgLdLav3tVpfu5Yl+sYD9y+OWfDYNo+vdv3tMRg7KwBQP4pYgEHg4Lm/jGHNIyMiYtFnTq3zbAD6njgBAADZcSeWfrUjXQFqXSquZQOBHXmNWueRLt3H0uXbvFYt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Pv7xj8eyZcti5syZ8Ytf/OJFH/biBddee21ERBx77LEVj99www3bjLkADBZDsk8sAAB5E84DACA7ilgAALKjiAUAIDuKWAAAsqOIBQAgO4pYAACyo4gFACA7ilgAALKjiIVe8Mwzz8Tb3/722H///WPYsGHxgQ98oMvjbrnllnjJS14SO+20UxxyyCHxs5/9rH8nCgCDhCIWekFbW1tMnDgxPvaxj8Whhx7a5TG///3v45//+Z/jXe96Vzz00ENx+umnx+mnnx6PPPJIP88WAPJn21mowYoVK+KQQw6J973vfXHJJZdExAtF6bHHHhs///nP4/jjjy8fe+yxx8bMmTPji1/8YsU1zjjjjFi/fn389Kc/LT/2yle+MmbOnBnXXXddv3wfADBYuBMLNZg4cWJ8/etfj8suuyzuv//+aG1tjbPOOive+973VhSw3bn33nvjhBNOqHjspJNOinvvvbcvpgwAg1pTvScAuTjllFPivPPOizPPPDNmzZoVo0aNiiuuuKLm85ctWxaTJk2qeGzSpEmxbNmy3p4qAAx67sRCD1x11VWxZcuWuOWWW+Jb3/pWNDc313tKADAkKWKhB5588slYunRpdHR0xKJFi3p07uTJk2P58uUVjy1fvjwmT57cizMEgKFBEQs12rRpU7zjHe+IM844Iz75yU/G//gf/yOeffbZms9/1ateFXfccUfFY7fffnu86lWv6u2pAsCgJxMLNfroRz8aa9asiS9/+csxevTo+NnPfhbvfOc7y90G5s+fHxER69atixUrVsT8+fNjxIgRcdBBB0VExPvf//547WtfG5///Ofj1FNPje985ztx//33x/XXX1+vbwkAsqXFFtTg7rvvjte//vVx1113xTHHHBMREYsWLYpDDz00PvOZz8R73vOeaGhoeNF506ZNq4gd3HLLLfGxj30sFi1aFPvtt1989rOfjVNOOaW/vg0AGDQUsQAAZEcmFgCA7ChiAQDIjiIWAIDsKGIBAMiOIhYAgOwoYgEAyI4iFgCA7ChiAQDIjiIWAIDsKGIBAMiOIhYAgOwoYgEAyM7/B3L7nFuDtyqEAAAAAElFTkSuQmCC", "text/plain": [ "Figure(PyObject
)" ] @@ -424,14 +322,6 @@ "axis[2,1].set_xlabel(\"x10\")\n", "axis[2,1].set_ylabel(\"theta\");" ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "db7f4a47", - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { From 6fe64365c0454168076838197757a7d2ec8879c6 Mon Sep 17 00:00:00 2001 From: jaimerz Date: Fri, 10 Mar 2023 11:27:02 -0800 Subject: [PATCH 04/27] Coded interface in --- Lab.ipynb | 145 +++++++++++++++----------------------------- Project.toml | 1 + src/AdvancedHMC.jl | 4 ++ src/sampler.jl | 62 +++++++++++++++++++ src/turing_utils.jl | 19 ++++++ 5 files changed, 136 insertions(+), 95 deletions(-) create mode 100644 src/turing_utils.jl diff --git a/Lab.ipynb b/Lab.ipynb index a33d04d2..298f460c 100644 --- a/Lab.ipynb +++ b/Lab.ipynb @@ -11,24 +11,6 @@ { "cell_type": "code", "execution_count": 1, - "id": "ac62259b", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32m\u001b[1m Activating\u001b[22m\u001b[39m project at `~/PhD/AdvancedHMC.jl`\n" - ] - } - ], - "source": [ - "] activate \".\"" - ] - }, - { - "cell_type": "code", - "execution_count": 2, "id": "baed58e3", "metadata": {}, "outputs": [], @@ -60,7 +42,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "id": "a7d6f81c", "metadata": {}, "outputs": [ @@ -70,7 +52,7 @@ "funnel (generic function with 2 methods)" ] }, - "execution_count": 3, + "execution_count": 2, "metadata": {}, "output_type": "execute_result" } @@ -87,7 +69,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "id": "5f408f2b", "metadata": {}, "outputs": [ @@ -97,7 +79,7 @@ "Model{typeof(funnel), (), (), (), Tuple{}, Tuple{}, ConditionContext{NamedTuple{(:x,), Tuple{Vector{Float64}}}, DefaultContext}}(funnel, NamedTuple(), NamedTuple(), ConditionContext((x = [0.7273459156073062, -0.7137895625029701, -1.3112158987551843, 3.195064335503728, 0.6578668590997088, 1.8201670957594605, 2.5774094189910475, 1.2959606640141557, -2.615684720848553, -1.7192495259048919, 0.38510954102334116, 0.7049475219687015, 1.4527158089056038, 1.5438517444010695, 0.8504145036053463, 0.9997932200168839, -0.14767140951984356, 0.6046583528834097, -0.38477500804604936, -1.506202996455002],), DefaultContext()))" ] }, - "execution_count": 4, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } @@ -118,7 +100,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 4, "id": "be8a75dd", "metadata": {}, "outputs": [ @@ -128,7 +110,7 @@ "Sampler" ] }, - "execution_count": 7, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } @@ -157,62 +139,30 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 5, "id": "baaf795f", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "Sampler(DiagEuclideanMetric([1.0, 1.0, 1.0, 1.0, 1.0, 1 ...]), Leapfrog(ϵ=0.8), StanHMCAdaptor(\n", + "Sampler(DiagEuclideanMetric([1.0, 1.0, 1.0, 1.0, 1.0, 1 ...]), Leapfrog(ϵ=0.1), StanHMCAdaptor(\n", " pc=WelfordVar,\n", - " ssa=NesterovDualAveraging(γ=0.05, t_0=10.0, κ=0.75, δ=0.95, state.ϵ=0.8),\n", + " ssa=NesterovDualAveraging(γ=0.05, t_0=10.0, κ=0.75, δ=0.95, state.ϵ=0.1),\n", " init_buffer=75, term_buffer=50, window_size=25,\n", " state=window(0, 0), window_splits()\n", - "), HMCKernel{AdvancedHMC.FullMomentumRefreshment, Trajectory{MultinomialTS, Leapfrog{Float64}, GeneralisedNoUTurn{Float64}}}(AdvancedHMC.FullMomentumRefreshment(), Trajectory{MultinomialTS}(integrator=Leapfrog(ϵ=0.8), tc=GeneralisedNoUTurn{Float64}(10, 1000.0))))" + "), HMCKernel{AdvancedHMC.FullMomentumRefreshment, Trajectory{MultinomialTS, Leapfrog{Float64}, GeneralisedNoUTurn{Float64}}}(AdvancedHMC.FullMomentumRefreshment(), Trajectory{MultinomialTS}(integrator=Leapfrog(ϵ=0.1), tc=GeneralisedNoUTurn{Float64}(10, 1000.0))))" ] }, - "execution_count": 8, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "initial_θ = randn(21)\n", - "initial_ϵ = find_good_stepsize(hamiltonian, initial_θ)\n", - "sampler = Sampler(initial_ϵ, 0.95)" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "e68aec0b", - "metadata": {}, - "outputs": [], - "source": [ - "function AdvancedHMC.sample(model::DynamicPPL.Model, sampler::Sampler, n_samples::Int, n_adapts::Int;\n", - " initial_θ=initial_θ, kwargs...)\n", - " ctxt = model.context\n", - " vi = DynamicPPL.VarInfo(model, ctxt)\n", - " \n", - " # We will need to implement this but it is going to be \n", - " # Interesting how to plug the transforms along the sampling\n", - " # processes\n", - " \n", - " #vi_t = Turing.link!!(vi, model)\n", - " \n", - " ℓ = LogDensityProblemsAD.ADgradient(DynamicPPL.LogDensityFunction(vi, model, ctxt))\n", - " ℓπ(x) = LogDensityProblems.logdensity(ℓ, x)\n", - " ∂lπ∂θ(x) = LogDensityProblems.logdensity_and_gradient(ℓ, x)\n", - " \n", - " metric = sampler.metric\n", - " integrator = sampler.integrator\n", - " adaptor = sampler.adaptor\n", - " proposal = sampler.proposal\n", - " hamiltonian = AdvancedHMC.Hamiltonian(metric, lπ, ∂lπ∂θ)\n", - " \n", - " return AdvancedHMC.sample(hamiltonian, proposal, initial_θ, n_samples, adaptor, n_adapts; progress=true)\n", - "end " + "initial_ϵ = 0.1 #find_good_stepsize(hamiltonian, initial_θ)\n", + "spl = Sampler(initial_ϵ, 0.95)" ] }, { @@ -225,46 +175,35 @@ }, { "cell_type": "code", - "execution_count": 10, - "id": "10fae471", + "execution_count": 6, + "id": "f8724e2b", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mProgressMeter by default refresh meters with additional information in IJulia via `IJulia.clear_output`, which clears all outputs in the cell. \n", - "\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m - To prevent this behaviour, do `ProgressMeter.ijulia_behavior(:append)`. \n", - "\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m - To disable this warning message, do `ProgressMeter.ijulia_behavior(:clear)`.\n", - "\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ ProgressMeter ~/.julia/packages/ProgressMeter/sN2xr/src/ProgressMeter.jl:618\u001b[39m\n", - "\u001b[32mSampling 100%|███████████████████████████████| Time: 0:00:03\u001b[39m\n", - "\u001b[34m iterations: 10000\u001b[39m\n", - "\u001b[34m ratio_divergent_transitions: 0.0\u001b[39m\n", - "\u001b[34m ratio_divergent_transitions_during_adaption: 0.0\u001b[39m\n", - "\u001b[34m n_steps: 15\u001b[39m\n", - "\u001b[34m is_accept: true\u001b[39m\n", - "\u001b[34m acceptance_rate: 0.9957307002113069\u001b[39m\n", - "\u001b[34m log_density: -56.15323172895425\u001b[39m\n", - "\u001b[34m hamiltonian_energy: 61.98481790053206\u001b[39m\n", - "\u001b[34m hamiltonian_energy_error: -0.09351149588895424\u001b[39m\n", - "\u001b[34m max_hamiltonian_energy_error: -0.23993993436536698\u001b[39m\n", - "\u001b[34m tree_depth: 4\u001b[39m\n", - "\u001b[34m numerical_error: false\u001b[39m\n", - "\u001b[34m step_size: 0.2984283755673474\u001b[39m\n", - "\u001b[34m nom_step_size: 0.2984283755673474\u001b[39m\n", - "\u001b[34m is_adapt: false\u001b[39m\n", - "\u001b[34m mass_matrix: DiagEuclideanMetric([0.5852522649248381, 0.4935 ...])\u001b[39m\n", - "\u001b[36m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mFinished 10000 sampling steps for 1 chains in 3.565489432 (s)\n", - "\u001b[36m\u001b[1m│ \u001b[22m\u001b[39m h = Hamiltonian(metric=DiagEuclideanMetric([0.5852522649248381, 0.4935 ...]), kinetic=GaussianKinetic())\n", - "\u001b[36m\u001b[1m│ \u001b[22m\u001b[39m κ = HMCKernel{AdvancedHMC.FullMomentumRefreshment, Trajectory{MultinomialTS, Leapfrog{Float64}, GeneralisedNoUTurn{Float64}}}(AdvancedHMC.FullMomentumRefreshment(), Trajectory{MultinomialTS}(integrator=Leapfrog(ϵ=0.298), tc=GeneralisedNoUTurn{Float64}(10, 1000.0)))\n", - "\u001b[36m\u001b[1m│ \u001b[22m\u001b[39m EBFMI_est = 0.5632576843403713\n", - "\u001b[36m\u001b[1m└ \u001b[22m\u001b[39m average_acceptance_rate = 0.9339986654725632\n" + "\u001b[36m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mFinished 1000 adapation steps\n", + "\u001b[36m\u001b[1m│ \u001b[22m\u001b[39m adaptor =\n", + "\u001b[36m\u001b[1m│ \u001b[22m\u001b[39m StanHMCAdaptor(\n", + "\u001b[36m\u001b[1m│ \u001b[22m\u001b[39m pc=WelfordVar,\n", + "\u001b[36m\u001b[1m│ \u001b[22m\u001b[39m ssa=NesterovDualAveraging(γ=0.05, t_0=10.0, κ=0.75, δ=0.95, state.ϵ=0.18080672496372044),\n", + "\u001b[36m\u001b[1m│ \u001b[22m\u001b[39m init_buffer=75, term_buffer=50, window_size=25,\n", + "\u001b[36m\u001b[1m│ \u001b[22m\u001b[39m state=window(76, 950), window_splits(100, 150, 250, 450, 950)\n", + "\u001b[36m\u001b[1m│ \u001b[22m\u001b[39m )\n", + "\u001b[36m\u001b[1m│ \u001b[22m\u001b[39m κ.τ.integrator = Leapfrog(ϵ=0.181)\n", + "\u001b[36m\u001b[1m└ \u001b[22m\u001b[39m h.metric = DiagEuclideanMetric([1.3292777349795852, 0.4612 ...])\n", + "\u001b[36m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mFinished 10000 sampling steps for 1 chains in 3.447675436 (s)\n", + "\u001b[36m\u001b[1m│ \u001b[22m\u001b[39m h = Hamiltonian(metric=DiagEuclideanMetric([1.3292777349795852, 0.4612 ...]), kinetic=GaussianKinetic())\n", + "\u001b[36m\u001b[1m│ \u001b[22m\u001b[39m κ = HMCKernel{AdvancedHMC.FullMomentumRefreshment, Trajectory{MultinomialTS, Leapfrog{Float64}, GeneralisedNoUTurn{Float64}}}(AdvancedHMC.FullMomentumRefreshment(), Trajectory{MultinomialTS}(integrator=Leapfrog(ϵ=0.181), tc=GeneralisedNoUTurn{Float64}(10, 1000.0)))\n", + "\u001b[36m\u001b[1m│ \u001b[22m\u001b[39m EBFMI_est = 0.5452800568252315\n", + "\u001b[36m\u001b[1m└ \u001b[22m\u001b[39m average_acceptance_rate = 0.9617618920775541\n" ] } ], "source": [ "n_samples, n_adapts = 10_000, 1_000\n", - "samples, stats = sample(funnel_model, sampler, n_samples, n_adapts; initial_θ=initial_θ);" + "samples, stats = sample(funnel_model, 0.1, 0.95, n_samples, n_adapts; initial_θ=initial_θ);" ] }, { @@ -277,7 +216,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 7, "id": "2a803eb8", "metadata": {}, "outputs": [], @@ -288,13 +227,13 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 8, "id": "00f17868", "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAArEAAAL3CAYAAACd2x1cAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAABTf0lEQVR4nO39e3idZZ0v/n/SpA30DKW0lIaWchIEKVJBARUEAUGRGXX4jcgAunHwh6hTPBQUC+oWUcQDKgwzW5CtbhHPWA8gJ08ocuge0FIO2im0tJTWtumBtE3W9w9213OvkJWutElW7uT1uq5e1521nudZd1ZC+fS53+tzN5RKpVIAAEBGhtV7AgAA0FOKWAAAsqOIBQAgO4pYAACyo4gFACA7ilgAALKjiAUAIDuKWAAAsqOIBQAgO4pYoC6mT58eDQ0N0dDQEN/73veqHnfCCSdEQ0ND3Hjjjf03uU4WLVoUDQ0NMX369Bc9t/X76Etb36fu/vzoRz/q0zkMFJdddlk0NDTEZZddVu+pAHXWVO8JAHz0ox+N008/PZqa/JXUnZNOOikmT57c5XN77bVXP88GoL78HwOoq5EjR8Zjjz0W//mf/xnnn39+vaczoM2ZMyeOPfbYek8DYEAQJwDq6v3vf39ERHziE5+IDRs21Hk2AORCEQvU1SmnnBKvfe1r45lnnokvfOELPT7/gQceiDPPPDP22muvaG5ujl133TVOOumk+NnPftbl8X/5y19i7ty5cfTRR8eee+4ZI0aMiAkTJsQJJ5wQ3/3ud3f02yl75pln4v3vf3/sv//+sdNOO8XIkSOjpaUljj/++Ljqqqt67XU6O/bYY6OhoSHuvvvuLp+vlilNH1+xYkVccMEF0dLSEiNGjIiWlpa48MILY/Xq1S+63o033hgNDQ1xzjnnxPr16+Piiy+OfffdN5qbm2Py5Mlx9tlnx5IlS6rOd+nSpTF79uw48MADY+TIkTFmzJh4xSteEV/5yldiy5YtO/BOAIOdIhaouyuvvDIiIj772c/GypUraz7vS1/6UhxxxBHx7W9/OyZMmBCnnXZavPSlL4277747Tj311PjEJz7xonOuvvrq+MQnPhGrVq2KQw45JP7xH/8xDjjggLjrrrvijDPOiNmzZ+/w97Ns2bKYNWtWfPnLX462trY4+eST47TTTou999475s+fH5/61Kd2+DX6ylNPPRUvf/nL4/vf/34cccQR8frXvz5aW1vjK1/5Spx44omxefPmLs9bs2ZNHHXUUXHdddfFQQcdFG94wxuiVCrFTTfdFEcffXSsWbPmRef8+te/joMPPji+8IUvxPPPPx+vf/3r4+ijj44nn3wyLrzwwjj11FOrvh5AlADqYNq0aaWIKP3mN78plUql0j/+4z+WIqL0b//2bxXHHX/88aWIKN1www0Vj//iF78oNTQ0lHbbbbfSPffcU/Hcf/3Xf5WmTp1aiojS3XffXfHc3XffXXryySdfNJ9HH320fM4f//jHiuf+9re/lSKiNG3atJq+t8svv7wUEaV3v/vdpY6OjornNm3aVPrVr35V03W2iohSRJTuuuuubR772te+tttj586dW4qI0ty5c7t8PCJK55xzTun5558vP7d48eLSnnvuWYqI0re//e2K82644YbyeSeddFJpzZo15edWrVpVmjlzZikiSp/+9KcrznvmmWdKEyZMKDU0NJS+9rWvldrb28vPPffcc6XXve51pYgoXX755TXNHxh63IkFBoRPf/rT0dTUFF/72tfiv//7v7d5/Ny5c6NUKsV1110Xr3nNayqeO+SQQ+Lqq6+OiIhrrrmm4rnXvva1MWPGjBdd74ADDohLL700IqLbll+1WL58eUREnHzyyS9qvzV8+PA4/vjjt+u6xx13XJfttc4555wdmm9q6tSp8dWvfjWam5vLj22NE0RE/OpXv+ryvFGjRsUNN9wQY8eOLT+2yy67xJw5c7o874tf/GKsXLkyLrjggnjPe94Tw4YV/zuaMGFC3HTTTTF8+PD4yle+EqVSqde+P2Dw0J0AGBAOOOCAeOc73xnXX399XHrppXHTTTdVPfa5556L++67L3beeed405ve1OUxWz/F//vf//5Fz61bty5+/vOfx0MPPRTPPfdcbNq0KSJeyLFGRCxcuHCHvpcjjjgivva1r8WcOXOiVCrFiSeeGKNHj96ha0ZUb7F1zDHH7PC1tzr++ONj5MiRL3r8wAMPjIiomm+dNWtW7LHHHjWfN2/evIiIOOOMM7q83p577hn77bdf/OUvf4nHH3889t9//9q/CWBIUMQCA8Zll10W3/zmN+Nb3/pWfPCDH4yXvexlXR73t7/9LUqlUmzcuLHijmFXVqxYUfH1rbfeGueee2632du1a9f2fPKJs846K26//fb41re+FW95y1uisbExDjrooDjmmGPirW99a7zuda/bruv2R4utav1mt95hff7553vlvL/+9a8REfHqV796m3NasWKFIhZ4EUUsMGDsscce8f73vz+uuOKKuPjii8t36zrr6OiIiIjRo0fHW97ylpqvv2TJkjjjjDNi48aN8eEPfzjOPPPMmD59eowePTqGDRsWt912W5x00kk7vHw9bNiw+OY3vxmXXHJJzJs3L373u9/F7373u7j22mvj2muvjTe96U3xwx/+MBobG3fodbbH1veumnRZvyd6et7Webz1rW+NUaNGdXvshAkTtmtOwOCmiAUGlI985CNx/fXXx89+9rP49a9/3eUxLS0tEfHCdqxf//rXay6gbr311ti4cWP8wz/8Q7kjQurxxx/f/ol34aCDDoqDDjooPvShD0WpVIo777wz3v72t8ett94aN910U5x77rm9+noRESNGjIiIiNbW1i6fryVv3B9aWlri8ccfj4985CMxa9asek8HyJAPdgEDyrhx4+KSSy6JiIgPf/jDXR4zZcqUeNnLXhatra3xi1/8ouZrr1q1KiIipk2b9qLnSqVSfPvb396OGdemoaEhjj/++Hj7298eERHz58/vk9fZc889IyJiwYIFL3puw4YNcdddd/XJ6/bUG97whoiIXu3NCwwtilhgwLngggtir732ij/+8Y9x7733dnnM1l6r5557btx6660ver5UKsUf//jHuO2228qPbf2Q0fe+973yh7giItrb2+PjH/94lx8C2x433XRTPPDAAy96vLW1tbwJQVeFdG844YQTIiLiq1/9asWHqdavXx/vfve746mnnuqT1+2pD33oQzF+/Pi4+uqr4/Of/3z5w3Wpv/3tb/HNb36zDrMDcqCIBQac5ubm8kYF1baifdOb3hRf+tKXYtWqVXHaaafFfvvtF2984xvjzDPPjBNPPDEmT54cr3zlK+POO++sOOfwww+Pp59+Ovbff/944xvfGGeccUbss88+ceWVV8ZHPvKRXpn/D37wg5g1a1bsueeeceqpp8Y73vGOOPXUU6OlpSXmz58fBx98cJx33nm98lqd/dM//VPMmjUrFi9eHC996UvjjW98Y5xyyimx9957x9133x3vfOc7++R1e2rq1Knx4x//OHbZZZf44Ac/WN7N7B3veEe86U1vin333Tdm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AMiOO7HAkCQrC5A3RSyDgoIEAIYWRSzZUbACANkUsVdccUX84Ac/iEcffTR23nnnOOqoo+LKK6+MAw44oN5To48oVgGAarIpYu+555644IIL4hWveEVs2bIlLrnkkjjxxBPjL3/5S4waNare06OXKFwZSLb+PupYADDwNJRKpVK9J7E9VqxYEbvvvnvcc8898ZrXvKamc9auXRvjxo2LNWvWxNixY/t4hkNDb7cmUsQy0A20gtbfa8BQlc2d2M7WrFkTERG77rprnWfCtmyr0FW4kpNqv68DrbgFGOyyLGI7OjriAx/4QBx99NFx8MEHVz2ura0t2trayl///e9/j4iIp59+2h2L7fDKT99RHv/hkuMjImLL2ufKj039/3/jRc9XO6ba85Crp59+uuZju/pvaXutXr06IiJWrVq1Q9cBGChKpVK0trbGlClTYtiw6lsaZBkneM973hM///nP47e//W1MnTq16nGXXXZZXH755f04MwAAesNTTz3VbZ2XXRH73ve+N3784x/Hr3/969h77727PbarO7HTp0+PY+KUaIrhfT1VgD63MdbHH+NX8dRTT1lhAgaFtWvXRktLS6xevTrGjRtX9bhs4gSlUikuvPDC+OEPfxh33333NgvYiIjm5uZobm5+0eNNMTyaGhSxQP6Gl0ZERMTYsWMVscCg0tDQ0O3z2RSxF1xwQXz729+OH//4xzFmzJhYtmxZRESMGzcudt555zrPDgCA/lQ9LTvAXHvttbFmzZo49thjY4899ij/ufnmm+s9NQAA+lk2d2Izi+4CANCHsiligd7VmITl2/9f32UAyEU2cQIAANhKEQsAQHbECRjyerqs3tipZ121c+q5XC8q0D+8zwD1404sAADZUcQCAJAdcQKGvJ4uA/fmsnG15egdXaau5RzL3zvOewhQP+7EAgCQHUUsAADZESegT/TWp7Z789PffTGn7q5VSzxgR87tTTopAJAbd2IBAMiOIhYAgOyIE9AnemtZuDeXl3dkib5zhGBHXrs/VJtvT7/Xau9Zrdeq5boiBABsD3diAQDIjiIWAIDsiBMw6PTFBgLdLav3tVpfu5Yl+sYD9y+OWfDYNo+vdv3tMRg7KwBQP4pYgEHg4Lm/jGHNIyMiYtFnTq3zbAD6njgBAADZcSeWfrUjXQFqXSquZQOBHXmNWueRLt3H0uXbvFYt8+jutWv6PqrMoxbb052gt7pAdHdub0UI+qorAwB9QxELMEiIEQBDiTgBAADZcSeWfrUjXQF6U7pE3DBmdPFElddrmrpnebzl6SUVzzUccUh5XLrv4S7PT7+P9FrVXq+vlrZ3JAJQc4yil7pD9Hc3g+2JcABQP4pYgEFi+px55bFoATDYiRMAAJAdRSwAANkRJ2Cb+ntHpO3JVO5I3rKxynXSrGypdV2Xx0REtCc52Ip5JDtipdJMbZqnTa9TS26283Gds7pdqbrj15RJxZxa13f52t3lcXurdVotbdB29LWHSsZ1a7RArAAYrNyJBQAgO4pYgEHKXVhgMBMnYJt6c/l1e3Zk2qq7Vlg93Y0r3U2r2rJ/taX0zq+VLum3T9m1OKe1rZh7ukSfKC1cXJybPp7EF1Iveu3kPUmjCY1LVxXXGjOqy2ulc9qSvAfp91O1FVlUxjBqUS0CsKM7lVVrX1ZLvKK/9Xc0B2AwcycWAIDsuBMLMEilfWNTYgbAYKCIpV/tyKfHa10erqm7QbJ8nj7eccBe5XG6+1a6lN55GT1d+h+2sBhXiy9Uixakunu9VBpfGJZEE6LT0v9WHWOay+NSlQhB+j6nj3eOOHS3k1hXj9fShaCiK0Oi88++2nWr/Y7sSIylOzojANSPOAEAANlxJxZgiOkcMxAvAHKkiKVuduST2t01v6/lNdLl/Vi6vDwsVdlwoFq3gM6qxQDSCEHFtdJNBpIoQyTdBdKIw9p9KjsNjJ9fHJdeqz2JDQxLuiSkqn1/1Zbe03lERDSmnRVq6PxQy0YSfdVRoK+W8cUDAOpHnAAAgOy4EwswxFXrYhAhagAMXIpY6qanEYDulvd7/OnzJEJQbSm8lByTetGyerL0ny6Hp3Oq2HCgSjSh2gYF6ePDJ+9ceVIyx02z9i2Pm1o3lcdplGFYGp1I4wfVOhIk86joftBJRVeB5PWq/cwqNoVYWpyaRjC2Z6m+2u9Bqqe/dwAMTOIEAABkx51YAKrqLmrQHTEEoK8pYuk1/bkc2931K5a2a4wjlCXL7dU+Qd/50/7pc9WW4lPpddumjEmeKcYj7n+iuE6y7D98fXvlxZLnapIen3yvFd0akjhAGkVo7xSjSN+HiuhFtTlVbApRRBNKVaZabeODiOrdFHaky4UIAUBesooT/PrXv443velNMWXKlGhoaIgf/ehH9Z4SAJ24Cwv0h6yK2PXr18ehhx4aX/3qV+s9FQAA6iirOMEb3vCGeMMb3lDvaQw5VT9h3mn5dUeWY6tuSpA83l0j/GqfSq/oEFBlk4GmZHk/lR6fRgC2JA38I7pZ9k6W2Cs6GiQbEYxY2lockzzeuQNCV8d3tnxWcX7LT4rj2g6YXB5vHlV8/n94RZSh0NRaXCftjNC5O0H6nkQavUgPqtI9oXnhsvK42s+1u04FtWyoUEsXgorvocrv3YteWwQBYEDIqojtqba2tmhrK3J7a9eureNsAIaG7f0wWEokAdiWrOIEPXXFFVfEuHHjyn9aWlrqPSUAAHrBoL4Te/HFF8fs2bPLX69du1Yhux1q3c9+R5ZZq0UIanm8s2obDlRcq4ef6q9Ykn95ZXwg7RiQbjIQUTT0T5fiV7z1peXxuEUjyuO0I0G69N5dhCCNIEy6v1h1eOb1u5XHE/5cPD7q8dXFydXiDol0U4JhCys7OqxL3ofRDya/I1Wum0YIqnUXSKVL/Y2dn0u6JlTMt4bfl4pjurxK979fIgQAA8OgLmKbm5ujubl52wcCMKB0jiSIFwCdDeo4AQAAg1NWd2LXrVsXTzxRLLn+7W9/i/nz58euu+4ae+3V9XIo/aevuxPUusRb0bg/lS4pp59oT4+vstlBuqTf3GkpO93UoGJzgGQpPjXh4eJaW8YUcYJnzi5iBnvc/lx5vH6/8eVx580O1kwvVhrGLSpiA5P+ULxGuinBpqQjwcoqkYNUGo9YfcqBFc+NfbL4Xiveg+SYzhtDdCmJdqQ/l4YkilC6rzLSksYAqv6OJNetJTag6wBAXrIqYu+///447rjjyl9vzbueffbZceONN9ZpVgD0tZ50PBA9gKEhqyL22GOPjVKp2iaVAAAMFVkVsQwN1TZX6G65Nz2n82YEXR2TdhtoTLoCpBGC9LU7kmjAxmR5P6LyE//pOctfOa08njCm6DaQRgCGb+goj8cu2lIep8v+Oy/bmFyzcoOCpiTZsGH34eXx5uQ1JjxcHJN2CGiaXswvjQ2krzHpD8Xju/zmqYrXTuMSaZeEdDOHdLOE9D2v6LiQRDieP+2I8riik0KniEi17gRpZCS9brV4QLXfNQAGPkUsAIOKzRZgaNCdAACA7LgTy4BT6+YK1c6p1jy/IppwxwPFE8nx6TEVzfaTZfFRnZr+p5/abz2t+MR/uvnA8lnFEvuYxUWEYOPErv8duXlU8fjGlxbnrptamQkfv7DoBZBeK40mpPGAsYt27vL10i4CE/5cdEzYOLk4/qnz96g4Z8a3irmkEYmJvy86K6QRgjTu0Lww6WyQdBFIoxOpzvGBakv/Pe0wUMvvWuffJ50LhoZqd3PdoYWBw51YAACyo4gFACA74gQMCLUs0dbanaDaUnN6TrXjN80qugikn+T/+6tbyuPx84toQWdpVCBdYt+pWGGPzSOLfzummxKkGx+kS+9bkgRA+8ji+hERK48uNj9o3LmIELziHY+Xx4984ZDy+KkTi/jBS77a9YYKGyYWfy2sPKy4/oTfFfOLiGhqLeY+4eGii0HaWWFE0vlhzVuLzRxS6QYH6c8llcYSIip/NtU0JXGQ7YkNlOcnPkBiez40JoIAfcOdWAAAsqOIBQAgO+IE9KtalmxriQZUu05ERCSfdk8b3ldbqk6PT5vwl8aMKo/HPll8Or6isX+n59JP+afL6ptHNZbHa6cX/9k99i8jy+NxjxXHpN0FtiTxg1FPFcdEROz0XPH1ur2K5f6HfnVocf7E5ISRxbJ/GiF49vBiTqMXF4ePmVq8HyujcqOF4RuK9yeNSGwpHo6ddy86N4xbVLw36UYJjcn7HFU2MajYHCG62Zigys8+lf7uNPQwcgDbozf61tZKdIGhxJ1YAACyo4gFACA74gQAMEj0RXRBRIGBShHLNvV0F6TupOfXsrNWra9XkRStsutWxa5eB+5fHFMlh5lmYtP2V2nrrIiIkSuK/OrmfbrOiabHpCb/riH5qmiflba52rL/huKQx0ZGaurZT5bHf101oTw+7A3/XR6nLbaef6r4Pp49vLhOU/IS6/YqxlseK35G455O5xqxOZlKek56rTQvnO4c1rS+eA9Hrih6iI1+sOufRdqGK6Kb3HSSg63YcS29Vpq/To/pLmdd5fxqevO/GQC6Jk4AAEB23IkFAKrqr+4KYgv0lCKWberv5dBqy8DdqTbH9Pxa4gtpi6ZqLbLSVlEREU2tRduqNE4wfEMRD9h52cbyeO304rrLji51OaeIZKesXxXr9qsPqDz+6W/sUx5vOKFYx//VI0Vrq0heY+r+zxTnPrZ7eTzi0KKFVdO948vjnVYWEYJ057CIiAl/Lt6H53cr4gHPTyheb23yfqTHp+/n8PXF91ptZ7SGI4pIRERELC2e6zigyDI0Lq2+m1pXaomu1BozECEA6F+KWACg7nb0jq87uUOPTCwAANlxJ5a6qdapYHuWeGtZ8k1jCm1JVKAx+eR7Y5Xdu2JK5W5VqSXHFc9Nur9YMk9jBukn81Npd4KNE4t/U05/a9F14JEJe5TH439V2Z0g7Qow8Sc7lccrDiuu27SxGD/9dNHBILUh6UJw8KnFaz8xr4grPD9zQ8U5S0ZWzqU8x4XF6/39Jen3V0QOmpImBBMfX1083locs3pmsatXGi2I6LS7VjJOe0CkHSgi6TTRWMOuXqlaowH9ESEQWQAoKGIBgOzZ3nfoEScAACA77sQy4NSyIUKtNs3atzxuXrisPE6X+oclr7F+v/Hl8ahkmTs9t31KscwdETHp/ujyuGdPmlYej12UbIgwqvi3499fUoxHLy6uk25csNP86t0J0qX7pnOLpfHRPy0iCB2vK76PtlXFtc485vfl8bd+e1R5/MgfZhQvkEQIjtvn8YrXvnf+oeXx+gOK93P04mJDhXTjgzX7Jx0XHuq678TGyUULhF1+81Qx7wMmVxy3YeYry+PxP1tQHlddYq8SG0gjJpHB8rwIAUBBEQsA0AO1RBdEDvqeOAEAANlxJ5ZesyOfnK52fLXHm6buWfF1+mn1dB4j7n+iOCa5VkOnSMBWaYQgjRbsvKz41Pywhcm6f0Q0Jc32a5FGCLbsXMQDnt+tiAak/7pMNw+Ilo2RWh3F8vuWJEKQLt2nfRF+//ovlcf/tOAdxWVvK17jNZ/4bXn8nduOKY9/81gRH4iI2JLMa9z8IkKQbgYxfMPw8njPu4psQbVuDemmEOteXvyM059LRMSIpcV49SnFxg5ptKAWFV0OEunvV8VmGNHz320dBQD6hiIWAKCXVYsciBn0HnECAACy404svaY/l0o7LwNXW7JNG95XfB6+tS22JV3aHpYcny5fdzZyTLGsPuHhYrOEdPl8l0c7yuMVpz1fHj+fRAMi2Xygc4Qg1b7b5vL4FccWS+kP/Xux9D/1ZSvL4zRCMGGnYnn/h9f9R3n8D0+c2OX195haXCci4pmVxRzX7Fb8VfKKdzxaHv/m58U8/v6S4j1IOzE0tBY7H6w8arfoyoaJlY9P/P1z5XFFhKCGjQyq/X6kx1eLGUR087tWpZOGCAFA31DEAgD0kx3dlEEcoSBOAABAdtyJpWygfIq6lnl0twlCxfkLHtv248mScrXjO5IOBGkT/ojKT9FXzGPpquSrYil95LPFEn26kcH6lqKjwNT9ny2P02X79pVFl4SIiMYNxb9D77r7ZcVxhxXXim/sUx6+64M/6XKuh973z10+PmphEY+IqZXPpXNpnFDELX5138HFQS3FJggtPyrmmnYb6Lx5RFfSaEZn6YYWaTeKdCODNB5Q0dkiiTJsqfF3vtoGCWIDwI5yl7Vn3IkFACA7ilgAALIjTkDZQFkOrWWDg84N6Kud313soCz5VHq1CEHpvoeL4ztttFDRxSDZCKEtWeae9IdiOXzlIUW0YP0BxXJ7bCj6J6y4t9i4IGkiUHl8RIycWlx32J3jy+Ppb11UHr/z5N9GV97/i6JTwYePLz5o8Plb31QetycRh0/PuK3i/Pt2n1Eef+u3R5XHEx4qvo8to4rxzsuKuT5+7oTyePzChuT44vpjF20pj4d16iaRdjRovKOIgETabSA9Jnl8SxIZqaa7SEu1372exmAGyn9vwMCxox/6Gmj6Oh7hTiwAANlRxAIAkB1xArLRXQP6aqp9Qj2VLuumkYV0CbvjiEPK43WTk00JojJOsP61B3T5+MbknOEbis0OGp8bXh5PfKhUHrcWSYZoqr7XQczYtdiAYOUbiwPfOaWIEMz+09vK4++8qtjU4NCXLSqPH2ydVh63jyzmd8IRj5THH3vkzRWv3bqq6KwwJok1PP/U+PJ41wVFJCDd8GH8wuI64xYV73NTa2VcYquOMZVdGbZMKa61OekOMfrB4mdcGlNkEyriBzu4pF/tnFquJUIA9IWh2tXAnVgAALKjiAUAIDvZxQm++tWvxuc+97lYtmxZHHrooXHNNdfEEUccUe9psYP6at/59JPk1ZaRq3U9KD4zH9GYLEcPHzO56utV61Tw7KkvLY9HFw/HtF8WS+krX1q5ZL7V88UH+WPC70ZUPPfXXYsnR9w6vjx+/2FF54F0I4LzP/n+8vjkC39THj+ydkp5PO6xoqPAwtuKeY9774qK196wsZjLkVP+uzz+46uSgxYUcY6m4i2MlclmDMM3FJGKIqBQ+X6knQoiIjaPKv79nW4eUU3FzzWJmDROmVQclHSp6O73Lv192Z6IC0Bv666rwWCOGmR1J/bmm2+O2bNnx9y5c+PBBx+MQw89NE466aR49tlnt30yAACDRlZF7NVXXx3nnXdenHvuuXHQQQfFddddFyNHjoyvf/3r9Z4aAAD9KJs4waZNm+KBBx6Iiy++uPzYsGHD4oQTToh77723y3Pa2tqira1YSl27dm2fz5Pt01ef2q628UEt8YWmZNm5fcqu5fGIpa0V56SfnG9cuqo8/uvsYil+9weK5fA0cpBufLDH7c+Vx+v3G18ep0vnGydW/rtz/NeLOe76wSfL45PHLi2P73m22HTh77sVC/bf+/GroysT3/hMeXzA+GKV4zc/P7TiuPaWopPAr+47uDy+5Y1fKY/fduJ7y+MxU1eXx+OSjRkiim4Iy2cV7+Wk+6t3LRiVdo5I3v+0I0EaD0hVbFaQjpNoQWNUl0YI+ioGA9Bb0qjBYIsWZHMn9rnnnov29vaYNGlSxeOTJk2KZcuWdXnOFVdcEePGjSv/aWlp6Y+pAgDQx7K5E7s9Lr744pg9e3b567Vr1ypkAYAsDLY7p70tmyJ2t912i8bGxli+vHKJcPny5TF5ctefFm9ubo7m5q4/8c3gUsuybrVoQS3Lw6X7Hi6u091rJxGEPX9dLHlvHlUsUG8ZU3yqP934YFPSwD+NHKw6rni85bo/V7z249ftXR4vXbJHefz0N/Ypj1cenSzFH1CMD933qfL40buK41+SRAj+9M0iQtA2s3JJf8yuG8rj1qSvwDvnn10ez/hhEaNY8prx5fGefy7em//+H8U7Ovre4jrNC7teYYmIePakYnOGXf/X74snkp9FxwF7RVfSn2XjgfsXT1SJH6Qxg4jKqIHYAED9ZBMnGDFiRBx++OFxxx13lB/r6OiIO+64I171qld1cyYAAINNNndiIyJmz54dZ599dsyaNSuOOOKI+OIXvxjr16+Pc889t95TAwCgH2VVxJ5xxhmxYsWK+PjHPx7Lli2LmTNnxi9+8YsXfdgLAIDBraFUKpXqPYn+snbt2hg3blwcG2+Opobh2z6BLFXLtaaqZRlrObezdAeotMVT2vppWNIS6m//v93K410eLTKx4+cX7blWzyxaeg1fXxzz7OHV/93ZlrS8mjp1ZXmcZlxXPF/MdeXzRf7073cUedotybZZbROKvOoJRzxS8XppW61U88oiNfrWNxe7gn3rwSPL41ELi1zwTkVnsXi+eGsqHp/wcGVbs7Q12e6/LHYLW/fyYjetNFec5mBT1XZx6+73oJYc7I78DvbU86UN8dv4WbR84LsxrHnktk8AsjFUP9i1tV5bs2ZNjB07tupxWd2JBQCop6FaWA5E2XywCwAAtnInlkGnp8u9tbThqogMpLs8dfq6vUq7rvT8afOKmMHGyTuXx+kuXSOf3Vwer7iwWBYffWtxTETEysOK5f4JvyuW6FtHFfGAu6Z23YKufWQRUxhXvEQ8P6FIGKXRgEkjKne8O/OYorVVGhVoG1nM6Vu/Pao8/vDxxa4xN93+xvL47y8p/i2dtiVLpXGMFxRxgjRCsNNP7ivOSZf003HaMqtKW63ufoeq/e7Uej4AvUMRCwBQo3Qb1/4iwtA1cQIAALLjTizZ6G4Zt5Yl3sYqS8q17MBUERnodEzT1GI5O5Ln0h2j0thA+qn50Q8W8YNU2wFFBGD814sowtJjKpuJTP5dQ3m87PVFd4LG54ruGzutLI5Z31Is9afL+9/e/xXl8br5xWs3FZtyxXduO6bLuUZEzPhl8dpLXlPEJdLuC5+fcEIxp726jhCkO5ttHlUcM2Jp5eulO52Numdh8USyA1dD6/ryuH1K0e1h2MLFXX4Ptez61vnrWn7vAOgbilgAgG2wpD/wiBMAAJAdd2LJRnfLtbUs8VacX8PSb63LwxVRg+MPL4+bWosl9lGPry6P000Q0mXuLWOK7gIrX1oc01Ssisc+36ts+p/GFNINBNINC9JuA+MeK5brPzvy5PJ4zK5JbiCRxg8aN1T+m3daEiH465lFZGHC74pjVhxWPD7+V8Wk0jhAGj+YNi/5/pLvrbOxTxZvyvrXHlAep+9zuvFE49JiI4k0kJF2jdiSdJaoFhHpTIQA8uAu6uDkTiwAANlRxAIAkB1xAgadWroT1NTBoIZrdn6ueeGy8jhdnm5IlqfTfzlumlI07U/PndS6a3Rl7T6jKr5ONwoYnXzofuXRxVJ/y4+6/rdqx+uKCEHr08U8GluK7gkz/rOIH6SRgc5fp90Q0tdOYwrjflnEA6pt4JB+f2lkYPXMyvcj3QyiojtBupFBIo18dLdxxVbpzw4YWEQD2MqdWAAAsqOIBQAgO+IEDBm1fJK8lmM6Rw7Sc9JNChqTJemKZesxlZGArda9fM8uH08/cT/y2REVz7XuVXyyv2IDgKRTQbpBwviFRQRgw2PF9zHu6TQqUHQRWHFh8dotyaYLEREbJhZ/faw+IOmAML947ab1xXjzqC3l8bA7x5fHE3//XHn8zOt3K76f9dW7E6TRi7ZZ+3b5eMUGB0nMoKI7QXrR5OeYdicQLYD6Eh+gGndiAQDIjiIWAIDsiBNAD3UXOUiXs0tp7CBZzm5f8Fh5PCL2L8ZLl5fHm5Il8nRzhPT6ERFjdm8pj4evL+IEY5JOBU0bi3+rrtsrfbxYTE83VNiSpB067h1fHm+YWPHSFRGC9pEdyTNFR4M04rD0n4uuBft9YnV5vOKoIkIwdlEROUil3QgiKqMCnd+TrYYtXNzl4+nPolpUoGKjhE7xkWobJKRq6YQBg50YAH3NnVgAALKjiAUAIDviBFCDHV0eTiME1aTL1COWtpbHaaP/sZ3OSSMEw9e3l8erDiz+0951QbFEP+HPxTGpDbsXmxWMXFFcc/Oo4t+5y17faal/QxEbGPVUMX5+QiTjZDOGe4uuB+v3K7oWjFxRXDd9vXSzg84al67q8vFqmxdUbHCQXif5uVbEBLr5eTVWfaYgQsBgIA7AQOdOLAAA2XEnFgAGKXdTGcwUsQwZO9LAfkeXhzt/wn2rhtaul8zTjgTpsvqWMZWbHaQRgjXTi3PSCMHa6cV/5pP+sLHqtbZaekyxYD5y/+L7bv6/4yuOa2spug3suqBYpE+jDM/P3FC83vwiTpCqFiEY1tpWHqfvR0SnjQyS4yKJE6Q/s6YkKlAt2lFLTKDzdQGoH3ECAACy404sAAxS0+fMe9FjIgYMFopYhoyeRgh68zXSKEO6FF667+Euj2+ocszm046oOC6NE6Sf8k8fH7somV8SIUg7ErTuVSzKjF+YXP+hoh/C+PWV3Qk2LC6uNXx9sqSf/LWy/4dWlMfrXl68B2mEIO2wkNo0ZUx5vHxWZZxgypW/L76osqlEU5VNCarFSnozMiJyAND3xAkAAMiOO7EA0M8s6cOO264i9umnn46f/OQnsXjx4ti0aVPFc1dffXWvTAwGkh1dKq5Yzk6fSJa2KyTN/EsH7l8ej36wMq5QGjOqmGPyqft0ybwpiSakcYLKzQSK62ycWCzQTHi4OGbJcWMi1VQ0Ooglr6lc7t/q769uKY83jyyuu/sv/7s8TmMGy19ZvMbYRUV8Yc+7is0fIiK2HH94edx4/xPlcdp5oOGIQ4pjkq4F6c+iMXlva9mQojsiBAD9q8dF7B133BGnnXZazJgxIx599NE4+OCDY9GiRVEqleLlL395X8wRAAAq9LiIvfjii+ODH/xgXH755TFmzJj4/ve/H7vvvnuceeaZcfLJJ/fFHAEgeyIE0Lt6XMQuWLAg/s//+T8vnNzUFBs3bozRo0fHJz7xiXjzm98c73nPe3p9klBvtS4V1xI7qFjOrrIJwqZZ+5bHzQuXlcdpfCAiIpYu7/q1q0QIKuZRJVrQulexpL9x8s7l8U7PVZ4/fEPRVWDSH4rzH/uXYlODjROLLQTSeMCzJ00rj8ctKjob7HH76vI43Qii7YDJFa/d1FrEmBqSLgRpR4I0khHp48nPperGBzoNAAx4Pe5OMGrUqHIOdo899ognn3yy/Nxzzz1X7TQAAOg1Pb4T+8pXvjJ++9vfxoEHHhinnHJKXHTRRfHwww/HD37wg3jlK1/ZF3MEgAFNVAD6X4+L2KuvvjrWrXvhk76XX355rFu3Lm6++ebYb7/9dCaAKqotT1dbqq6IECSfrG/vtJlCet1qEYRhnSMI/8/6/caXx5tHFbGBXRcUy/6jHl9dHi89ZkLF+RMfKsZp54LmlcXjE/5cRAXSOQ1P4gEjku4C6WYFaexiRPIeRFRGCNL3p6GGDQ5StcQGOkc+xAsABoYeF7EzZswoj0eNGhXXXXddr04IAPqSu6YwOPQ4EztjxoxYuXLlix5fvXp1RYELAAB9pcdF7KJFi6K9vf1Fj7e1tcWSJX2/Nz0AANQcJ/jJT35SHv/yl7+McWmWrL097rjjjpg+fXqvTg5yk+Yle5q3rJbzrLm91x0PFOenOc5OedKt0qTs6plFS67h6zu6fHz8woaK83f5zeLy+O/nFS2zdn+gyNSumV7s5LXlpcUxe9xedDLpOGCvLudXrf1YROX7k+ZoS1VajpWqvAfVyL3mT2QABr+ai9jTTz89IiIaGhri7LPPrnhu+PDhMX369Pj85z/fq5NL/c//+T9j3rx5MX/+/BgxYkSsXr26z14LAICBreYitqPjhbsze++9d/zpT3+K3Xbbrc8m1ZVNmzbF2972tnjVq14V/+t//a9+fW0AAAaWHncn+Nvf/lYeP//887HTTjv16oSqufzyyyMi4sYbb+yX14MdVS1aUK0NVNQQOehumbu75feubJpStMVKd+yqtsPXyGc3V3y99B+LeMC0ea3lcem+h8vjUVVagKWvPWJpa5ePLz//peXxpPuLVl0RlW250l23Gg/cvzxOd/za8nTv5fXt5jWwiA3A0NXjD3Z1dHTEJz/5ydhzzz1j9OjR8de//jUiIi699FJ3SAEA6Bc9LmI/9alPxY033hif/exnY8SI4o7NwQcfHP/5n//Zq5PbUW1tbbF27dqKPwAA5K/HcYKbbroprr/++jj++OPj/PPPLz9+6KGHxqOPPtqja82ZMyeuvPLKbo9ZsGBBvOQlL+npNCMi4oorrijHEKCeKpadexgbqIglJMvlERGRfBq/QvKJ/XRZPZUu46fHNCbHbH55sdNVU+umivMn/LkYV0QQjj+8PFyVdCcYt6iIBKTXSl97xP3F99Nyf5fTfuGcJJLRlMYzkmhBqqb3tsaYgAhB3xMRAGrR4yJ2yZIlse+++77o8Y6Ojti8eXMXZ1R30UUXxTnnnNPtMTuygcLFF18cs2fPLn+9du3aaGlp2e7rAQAwMPS4iD3ooIPiN7/5TUybNq3i8e9973tx2GGH9ehaEydOjIkTJ/Z0CjVrbm6O5ubmbR8IAEBWelzEfvzjH4+zzz47lixZEh0dHfGDH/wgFi5cGDfddFP89Kc/7Ys5RkTE4sWLY9WqVbF48eJob2+P+fPnR0TEvvvuG6NHj+7+ZKiDnn6KvdrSds2SCEEaM2hLugJsHlWEBUY/WHxivzSm2Pog7RAw6vHV5fH6/cZXvNzw9cXOfWk0Id0gYUuyo8KG3YeXxyMr5p0cP2Zyedy8cFmX84uIiCqdB6q9b+l72zS1iEik54oJDBzT58zb4WuIJMDg1+MPdr35zW+OW2+9NX71q1/FqFGj4uMf/3gsWLAgbr311nj961/fF3OMiBeK58MOOyzmzp0b69ati8MOOywOO+ywuP/+boJzAAAMSj2+ExsR8epXvzpuv/323p5Lt2688UY9YgEGMXdPgZ7YriI24oUdtJ599tnyTl5b7bVX1/ugw1CzI8vTVc/t9HhFZKFK0/90qT/dxqA9WcYftnBxcnwRRVh9yoHl8S6/eapyjsn5aYRg/M8WFOcknQMqXq+16FTQMabIrXfugNDVMRGVS0hpPKDUuq54vSrxjPSYatECAAa+Hhexjz/+eLzzne+M3//+9xWPl0qlaGhoiPb29ipnAgBA7+hxEXvOOedEU1NT/PSnP4099tgjGhoa+mJeAGROPADoSz0uYufPnx8PPPDAdm9AAENdta4FtTyeNvmPqL4EnkYLqi2Zd3fdrdJoQHQ6ZuUhRReDCQ8XkYW0S0J7EgNoXLqqPE67DaTRgrSrQim5TsUxUf37q6ba+7k9EYKedp0AoG/0uDvBQQcdFM8991xfzAUAAGpS053YtWvXlsdXXnllfPjDH45Pf/rTccghh8Tw4cMrjh07dmzvzhCALKX9XkULgN5WUxE7fvz4iuxrqVSK448/vuIYH+yC2lRbgq7l8cZOz9USQahlHul1K6IFyZL+lmQJPyJiwsPpJgVF34P0L5UlxxWRg0n3F8ekGxm0HZBscJBsYtCWbLow4v4nKl67WoSgp5tKbA8RAoCBoaYi9q677iqPFy1aFC0tLdHYWPm/046Ojli8eHHnUwEAoNfVVMS+9rWvLY9f97rXxTPPPBO77757xTErV66ME044Ic4+++zenSEAA4poADAQ9Lg7wdbYQGfr1q2LnXbaqVcmBdSmYuk/WeZOH6/2Cfw0ctBxQLFJSdoJoCFZ3u9OutyfvnbLT9q6Orxi44M0WpDOdUSVjQsiIpqS10g3L6hFtaiFmABAXmouYmfPnh0REQ0NDXHppZfGyJEjy8+1t7fHH//4x5g5c2avTxAAADqruYh96KGHIuKFO7EPP/xwjBhRfEhjxIgRceihh8YHP/jB3p8hAANK2nVgKxEDoL/VXMRu/XDXueeeG1/60pe00oI+VK3rQOcl7/Tjlek56RJ7teXzdNm/82YCW6XL+507AqybvHN5PHpp15slpHGEdIODio0P0rkeuH+X1+nclaFi04b0nOT9qbbJQy2xARsaAAx8Pc7E3nDDDX0xDwAy4+4rUE893rELAADqrcd3YoG+V+sSdrXj0uXwhiqf5K/WtaD9+MOLL6YU48ZOGw7svGxjl+ensYGOMc3F+VUiBNU6I8TS5cWcOncnSKICpeS4inn0sGtBSoQAYOBTxAJQE/EBYCARJwAAIDvuxMIgVLEcXkPkID0+3XwgXZKv2FghIraMKdrsDUuX7tNuA2mUIY0ZJJsdpNcZsbDYujqNGTR26p6wZcFjnb+dF47bga4COhIA5EURC0BVIgTAQCVOAABAdtyJhSEqXTJvOOKQ8njLfQ+Xx503OEiNWNpafDFlUjFOuwoksYGNyeYIo+5ZWB43J5GDLcmcGpNoQecoQzXp91RLPECEACBfilgAqupqi9mUuAFQL+IEAABkRxELAEB2xAlgkKgl31mx01XaPivZTas9ycdGlV22IiLakx2/0l2+mpJdutIduHZKsrbrTzuiPB71+Oou55fuKNbUKRObfq/VpDnaxnTeyXsjB1tJNADIiTuxAABkRxELQES88CGubX2QC2CgECeAQaKWpfHOkYCt0qX7xuSYUnJMuoPWC8cVUYGmZJevWl5v9IPF61XEBpI4QeOB+xcntK6vOL+mGICoAMCg5k4sAADZcScWYAjzYS4gV4pYGOSqfZK/liX59io7aHVWSnbsakiW/tMIQho/aE86GFT7Syi9TrVYQq3szAUw+IgTAACQHUUswBAlSgDkTJwABrlals8rIgdJNKDaJgERnTZOWLq8PN6SHFftL5hhyfFpFCGSx1OdOyNEsnFCLUQIAAYfd2IBAMiOO7EAQ1S1jQ3EDIAcKGKBCu0LHiuP05hBGh+IiCiNGVV8kXQPqNYNodqmBmkUodqyf9rZICIiethxQXcCgMFHnAAAgOwoYgGoMH3OvKpRA4CBQpwAqLrEXvF4p2PSJfpNs/Ytj0csbS2P06hAenxFFCEZN6SbIyxd1eV1IiIaxowunqsSZUjnLkIAMPhkUcQuWrQoPvnJT8add94Zy5YtiylTpsQ73vGO+OhHPxojRoyo9/QAsuaDXECOsihiH3300ejo6Ih///d/j3333TceeeSROO+882L9+vVx1VVX1Xt6AAD0syyK2JNPPjlOPvnk8tczZsyIhQsXxrXXXquIhV6QLsNXW6rvLN2AoKl1U5fHpNdqn7Jrcd1ks4K0U0G6CUIk53aWziuNClR0UBAhABjUsihiu7JmzZrYdddduz2mra0t2tqK1jxr167t62kBANAPsuxO8MQTT8Q111wT//qv/9rtcVdccUWMGzeu/KelpaWfZggAQF+q653YOXPmxJVXXtntMQsWLIiXvOQl5a+XLFkSJ598crztbW+L8847r9tzL7744pg9e3b567Vr1ypkGdJq+vR+Mu5uk4DGhYvL46oRhOTxLWOKD2E2JtdJOxU0bGP+1eZSfo1kQ4VUGjOodgwAealrEXvRRRfFOeec0+0xM2bMKI+XLl0axx13XBx11FFx/fXXb/P6zc3N0dzcvKPTBBgUdCEABpO6FrETJ06MiRMn1nTskiVL4rjjjovDDz88brjhhhg2LMskBAAAvSCLD3YtWbIkjj322Jg2bVpcddVVsWLFivJzkydPruPMIC89bfrfXiVa0Fm6RJ8et+7lxTL+6AeTZfxkeb+UXCeNIjR0052gFhWbK9SwIQIAecmiiL399tvjiSeeiCeeeCKmTp1a8VypVKpyFgCprraSFTEAcpXFmvw555wTpVKpyz8AAAw9WdyJBervRd0JqsQL0uNGPb66PE6X9NONEhqXriqOSa5TbUODiNq6DYgKAAxuiliAQUhMABjssogTAABAyp1YoCbddSdIn9s0a9/i8fufKI/TbgMVEYJks4NIN0pIr3/g/hVfb1nw2DbnMVTjBO7AAkOFO7EAAGRHEQsAQHbECYCa1Lo8PyKJEMSUSeVhtQhAqlocoLHG44ZqhCDVVS/YlLgBMFi4EwsAQHYUsQAAZEecAKiwPZ/wr3pOGgmoYXOEaq8nJrD9xAeAwcqdWAAAsqOIBQAgO4pYgEFs+px52+xYAJAjmVigwo7mTyuyr0mLrY4xzeXxsIWLuzw+3dUrteXpJTs0D5lagMHHnVgAALKjiAUYAsQKgMFGnADYYe1VWmm1V9ul68D9y8OG1vXlcal1XZfXbJq6Z8XpabzA7l0AQ5MiFmAQ0ycWGKzECQAAyI47scB2qWUZP40BtE/ZtRjf93BxnSRaEEmcIL1+5+4EOg8AoIgFGITECIDBTpwAAIDsuBML9KrOnQS2Sjc4aE+fWLq8PEw3OyiNGVVcs9MmCGm8IH297dkUAYA8uRMLAEB2FLEAAGRHnADYrk/7Vzuu2lJ/La/XOGVScVASMyh1Mw8RAoChyZ1YAACyo4gFACA74gRAr24Y0N0mBV0dk44bWteXx91FCHaEjRIABgdFLMAgYpMDYKgQJwAAIDvuxAI1SZfhIzp1Fej03LZUOzfd4KC9xq4DPY0HDOYIgbuwwFDiTiwAANlRxAIAkB1xAqAm3S3DV3uuImZQZSODCsnjtcYEBnM8oCceufykek8BoF+5EwsAQHYUsQAAZEecAOhV1ToVtC94rMtjqnUqEBPomYPn/jKGNY980eM6FgCDlTuxAABkRxELAEB2siliTzvttNhrr71ip512ij322CPOOuusWLp0ab2nBXTSvmZNl396em6qaeqeFX+o3fQ582L6nHn1ngZAr8umiD3uuOPiu9/9bixcuDC+//3vx5NPPhlvfetb6z0tAADqIJsPdv3bv/1beTxt2rSYM2dOnH766bF58+YYPnx4HWcGAEB/y6aITa1atSq+9a1vxVFHHdVtAdvW1hZtbW3lr9euXdsf04MhrWp3giQi0NPOA1ueXrJDcxpqdCQAhoJs4gQRER/5yEdi1KhRMWHChFi8eHH8+Mc/7vb4K664IsaNG1f+09LS0k8zBQCgL9W1iJ0zZ040NDR0++fRRx8tH/+hD30oHnroobjtttuisbEx/uVf/iVKpVLV61988cWxZs2a8p+nnnqqP74tAAD6WF3jBBdddFGcc8453R4zY8aM8ni33XaL3XbbLfbff/848MADo6WlJf7whz/Eq171qi7PbW5ujubm5t6cMrANFZsXHLh/8fisfYvH73igPE67DYgNAFCruhaxEydOjIkTJ27XuR0dHRERFZlXAACGhiw+2PXHP/4x/vSnP8UxxxwTu+yySzz55JNx6aWXxj777FP1LiwAAINXFh/sGjlyZPzgBz+I448/Pg444IB417veFS972cvinnvuERcAABiCsrgTe8ghh8Sdd95Z72kAPdS+4LHyeMTSovVWe3JM2wGTy+PNLy/ysTv95L6q103bePW0XRcAg0MWRSwA3Xvk8pNi7Nix9Z4GQL/JIk4AAAApd2KBXlV1qX/KpGKcPD7i/ieKc9P2XN1EBkQIAHAnFmAQOHjuL+s9BYB+pYgFACA74gRAr6q61L90+TbPTSME3T3e0ziBbgYAg487sQCDwCOXn1TvKQD0K0UsAADZEScA+l215f3GA/cvDkriBzsaARAhABh83IkFACA7ilgAALIjTgD0maqxgSpdCNoXPNbncxqsDp77yxjWPDIWfebUek8FoF+4EwsAQHYUsQAAZEecAOgzDWNGF18kcYL+7hYwFDY7eOTyk2Ls2LH1ngZAv3EnFgCA7ChiAQDIjjgB0Ge2PL2k3lOIiMEbIQAYytyJBQAgO4pYAACyI04A9Jmh0BUAgPpwJxYAgOwoYgEAyI44AdBnqkUImqbuWR6nHQyqPQ4AnbkTCwBAdhSxAABkR5wA6HfVogIiBADUyp1YAACyo4gFACA74gTAgKRTAQDdcScWAIDsKGIBAMiOOAEwIIkQANAdd2IBAMiOIhYAgOwoYgEAyI4iFgCA7ChiAQDIjiIWAIDsKGIBAMiOIhYAgOxkV8S2tbXFzJkzo6GhIebPn1/v6QAAUAfZFbEf/vCHY8qUKfWeBgAAdZRVEfvzn/88brvttrjqqqvqPRUAAOqoqd4TqNXy5cvjvPPOix/96EcxcuTIms5pa2uLtra28tdr1qyJiIgtsTmi1CfTBOhXm2NTRESsXbu2zjMB6B1b/z4rlbov1rIoYkulUpxzzjlx/vnnx6xZs2LRokU1nXfFFVfE5Zdf/qLHfxs/6+UZAtRXS0tLvacA0KtaW1tj3LhxVZ9vKG2rzO1Dc+bMiSuvvLLbYxYsWBC33XZbfPe734177rknGhsbY9GiRbH33nvHQw89FDNnzqx6buc7satXr45p06bF4sWLu31TKKxduzZaWlriqaeeirFjx9Z7OtnwvvWc92z7/P3vf4/p06fHokWLYpdddqn3dAB2WKlUitbW1pgyZUoMG1Y9+VrXInbFihWxcuXKbo+ZMWNG/NM//VPceuut0dDQUH68vb09Ghsb48wzz4xvfOMbNb3e2rVrY9y4cbFmzRr/k6yR92z7eN96znu2fbxvwFBV1zjBxIkTY+LEids87stf/nJ86lOfKn+9dOnSOOmkk+Lmm2+OI488si+nCADAAJRFJnavvfaq+Hr06NEREbHPPvvE1KlT6zElAADqKKsWWzuqubk55s6dG83NzfWeSja8Z9vH+9Zz3rPt430Dhqq6ZmIBAGB7DKk7sQAADA6KWAAAsqOIBQAgO4pYAACyM6SL2Hnz5sWRRx4ZO++8c+yyyy5x+umn13tK2Whra4uZM2dGQ0NDzJ8/v97TGbAWLVoU73rXu2LvvfeOnXfeOfbZZ5+YO3dubNq0qd5TG3C++tWvxvTp02OnnXaKI488Mu677756T2nAuuKKK+IVr3hFjBkzJnbfffc4/fTTY+HChfWeFkC/GrJF7Pe///0466yz4txzz43/+3//b/zud7+Lt7/97fWeVjY+/OEPx5QpU+o9jQHv0UcfjY6Ojvj3f//3+POf/xxf+MIX4rrrrotLLrmk3lMbUG6++eaYPXt2zJ07Nx588ME49NBD46STTopnn3223lMbkO6555644IIL4g9/+EPcfvvtsXnz5jjxxBNj/fr19Z4aQL8Zki22tmzZEtOnT4/LL7883vWud9V7Otn5+c9/HrNnz47vf//78dKXvjQeeuihmDlzZr2nlY3Pfe5zce2118Zf//rXek9lwDjyyCPjFa94RXzlK1+JiIiOjo5oaWmJCy+8MObMmVPn2Q18K1asiN133z3uueeeeM1rXlPv6QD0iyF5J/bBBx+MJUuWxLBhw+Kwww6LPfbYI97whjfEI488Uu+pDXjLly+P8847L/73//7fMXLkyHpPJ0tr1qyJXXfdtd7TGDA2bdoUDzzwQJxwwgnlx4YNGxYnnHBC3HvvvXWcWT7WrFkTEeH3ChhShmQRu/UO2GWXXRYf+9jH4qc//Wnssssuceyxx8aqVavqPLuBq1QqxTnnnBPnn39+zJo1q97TydITTzwR11xzTfzrv/5rvacyYDz33HPR3t4ekyZNqnh80qRJsWzZsjrNKh8dHR3xgQ98II4++ug4+OCD6z0dgH4zqIrYOXPmRENDQ7d/tmYUIyI++tGPxlve8pY4/PDD44YbboiGhoa45ZZb6vxd9L9a37drrrkmWltb4+KLL673lOuu1vcstWTJkjj55JPjbW97W5x33nl1mjmDzQUXXBCPPPJIfOc736n3VAD6VVO9J9CbLrroojjnnHO6PWbGjBnxzDPPRETEQQcdVH68ubk5ZsyYEYsXL+7LKQ5Itb5vd955Z9x7770v2qN91qxZceaZZ8Y3vvGNPpzlwFLre7bV0qVL47jjjoujjjoqrr/++j6eXV522223aGxsjOXLl1c8vnz58pg8eXKdZpWH9773vfHTn/40fv3rX8fUqVPrPR2AfjWoitiJEyfGxIkTt3nc4YcfHs3NzbFw4cI45phjIiJi8+bNsWjRopg2bVpfT3PAqfV9+/KXvxyf+tSnyl8vXbo0TjrppLj55pvjyCOP7MspDji1vmcRL9yBPe6448p3/IcNG1QLIDtsxIgRcfjhh8cdd9xRbnPX0dERd9xxR7z3ve+t7+QGqFKpFBdeeGH88Ic/jLvvvjv23nvvek8JoN8NqiK2VmPHjo3zzz8/5s6dGy0tLTFt2rT43Oc+FxERb3vb2+o8u4Frr732qvh69OjRERGxzz77uAtUxZIlS+LYY4+NadOmxVVXXRUrVqwoP+cuY2H27Nlx9tlnx6xZs+KII46IL37xi7F+/fo499xz6z21AemCCy6Ib3/72/HjH/84xowZU84Ojxs3Lnbeeec6zw6gfwzJIjbihTZHTU1NcdZZZ8XGjRvjyCOPjDvvvDN22WWXek+NQeT222+PJ554Ip544okXFfpDsLtdVWeccUasWLEiPv7xj8eyZcti5syZ8Ytf/OJFH/biBddee21ERBx77LEVj99www3bjLkADBZDsk8sAAB5E84DACA7ilgAALKjiAUAIDuKWAAAsqOIBQAgO4pYAACyo4gFACA7ilgAALKjiIVe8Mwzz8Tb3/722H///WPYsGHxgQ98oMvjbrnllnjJS14SO+20UxxyyCHxs5/9rH8nCgCDhCIWekFbW1tMnDgxPvaxj8Whhx7a5TG///3v45//+Z/jXe96Vzz00ENx+umnx+mnnx6PPPJIP88WAPJn21mowYoVK+KQQw6J973vfXHJJZdExAtF6bHHHhs///nP4/jjjy8fe+yxx8bMmTPji1/8YsU1zjjjjFi/fn389Kc/LT/2yle+MmbOnBnXXXddv3wfADBYuBMLNZg4cWJ8/etfj8suuyzuv//+aG1tjbPOOive+973VhSw3bn33nvjhBNOqHjspJNOinvvvbcvpgwAg1pTvScAuTjllFPivPPOizPPPDNmzZoVo0aNiiuuuKLm85ctWxaTJk2qeGzSpEmxbNmy3p4qAAx67sRCD1x11VWxZcuWuOWWW+Jb3/pWNDc313tKADAkKWKhB5588slYunRpdHR0xKJFi3p07uTJk2P58uUVjy1fvjwmT57cizMEgKFBEQs12rRpU7zjHe+IM844Iz75yU/G//gf/yOeffbZms9/1ateFXfccUfFY7fffnu86lWv6u2pAsCgJxMLNfroRz8aa9asiS9/+csxevTo+NnPfhbvfOc7y90G5s+fHxER69atixUrVsT8+fNjxIgRcdBBB0VExPvf//547WtfG5///Ofj1FNPje985ztx//33x/XXX1+vbwkAsqXFFtTg7rvvjte//vVx1113xTHHHBMREYsWLYpDDz00PvOZz8R73vOeaGhoeNF506ZNq4gd3HLLLfGxj30sFi1aFPvtt1989rOfjVNOOaW/vg0AGDQUsQAAZEcmFgCA7ChiAQDIjiIWAIDsKGIBAMiOIhYAgOwoYgEAyI4iFgCA7ChiAQDIjiIWAIDsKGIBAMiOIhYAgOwoYgEAyM7/B3L7nFuDtyqEAAAAAElFTkSuQmCC", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAArEAAAL3CAYAAACd2x1cAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAABSk0lEQVR4nO3deZSdVZUw7l1JJZU5BshASJGBADITCSBiYzAICIK0Q7NatAH9sPWHUweHgGLAtkUUcQCFpruF5lNbRFQaIzQYDbSKikBaQUgTJAwJmQhkHkjq/v7g477nFnUrt5KqunWqnmetrHXq1juce6sIO+fsd++GUqlUCgAAyEi/ek8AAAA6ShALAEB2BLEAAGRHEAsAQHYEsQAAZEcQCwBAdgSxAABkRxALAEB2BLEAAGRHEAvUxaRJk6KhoSEaGhrihz/8YdXjTjjhhGhoaIgbbrih+ybXyuLFi6OhoSEmTZr0iu+9/D660sufU3t/fvKTn3TpHHqKSy65JBoaGuKSSy6p91SAOmus9wQAPv3pT8cZZ5wRjY3+SmrPSSedFOPGjWvze3vvvXc3zwagvvwfA6irIUOGxP/+7//Gv/7rv8YHPvCBek+nR5s9e3bMmDGj3tMA6BGkEwB19dGPfjQiIj73uc/Fxo0b6zwbAHIhiAXq6pRTTok3vOEN8eyzz8ZXv/rVDp9///33x1lnnRV77713NDU1xW677RYnnXRS/OxnP2vz+D//+c8xZ86cOPbYY2OvvfaKgQMHxu677x4nnHBC/OAHP9jVt1P27LPPxkc/+tHYb7/9YtCgQTFkyJBobm6OmTNnxhVXXNFp92ltxowZ0dDQEPPnz2/z+9VyStPXV65cGeeff340NzfHwIEDo7m5OT784Q/HCy+88Irr3XDDDdHQ0BDnnHNObNiwIS688MKYOnVqNDU1xbhx4+Lss8+OJUuWVJ3v0qVLY9asWXHAAQfEkCFDYvjw4XHkkUfG1VdfHdu2bduFTwLo7QSxQN1dfvnlERHxpS99KZ577rmaz/v6178eRx11VHzve9+L3XffPU4//fQ46KCDYv78+XHqqafG5z73uVecc+WVV8bnPve5WL16dRxyyCHxtre9Lfbff//45S9/GWeeeWbMmjVrl9/PsmXLYvr06fGNb3wjtmzZEieffHKcfvrpMXny5FiwYEF8/vOf3+V7dJWnn346XvOa18Qtt9wSRx11VLzpTW+KdevWxdVXXx0nnnhivPjii22et2bNmnjd614X1157bRx44IHx5je/OUqlUtx4441x7LHHxpo1a15xzj333BMHH3xwfPWrX43NmzfHm970pjj22GPj8ccfjw9/+MNx6qmnVr0fQJQA6mDixImliCj993//d6lUKpXe9ra3lSKi9A//8A8Vx82cObMUEaXrr7++4vU77rij1NDQUNpjjz1Kd999d8X3/vjHP5YmTJhQiojS/PnzK743f/780uOPP/6K+Tz66KPlc373u99VfO+JJ54oRURp4sSJNb23Sy+9tBQRpfe///2llpaWiu9t3bq19POf/7ym67wsIkoRUfrlL3+5w2Pf8IY3tHvsnDlzShFRmjNnTpuvR0TpnHPOKW3evLn8vaeeeqq01157lSKi9L3vfa/ivOuvv7583kknnVRas2ZN+XurV68uHX744aWIKH3hC1+oOO/ZZ58t7b777qWGhobSt771rdL27dvL31u1alXpjW98YykiSpdeemlN8wf6HiuxQI/whS98IRobG+Nb3/pWPPnkkzs8fs6cOVEqleLaa6+N4447ruJ7hxxySFx55ZUREXHVVVdVfO8Nb3hDTJky5RXX23///ePiiy+OiGi35Fctli9fHhERJ5988ivKbw0YMCBmzpy5U9c9/vjj2yyvdc455+zSfFMTJkyIb37zm9HU1FR+7eV0goiIn//8522eN3To0Lj++utjxIgR5ddGjRoVs2fPbvO8r33ta/Hcc8/F+eefHx/84AejX7/if0e777573HjjjTFgwIC4+uqro1Qqddr7A3oP1QmAHmH//feP9773vXHdddfFxRdfHDfeeGPVY1etWhW///3vY/DgwXHaaae1eczLT/H/5je/ecX31q9fH7fffns8+OCDsWrVqti6dWtEvJTHGhGxcOHCXXovRx11VHzrW9+K2bNnR6lUihNPPDGGDRu2S9eMqF5i6/Wvf/0uX/tlM2fOjCFDhrzi9QMOOCAiomp+6/Tp02PPPfes+by5c+dGRMSZZ57Z5vX22muv2HfffePPf/5zPPbYY7HffvvV/iaAPkEQC/QYl1xySXznO9+J7373u/Hxj388Dj300DaPe+KJJ6JUKsWmTZsqVgzbsnLlyoqvb7vttjj33HPbzb1du3ZtxyefeM973hN33XVXfPe73423v/3t0b9//zjwwAPj9a9/fbzjHe+IN77xjTt13e4osVWt3uzLK6ybN2/ulPP+8pe/RETEX/3VX+1wTitXrhTEAq8giAV6jD333DM++tGPxmWXXRYXXnhhebWutZaWloiIGDZsWLz97W+v+fpLliyJM888MzZt2hSf/OQn46yzzopJkybFsGHDol+/fnHnnXfGSSedtMvb1/369YvvfOc7cdFFF8XcuXPj17/+dfz617+Oa665Jq655po47bTT4sc//nH0799/l+6zM17+7KpJt/U7oqPnvTyPd7zjHTF06NB2j9199913ak5A7yaIBXqUT33qU3HdddfFz372s7jnnnvaPKa5uTkiXmrH+u1vf7vmAOq2226LTZs2xV//9V+XKyKkHnvssZ2feBsOPPDAOPDAA+MTn/hElEql+MUvfhHvete74rbbbosbb7wxzj333E69X0TEwIEDIyJi3bp1bX6/lnzj7tDc3ByPPfZYfOpTn4rp06fXezpAhjzYBfQoI0eOjIsuuigiIj75yU+2ecz48ePj0EMPjXXr1sUdd9xR87VXr14dERETJ058xfdKpVJ873vf24kZ16ahoSFmzpwZ73rXuyIiYsGCBV1yn7322isiIh555JFXfG/jxo3xy1/+skvu21FvfvObIyI6tTYv0LcIYoEe5/zzz4+99947fve738W9997b5jEv11o999xz47bbbnvF90ulUvzud7+LO++8s/zayw8Z/fCHPyw/xBURsX379vjsZz/b5kNgO+PGG2+M+++//xWvr1u3rtyEoK1AujOccMIJERHxzW9+s+Jhqg0bNsT73//+ePrpp7vkvh31iU98Il71qlfFlVdeGV/5ylfKD9elnnjiifjOd75Th9kBORDEAj1OU1NTuVFBtVa0p512Wnz961+P1atXx+mnnx777rtvvOUtb4mzzjorTjzxxBg3bly89rWvjV/84hcV5xxxxBHxzDPPxH777Rdvectb4swzz4x99tknLr/88vjUpz7VKfP/0Y9+FNOnT4+99torTj311Hj3u98dp556ajQ3N8eCBQvi4IMPjvPOO69T7tXa3/zN38T06dPjqaeeioMOOije8pa3xCmnnBKTJ0+O+fPnx3vf+94uuW9HTZgwIW699dYYNWpUfPzjHy93M3v3u98dp512WkydOjWmTJkSV199db2nCvRQgligR3rPe94ThxxySLvHfOQjH4kHH3ww3v/+90dDQ0PMmzcvfvKTn8Tjjz8e06ZNi2984xvxkY98pHx8Y2NjzJ8/Py666KLYa6+9Yt68eTF//vyYNm1a3HvvvXHyySd3ytwvuOCC+NjHPhYTJkyIBx54IG6++eZ44IEH4sADD4yrrroqfvvb38bw4cM75V6tDRgwIO6666740Ic+FMOHD48777wz/vjHP8Zf//VfxwMPPFDOJ+4JjjvuuHj44Yfj4osvjgkTJsR9990XN998cyxYsCDGjh0bc+bMiX/5l3+p9zSBHqqhpIo0AACZsRILAEB2BLEAAGRHEAsAQHYEsQAAZEcQCwBAdgSxAABkRxALAEB2BLEAAGRHEAsAQHYEsQAAZEcQCwBAdgSxAABkRxALAEB2BLEAAGRHEAsAQHYEsQAAZEcQCwBAdgSxAABkRxALAEB2BLEAAGRHEAsAQHYEsQAAZEcQCwBAdgSxAABkRxALAEB2BLEAAGRHEAsAQHYEsQAAZEcQCwBAdgSxAABkRxALAEB2BLEAAGRHEAsAQHYEsQAAZEcQCwBAdgSxAABkRxALAEB2BLEAAGRHEAsAQHYEsQAAZEcQCwBAdgSxAABkRxALAEB2BLEAAGRHEAsAQHYEsQAAZEcQCwBAdgSxAABkRxALAEB2BLEAAGRHEAsAQHYEsQAAZEcQCwBAdgSxAABkRxALAEB2BLEAAGRHEAsAQHYEsQAAZEcQCwBAdgSxAABkRxALAEB2BLEAAGSnsd4T6E4tLS2xdOnSGD58eDQ0NNR7OgC7rFQqxbp162L8+PHRr591CaDv6FNB7NKlS6O5ubne0wDodE8//XRMmDCh3tMA6DZ9KogdPnx4RLz0l/2IESPqPBuAXbd27dpobm4u//0G0Ff0qSD25RSCESNGCGKBXkWKFNDXSKACACA7glgAALIjiAUAIDuCWAAAsiOIBQAgO4JYAACyI4gFACA7glgAALIjiAUAIDuCWAAAsiOIBQAgO431ngDQM02aPbc8XvzFU+s4EwB4JSuxAABkRxALAEB2BLEAAGRHEAsAQHYEsQAAZEd1AqAsrUgAAD2ZlVjo5SbNnis4BaDXEcQCAJAd6QRAzTRAAKCnsBILAEB2BLEAAGRHEAsAQHYEsQAAZEcQCwBAdgSxAABkRxALAEB21ImFPk43LwByZCUWAIDsWImFPkK3LQB6EyuxAABkRxALAEB2GkqlUqnek+gua9eujZEjR8aaNWtixIgR9Z4OdIvueHBLekL9+HsN6KusxAIAkB1BLAAA2RHEAgCQHUEsAADZEcQCAJAdQSwAANkRxAIAkB1BLAAA2RHEAgCQHUEsAADZEcQCAJAdQSwAANkRxAIAkJ3Gek8A6HyTZs+t2/0Wf/HUbr03AH2TlVgAALJjJRZ6ie5efQWAerISCwBAdgSxAABkRxALAEB25MRCxuTBAtBXWYkFACA7glgAALIjiAUAIDuCWAAAsuPBLqBTaUELQHewEgsAQHYEsQAAZEcQCwBAdgSxAABkRxALAEB2BLEAAGRHEAsAQHYEsQAAZEcQCwBAdgSxAABkRxALAEB2BLEAAGRHEAsAQHYEsQAAZEcQCwBAdgSxAABkRxALAEB2BLEAAGRHEAsAQHYEsQAAZEcQCwBAdgSxAABkRxALAEB2BLEAAGRHEAsAQHYEsQAAZEcQCwBAdhrrPQGgYybNnlvvKQBA3VmJBQAgO4JYAACyI4gFACA7glgAALIjiAUAIDuCWAAAsiOIBQAgO4JYAACyI4gFACA7glgAALIjiAUAIDuCWAAAstNY7wkAtZk0e269pwAAPYaVWAAAsiOIBbrMpNlzrSAD0CUEsQAAZEcQCwBAdgSxAABkRxALAEB2BLEAAGRHEAsAQHYEsQAAZEcQCwBAdgSxAABkRxALAEB2BLEAAGSnsd4TACpNmj23PF78xVPrOBMA6LmsxAIAkB1BLAAA2RHEAgCQHUEsAADZEcQCAJAd1QmgB0srFQAABSuxAABkRxALAEB2BLEAAGRHEAsAQHYEsQAAZEcQCwBAdgSxAABkRxALAEB2BLEAAGRHEAsAQHYEsQAAZKex3hMAer9Js+eWx4u/eGodZwJAb2ElFgCA7AhiAQDIjiAWAIDsCGIBAMiOIBYAgOwIYgEAyI4gFgCA7AhiAQDIjiAWAIDsCGIBAMiOIBYAgOwIYgEAyE5jvScA9C2TZs8tjxd/8dQ6zgSAnFmJBQAgO4JYAACyI4gFACA7glgAALIjiAUAIDuqE0APkD6xDwDsmJVYAACyI4gFACA7glgAALIjiAUAIDuCWAAAsiOIBQAgO4JYAACyI4gFACA7mh1AnWhwAAA7z0osAADZEcQCAJAdQSwAANkRxAIAkB1BLAAA2RHEAgCQHUEsAADZEcQCAJAdQSwAANkRxAIAkB1tZ4G6SVvvLv7iqXWcCQC5sRILAEB2BLEAAGRHEAsAQHYEsQAAZMeDXdCN0geZAICdZyUWAIDsCGIBAMiOIBYAgOwIYgEAyI4gFgCA7AhiAQDIjiAWAIDsCGIBAMiOIBYAgOwIYgEAyI4gFgCA7AhiAQDITmO9JwAQETFp9tzyePEXT63jTADIgZVYAACyI4gFACA7glgAALIjiAUAIDuCWAAAsiOIBQAgO4JYAACyI4gFACA7glgAALKjYxd0g7QbFQCw66zEAgCQHUEsAADZEcQCAJAdQSwAANkRxAIAkB1BLAAA2RHEAgCQHUEsAADZEcQCAJAdQSwAANkRxAIAkB1BLAAA2RHEAgCQHUEsAADZEcQCAJCdxnpPAKC1SbPnlseLv3hqHWcCQE9lJRYAgOxYiYVOZAURALqHlVgAALIjiAUAIDuCWAAAsiOIBQAgO4JYAACyI4gFACA7glgAALIjiAUAIDuCWAAAsiOIBQAgO9rOQhdJW9ACAJ3LSizQo02aPdc/CAB4BUEsAADZEcQCAJAdQSwAANkRxAIAkB1BLAAA2RHEAgCQHUEsAADZEcQCAJAdQSwAANkRxAIAkJ3Gek8AcqclKgB0PyuxAABkRxALAEB2BLEAAGRHEAsAQHYEsQAAZEcQCx0wafZc1QgAoAcQxAIAkB1BLAAA2dHsAMhCmsax+Iun1nEmAPQEVmIBAMiOIBYAgOxIJ4CdoEIBANSXlVgAALIjiAUAIDuCWAAAsiOIBQAgO4JYAACyozoBkB2NDwCwEgsAQHasxMIOqAkLAD2PlVgAALIjiAUAIDuCWAAAsiOIBQAgO4JYAACyI4gFACA7glgAALIjiAUAIDuCWAAAsiOIBQAgO9rOQhu0mgWAns1KLAAA2RHEAgCQHekE8P9IIQCAfFiJBQAgO1ZigaylK+iLv3hqHWcCQHeyEgsAQHYEsQAAZEcQCwBAdgSxAABkRxALAEB2VCegT1MbFgDyZCUWAIDsCGIBAMiOdAL6jJdTBxTE773aSg/x8wbonazEAgCQHUEsAADZkU5An6MiAQDkz0osAADZEcQCAJAdQSwAANkRxAIAkB0PdtHrpA9uqRFKyu8GQO9hJRYAgOxYiQV6NSXVAHonK7EAAGRHEAsAQHakE9Ar2DKmozzkBZA3K7EAAGSnoVQqleo9ie6ydu3aGDlyZKxZsyZGjBhR7+mwk6y60pVyW5X19xrQV2WzEnvZZZfFkUceGcOHD48xY8bEGWecEQsXLqz3tAAAqINscmLvvvvuOP/88+PII4+Mbdu2xUUXXRQnnnhi/PnPf46hQ4fWe3p0MauvdJcd/a7ltlIL0FtlE8TecccdFV/fcMMNMWbMmLj//vvjuOOOq9Os6GyCVQCgFtkEsa2tWbMmIiJ22223Os+EtuzoyW/BKrlS1QCgZ8jywa6WlpY4/fTT44UXXohf/epXVY/bsmVLbNmypfz1888/H5MmTYqHH37YAxBd7LVfmFfvKUDd/faimW2+nv73Ue2YWr3wwgtxyCGHxBNPPOEf9UCvUCqVYt26dTF+/Pjo16/641tZBrEf/OAH4/bbb49f/epXMWHChKrHXXLJJXHppZd248wAAOgMTz/9dLtxXnZB7Ic+9KG49dZb45577onJkye3e2y1ldjXxynRGAO6eqr0Ef2HDyuPt69bX8eZ0Bdtig3xu/h5PP3003aYgF5h7dq10dzcHC+88EKMHDmy6nHZ5MSWSqX48Ic/HD/+8Y9j/vz5OwxgIyKampqiqanpFa83xoBobBDE0jn6Nwwsjxv8XtHNBpRe+v0bMWKEIBboVRoaGtr9fjZB7Pnnnx/f+9734tZbb43hw4fHsmXLIiJi5MiRMXjw4DrPjr5s+7p19Z4CAPQ52TQ7uOaaa2LNmjUxY8aM2HPPPct/brrppnpPDQCAbpbNSmxmqbsAAHShbIJY2Bn9hw8vjzu67b8r59b73gDQ22WTTgAAAC8TxAIAkB3pBPQ4tWylp8e0d9yubMXv6jZ+Pe+dkpoAQG9kJRYAgOwIYgEAyI50AnqcWra8d3VbvNoWe+s0hV25X66VEbp7Ho3j9yyPty19tkvu0RXnAlBfVmIBAMiOIBYAgOxIJ6BP6qqUhc7anu6qqgwdnV93VGjYmRSCjt4DgN7HSiwAANkRxAIAkB3pBJCoZWu6vS39apUOOuv1Wu3qE//l6+w/tbjOwkVdfr/uJhUBIF9WYgF6gYPn/FdMmj233tMA6DaCWAAAsiOdgLrpjkLznbWlvzP32xXVtufbu376vc7a0k9TCNq7967cr6t+Fh29HwB5sRIL0Ess/uKp9Z4CQLcRxAIAkB3pBNRNd2zldrQZQC3b2e3Nu9r3Ovr0frVjav3M0rk3DB+2w+tWe6/pvEvr1ledy66kBHT09VqvW40UAoDeQRAL0Eu0V51AqgHQ20gnAAAgO1Zi6dU6us1dy7Z/e80OaqlO0NGt8PauWcv5rdMAOnKd9DPo95qDKr/5wMM7PL+rqg1ICQBAEAvQy0gdAPoC6QQAAGRHEAsAQHakE1A33dE5qaPlmzpagqpW6XXTvNuo4VovTptaHg9ctKxyXjWcM+DBRW0e09H31PDYUzs8ptZ7VMvz7Y6OXX1BtSoF0gyA3sRKLAAA2bESC9BHtF6htTIL5EwQS9109xZxLV2sOrrN3fpa1TQmx6Qlr6qV9ErLWfVP0gFKO7zT/zv/ngeLL6q8p3TeaVpCrSXDaiknVu0eqY6WKAOACOkEAABkyEosQB8ihQDoLQSx7LT2OlfVck49n0RvGbdbce8qHa1qnl8HO4FVvj62GO9fVBSIDVvKwzSFoPW9K1IkkmvFwuK4avOI4UOT95CkOCTz2Law7coGrVXtdFbt3olqqQwVx+zE7xoAvZt0AgAAsmMlFqAPaauGrBQDIEeCWHbazmzpdrT5QK2qbWenr6dVAfol2/Xbqmx5p9vc6VZ947rKagSlKukI1Y6pSBtYt6HNY0r77l0ck4z7t2o4sO7EoorBkFt+WxyXbL9XXCt53+m9Uy1Dm9qca2np8orjat36f1nVhg+Jaq9Xa0LR3vm1ngNAnqQTAACQHSuxAH2cFAMgR4JYulUtxexr2aZufUy1reNqr/df2va90y39dKt+xL1PlsdpZYOIiIbknDTtIL1HRaWD5PW0GUC67d9v2erioKSKwMZjX11x74p5JQ0SGtLz0xSEtIJBoqKCQZWUg9ZNHdJ0i6qpAsnc0/edfs4Vn02VOb2iwUTyPtIKClIIAPoO6QQAAGTHSiwAr9BWikFrUg6AehLE0q12pSHCzlQwqPa0erWt6henFU/jp0/7R5Wn5iNabbNXeeK/X7LVnzYvqNjqb5Wm8LJ0u3zQ0IMqv5ls16cVF9LXG9KmBomtU8eVxwPTb1R5D+2peH/pe6qhckM17aaeJHOsdtzOpKV0dF6aLgDUT1bpBPfcc0+cdtppMX78+GhoaIif/OQn9Z4SQJ81afbc8h+A7pZVELthw4Y47LDD4pvf/Ga9pwIAQB1llU7w5je/Od785jfXexp0UEe3X6tt9W+v0pQgorbqBOm10hSAtNpA4/qt5XG/pND/xsmjyuOBd9xXcY+WdHzctPJ4wINFGsDKI0eWx2Nve6I4Pq1IUCUdoOK9psdExNaxxXvaNqT4z7lx47ZinLynbcMGtvl6VEk5SKWfQet7pO81lX7OGw+dUB4P/vWj5XEtFStaq9Zgopbfr7SyQSzseMqBFAKAniGrILajtmzZElu2FP/TX7t2bR1nA9B7dUVKgQfHgPZklU7QUZdddlmMHDmy/Ke5ubneUwIAoBP06pXYCy+8MGbNmlX+eu3atQLZOuiKigTtFbWvtj2dbm2n57ckT+mn2+Jb00oFTzxfvJ6kDEREDFyezHHRsuK6SarA2PkrivOT+6Vb+qWly8vjFe86pM33MOqRTRVfV6QKJOkEA5N5LD9tcnk85nt/Ko/Tz+O5mZPK4wEbi/oJg1ZWpi+k0ntE2rQh2epP32uaQlAtZaShynVaN1qoUKWhQrVrpdUeqpEyANDz9eogtqmpKZqamuo9DQB2QpqiILUAaK1XpxMAANA7ZbUSu379+li0qNgKfOKJJ2LBggWx2267xd57793OmeSqMwvLV6tUEPc8WNwjOb7iifs0FaHVU/oDk8L76RP4aQrC2oP3aHNOmw4YXB6PjuJ3ePCqoubBsCeK971+cmWqRGOSQrBu4oDk3sUWe5pCsPqMg9ucR8U1NxSfQpoy0NiqGUP6XivOT6oWVKRaVKkKkFYLaBla7Jy0JD+vxvTcqEwJqFrBIvmZSQ8A6H2yCmL/8Ic/xPHHH1/++uV817PPPjtuuOGGOs0KgK5WrfqBNAPou7IKYmfMmBGlUmnHBwIA0KtlFcTSe3W0gkGt16poFFDlHtWuW0qqC7yYNAkYtGJjxXHpE/hD/vhMm9ca8VAx/su7xpTHIxcV/yhLGxGknj9oRHm8+7zFFd9LKw+kKQjLZxT3GP5kkf6QVh54fr8iJX7PXxdVD1a+pkhxiEjSI1q9t3VJA4fhT75YHldULahi49tfWx6PeGhVedzw2FPlcfpzaV1RoFpFg/7JMVXTRxLVfu/aS2PpzBQXAHaeIBaAbHVFk4VaSWWA+lKdAACA7FiJpct11vZrtQL57UoK4VekFiTSbefG/YsGBw0bikL/m5OqAMMfrNza3nziQcV49MTy+MUhDeXxqIeLlsdpCkG6vZ9u449+oNjeTysQpOkDERGbd0vHxb9JB60uXl85rahaMOp/i5SD7YOSY5J7D3+6OCatNJB+lhGV6QtpI4PnkgoIu/9+ZXm8ManqkKYQpE0e0hSOZ48r0hX2ur1oFhEREUlFiFRFU4Tk96Vao4tqaQntNdOo9nvYHakFUhl6lp1dBbaCC53DSiwAANkRxAIAkB3pBNRNLVujtb5erQpBulVdbRu432uKdIBYVuzDp1UH0u3vaFV4f9DKIu2g2pP5T55dpAFsHN/S5jFNSQrAs8cW2/vDnilSDkY9sik9JZ6ZWRyXpils3r1IZUjTBtLGCUtmFJ/ByEXF8WmzgzTNYK/bKz/zTXsk/wZOUioGryxSENIUgrSqQ9r8YVjS4CCtTrDXsiQ1oFUqQ7Xt/lrSTKr+3u3E9nx3b+lLIegdOpqGIP0A2mYlFgCA7AhiAQDIjnQCulxHUwWqaS/9oGVc8Zh+Y7XXk2oDqbQH3MZDk+L+Tzzf5vFbx1bfsn5u5qTyON1WT7f0J84ttuu3DS3K8zduKBoGLDumqCiQpgasmNH6P9ninPWbi3O27Fa8q6FLivNXJg0KdksaMKSfwrqJxXUak+yFtIFCRMSaqcU5Y297sjxO0zA2j26KtqTpGS1pOkGSqpGmIrRutFCRPpKmGiRVCxqrVBtIz02bI9T6+1jt9zC9bnvVDaCjuqIWrhQFegMrsQAAZEcQCwBAdqQTAEAfU892vTsi1YFaCWLZaa3LGXVFJ6Na8wzT0kzb0jzF5JhqeZHpdsTAOx4uj1uS0lv9ktJbA1vdO83pHF6khlbkg06YVySXpmWrRj1a5LSmtuyWluEqZrjXz/pXHJd2Bds2pHh9WJJCOuq9xaSefv5V5fHGJcXPaMzvi+tU07q81+bdivex9pi2O5VtS8Yj7i0+wzT3OO0KNjDJW07zYEvr1lfc+8VpRWe1Aa06qL2s2u9d62u9rJZc14jqHb9qKfulRBZA55FOAABAdqzEAgA9RlupDlIMaIsglp3W3tbormybVtuibdy/2EJOSylFVN8iTl9Pz087eaUb6enWcdt9tSrTByIqUw22pdvkSeerala+v+hitf1PRfmrtHtXU1Lpa11z9c2TtYcUqQlDRhXXXXNPsdU/dGlx/MajiuPXTC3KaqXSLmBpF7HW0u5dw58srpumCqQpB5XHF9cZmPxc0/Jo/Vp17Bq4POnKlrxeLaWlISm3Ve13JT0mTdrY1XJZUggAuoYgFgDo0XrCg2hWg3seObEAAGTHSiw9TrUt4W0LF7X5envSLeKO6pc8KZ92oWpcv7XywGSru7IDV9KZa0jxn9roB4qn/J8ZVaQQjLu32Iav6Jq1sdgwXzO1sopAWsXgvKPuKY9v/NHM8niPPxbHrDq0+Hdr0zPFPdKUhTQtYcAfk/ezqfLeaWWFp99TpA2sXp2mWxTn7zW/eDVNOUhVpBAkaRrp6xER24YVNSIGJKkhqbSCwcBFy9o8plqaQa0pAFIFAOpHEAsA9AlSAnoX6QQAAGTHSiw9WrXUgtYaxo8tjlva9jFpRYL0ui3ptnPy1HtaAWHzwXuUxyNabU2nhfvT6gGjHk3SCZI0g2XHFNv46dP/T56aPhNfpAD031xs45fGVzYcaFpUVAx4y/D/KY+/e8j08vj5Q4rjJ416oTxe+f2iWsALxxXXHfJQcc11zcW5jZW3jpXTivfxqnvarm6Qpg08/+rimOFPJ9dN0i6ePqlIrxj9YNG9YcgTSb5DVP7FlaYE9Nt37+KY5OdUrSJBqlp1gvZ0VjqBhggAHSeIBQD6hHpWOZDK0PmkEwAAkB0rsWSj3W3WhW1/L90WrrZdnG47Vzwdnxwz4qFVbR4TUbnVvW1okXYwaEXRcGD95GK7eMK8Yl8+bSCw20NF2sDqpBHB1IOL/IjnNxVb7BERq5L+D3/96w+Wx6+6p+3GBAsPLubRL0khaNlc/FWwZbcixWHjoGI8ZK/Kz3jYj0eUx9uGFHNPUxMa7xhUHqfVDNJUhIn/XnQ7GB1Fakb6uW4dW5lKklaIWPI3k8vjvX7wRHFQUjWisq5CoVpFgvZSV6r9HlZLCaglVUAKAUDHCWIBALpYmsogtaBzSCcAACA7VmLpcWrZlm0tPa5x/J7lcdr3vtoT5+mWckMyLiXHVLt+RGV6QbUn7Yc9k1xtdNEMYFBRz78ihWDM/OI/zcXPFFUEtg1JZxWx7/Snoi3Pv7VIO9h85+jyuN9uRQOHYfcVKQcb9iqu++nTflQeX37T28vj5oNfqLjH4qnF+0ubLkTS7GDz7sVG/voJRQpB+r7XHlO8v0Eri/ml1SG2TR5Vce80nWD8v/2pPG5JqhOkzSpS6e9E4/5FPkZa1aK97f1qv59SBQC6lyAWAKAb1bNKwq7qSakQ0gkAAMiOlVg6TWcVbK/lye7WqQXp1xUpBDWcnzZK2LZwUXmcpg2sOePg8njUw2sr7r15TLF1nzY1mPijFeVx+nT95iSdoJpR7y3SBFYtHVPMdemgiuMW/aHYPt++27byeMioojLCsOeKVIEFx99QHk+/p6hmsPtBRfWFu1YfWB6nzRgem1rMIyIibW/QtLrtfw+vP7KoVDAoaaKwYXx6VHHuiIeKn1GaZpCmabRWqpZCkKQjpCkjFekmyc87/Z1I0wzSYyKkBwD560mrqbvCSiwAANkRxAIAkB3pBHSarthm3ZknvnclrSE9N92CHv7k5vJ427CBFeekTQ2qbWevfHOxFb8t6UOQPqXf9EyxQf/sn5In9pPjP372LRX3/qfb3lZ8sbFIZWj8U1E5YP1frymP79hUzH3N1KTSwcNFk4YVg3Yvj8f8bZFmsO/g4n1GRDx7XzHHtLpB0+qiIsGWpIlC+l4379b2uGVokWrxYtJAYdDKIlUiovJnMHD5jn/GacpIaenyNo+pSDdJKhW0rkaRpqt0VGel3ADsilofLOvpaQdWYgEAyI4gFgCA7EgnoNfpaG/7WNj28ekT6mlx/WpF9Nsz/OmiGUC6TZ6mKaw+qvjPsf/mIrUgbZRw9VeL5gMREU3JVvz2QcV11+5T3K8pSS34/57/u+KEpJpBv0HFeMyoIo1iVJJCsPL7RfpARMSGJB3hqGMfLY8ff6FITdiSpCmkaQNpasHgVcVcnz2umOvoB4rKBu2mDCRpGzF8aHmYNqFoeKztphCpqr8fO5G60tGGCAA90a7Ws+3qdAQrsQAAZEcQCwBAdrJLJ/jmN78ZX/7yl2PZsmVx2GGHxVVXXRVHHXVUvadFJ9qZJ7g7ek5Fs4Phw9o8Jn2KvSH9Rqvjt04dVx4PXLSsPN546ITyeNgTxZyeP2hEebxtSPGf4MSbi2s+M7PYqm/clKQJHPJixb33n1I8Rv/0nZXb/S/7u7fNK4//Zf7xbR7zvqPuKY//7Y+vK48/MKV4/dq3Dqk4Z+ido9u81opnX1UeN20s5r5xfJE2sHFq0bxgyKIidWLU/xbHpJ/lczMnVdxj99+vLK6VfM5Dnni+PK6WQlDx866y1V/r79POVM8A6E3qWcEgq5XYm266KWbNmhVz5syJBx54IA477LA46aSTYsWKFTs+GQCAXiOrIPbKK6+M8847L84999w48MAD49prr40hQ4bEt7/97XpPDQCAbpRNOsHWrVvj/vvvjwsvvLD8Wr9+/eKEE06Ie++9t81ztmzZElu2FE+Sr127ts3j6Fl2Zit2V7Zv06YG6XXSIvcVKQOtnpRPv063vXeft7jN19OKBOsmDiqPB2wsUggm3VYc8+yxSbeDVhY+1Fx8MbVINRgyqqgq8O073li8njQi2Hxw8fR/mmbQtLr4t+3/vLq4/orHiyYIERH9jizOv/f+/ds8f8K84pjH31k0MhjxpyKFIG3+sGmP4txNp00uj8fOr9xt2Tq22O5Pm01UVCpIVKQKtHlEO8cnqQWtv1dNLekIGh8AXaWnNynoLNmsxK5atSq2b98eY8eOrXh97NixsWzZsjbPueyyy2LkyJHlP83NzW0eBwBAXrJZid0ZF154YcyaNav89dq1awWyAECvtqv1XXdVd60EZxPE7rHHHtG/f/9Yvryy7/ny5ctj3LhxbZ7T1NQUTU1NbX6PPOzqlmuaElCt5316j9Zbx+XrJM0O0qoFERGbjn11eZw+NZ8W209TC9KC/ANGF7+fg1YWqS/PH9B2CkH6JH9EZdOAdGPlheMGlsdXv63IGb9k4enlcVpjYcXqYh79D1lTHt/1ZJEm8NbX/aHi3rc9ekibcxy5qEiLWHxakS7RlKQyNG6KNm0YX4wn3VrMo2Vo5X/HaQrH2oOLhgojlhUfSFqFoFoKQfr7UU3r35taGhzUQgoBwK7JJp1g4MCBccQRR8S8eUW5oJaWlpg3b14cc8wxdZwZAADdLZuV2IiIWbNmxdlnnx3Tp0+Po446Kr72ta/Fhg0b4txzz6331AAAepTe/oBXVkHsmWeeGStXrozPfvazsWzZsjj88MPjjjvueMXDXgAA9G4NpVKptOPDeoe1a9fGyJEjY0a8NRobBuz4BHqVjuYy7ky3sBenTS2P025cg3/9aHmc5mqmpbfSEluNG4qOVtuGFhmd65orM4CGP110uErLU60+uHi9325Fru3RkxeXxw/cdUAx76lFkmrL5rb/bZuW7YqI2LypyLsddl+Rw5vmu6blswY91/ZfNYNXbiuOScpl9dtQzLt1TuzmMUX3sLRL18bJo4p5bCyuO+DBRW3eu5byV607ulXLra6XzaWN8av4WTR/7AfRr2nIjk8A+oxcV2JfjtfWrFkTI0aMqHpcViuxAADUppYqBbkGuhEZPdgFAAAvsxJLn1EthaCjHZja0++eB8vjwck5pX33Lo+XHjeyPB71aNFlK93+Tkt6rTyyOL51aao0hWBzUdEr9j/46fJ48T0Ty+N7NxfpDhPvLe79dPFy3DrzqvL4k0+8vTx+9YjK0mL3Li86aq0/rpjv8O8W7/v5/Yr5rZhRvL/dft92Os+2YUWKwrMnFe+7+b/WVByXphCkJc+qbaa3JJ9/ywMPVzmqbe2lD+i6BVA/glgAgF2Q85Z8zqQTAACQHSux9Ekd3fpNn1Bvvb2cdn3ql2xbv5hsjQ9ctKw83uv24qn7rWOL7ei0C9XyGWPK47HzV5THaXeqiMoqBmumFv85r/x+kUIwMql6sG1psY2/8v3FFv2g+4qt+7eu/lh5PGRp8e/cxYOKa7a2ZbeiGsLGU4o57fb74vxBSQrB8CeLVIY0NSDWbSgPJyYFBdIqDi+dv7n4ospnmKqWQlAtHaDW349qKSrt/b4A0DkEsQAAu6CWKgC1kJbQMdIJAADIjpVY+oxaniSvdky6Jdy6UkHLuKIsQPp0fbq1nZ6fph8MTLbPt04dVx6PeqQoQ/C//2d0eTxyUUPFvbclzQ8m3Vacs3l00Rxg1aHFMem2fzyfPMs/tdje3+tnRXOFZa8tUhFa37sxSVOIv30u2rSxSH9YdXKRAjD6K0U1g7RBwbahxfFpZYNR/5vMu5W0kkPaFKHfstXlcbXqEhWNDHahesUrjlOpALqFlcu+zUosAADZEcQCAJAd6QT0GZ1VjL71dRqTbeuByevVUghi+NDyMN3+XjdxUHk8INmq3++ri4vjk9SFiMpGCM8fMLg8Xn1wsf0+5vfFtVYcVZybNhzYVpxakUIw7rfFeF1zZTrB5t2KrwfdWqQ8rJmanJ+mHCTWTy6260c8tKr4RpJeMeKh4nN67qji+hERw5IUgs1jirSIIX98pjxOP6t+yWe+bWFS9sC2P2Stsx6oipCakCMrsQAAZEcQCwBAdqQTQCJNFUhTANqrTpAqrVvf9nHJdnZp6fLyuF/ydPzuG4omCBVNDZJz0234iIjNldkFZWN+X2z1p1UBRtxX5A2k1QUGr0oaIgwu/m37YlLAYNCJKyvuseLZV5XHo5KKBquPKpodvDik+Ctmzx8VqRODVhbvNU0haJ0u8bIBrdIS0soDkaQTpBoee6r4Iq1CkKil2UHrn3dnpaUABVv57AwrsQAAZEcQCwBAdqQTQBXVet6/Yju5hu3lxnXFdnbD+LE7PH7EvU+Wx+kWe8U2fEQMG1JUNBi8cltxv43FeNs9RQrB4FVF1YJlry1SDoYuKf49O+yZtIlBUTlgzX2VFQJGPF+M1zUX4zHzK6sYtHW/iGLek24rmjysfE0x11GPFg0Yhj1R+RmnaRtpRYKqFSGqqCU1oPUxO9MIAShIHaCzWIkFACA7glgAALIjnQC6SLrtXEt1g9K+e5fH6b8u06fstx376opzdvvJQ+XxuhMPavO6aQpBui3ftF/RKCFtdrB+QttNDJqSY1qfk6YgbN69OL9xU3HM0CXFOE0VWHxakVow9T/WFPNIKjH021CZRtF2C4XqKQRp+kE1taYJSCGAgtQA6slKLAAA2bESCwB9gFVTehtBLHSRWhonpK9vf+Dh8rgh2dpO0wzSqgMRlZUOVh1abKxsmVA0HJh4czF+/qAR5fGgpF9Amhow+oEiB2DdxKT6warKTfw0NSG97pZR0aZBzxXnD1qxsTyedNvA8vjZ44oUh71uX1Eepw0iIiIakuYFaarAi9OmlscDFy0rjztahaDazwuAnkM6AQAA2bESCwC9gHQB+hpBLOyiWp5qT7e8qz1B37h/sRXeMrSpPO63rNj379d6azu51qRbiyf7Vx6ZVB4YWlQnSCsHbNir2N4fuajtBgXbhjS0OY6IePZtRRrAHnek5xTXbXq+7eumGtdvLY/3+sGyNo9JUyoiIhqSagWlpBnEgAcXFQdVaSqRfv7pzyX92UkhAOj5pBMAAJAdQSwA9AKTZs+NSbPn1nsa0G12Kp3gmWeeif/8z/+Mp556KrZu3VrxvSuvvLJTJga56Gjx+6qND5Kt7c1JU4OiPkBEv2TrPCIikm31tDnA2NueKI4ZPrQ83LTHmPJ40m2by+PnDyjKE2wbUttfC3vcUcwsTTXY/Y9pFYNivPvvV+7wmhsPnVAeD3ni+arHpdUK0oSF9GfRf2nb50oVAOgdOhzEzps3L04//fSYMmVKPProo3HwwQfH4sWLo1QqxWte85qumCMAAFTocBB74YUXxsc//vG49NJLY/jw4XHLLbfEmDFj4qyzzoqTTz65K+YIANlRLQC6VoeD2EceeST+4z/+46WTGxtj06ZNMWzYsPjc5z4Xb33rW+ODH/xgp08SctfRYvvpVvrWsUWaQFrAv7URDxXjliTtYPOYIeXx4FVFpYK0kcHY+UVjgfR+g1f1L48bNxRNE1rPcePkosPBuokDyuPhT77Y5lzT6gvbhhVVDipSCNZtKA9bJ++Xom1pekbaCCIWtv35V6ssUUvFCQDqq8MPdg0dOrScB7vnnnvG448/Xv7eqlWrOm9mAABQRYdXYl/72tfGr371qzjggAPilFNOiQsuuCD+9Kc/xY9+9KN47Wtf2xVzBIBuJRUAer4OB7FXXnllrF//0lPUl156aaxfvz5uuumm2HfffVUmgCoqqhDUItlKH5iMWz9Z33LctPI4LfS//sSDyuM0DWDYE8XWeJpmUC1lYeVrJhf3Hly5cTMxKYCwclqRQrDnrzcV5ySVDtKUg9TAO+4r5pG8n/R9p9UIIiqbH7Q88HB5nDaM2LZwUeysnUkhkIIA0L06HMROmTKlPB46dGhce+21nTohAKi3tN6qVVnomTqcEztlypR47rnnXvH6Cy+8UBHgAgBAV+lwELt48eLYvn37K17fsmVLLFmypFMmBQAA7ak5neA///M/y+P/+q//ipEjR5a/3r59e8ybNy8mTZrUqZOD3iLNkWwcv2d5XLV7V6KUdPJqfUxjWnIrKSk14qGiUki1XNQhf3ymPF57zMTkO+PKo9EPFPmtaUmu1tdtLA6ryINt3LitGK8vuvulZbXSz6Oi/1/SaSztZhYR0S/pVNYvOb917mxb90g/84bhw5J77FoeqzzYvEkZgPzUHMSeccYZERHR0NAQZ599dsX3BgwYEJMmTYqvfOUrnTq51D/90z/F3LlzY8GCBTFw4MB44YUXuuxeAAD0bDUHsS0tLxVJnzx5ctx3332xxx57dNmk2rJ169Z45zvfGcccc0z827/9W7feGwCAnqXD1QmeeKKoq7N58+YYNGhQO0d3nksvvTQiIm644YZuuR90ldZlsl5WkXKQbHO3u02dnpOUl0pLdDVuLFIQ0rJa6X+5aRmuatv+ox5eW3Hr9ZOL6456tOjMlaYQpNJrpeXA0jSIinsnJbLSdICIyo5fDUkKQbWuW6VW6Qg7er09Smn1XFICoG/p8INdLS0t8Y//+I+x1157xbBhw+Ivf/lLRERcfPHFVkgBAOgWHQ5iP//5z8cNN9wQX/rSl2LgwGJl5eCDD45//dd/7dTJ7aotW7bE2rVrK/4AAJC/DqcT3HjjjXHdddfFzJkz4wMf+ED59cMOOyweffTRDl1r9uzZcfnll7d7zCOPPBKvfvWrOzrNiIi47LLLymkIkJNqKQetqxNUPF2fSp7sH7g82fJOOnP1W7a6PB782FPl8eozDi6P0xSCtCLA/7tJeZSmEKT3e+6o0eXxgI2l8njbscV/02mVhDQ1IE0haBm3W8Wd0y5d6WdSrcJDZ277d/Ra0g+6lhQC6Ls6HMQuWbIkpk6d+orXW1pa4sUXX2zjjOouuOCCOOecc9o9ZlcaKFx44YUxa9as8tdr166N5ubmnb4eAAA9Q4eD2AMPPDD++7//OyZOnFjx+g9/+MOYNm1albPaNnr06Bg9evSOD9xJTU1N0dTUtOMDAQDISoeD2M9+9rNx9tlnx5IlS6KlpSV+9KMfxcKFC+PGG2+Mn/70p10xx4iIeOqpp2L16tXx1FNPxfbt22PBggURETF16tQYNqzKlir0cNW2v2tVLe0g3YpPn8AfmByTNjgYtLJIFdh93uLyeOvUovFBe39ZbB7d1OZ4+JObi/OrVD1IUx82HTqhmNOKjeVxQ5LuEFH9/XV0u76W49v7GdVyvhSCrjVp9tzyWGoB9C0dfrDrrW99a9x2223x85//PIYOHRqf/exn45FHHonbbrst3vSmN3XFHCPipeB52rRpMWfOnFi/fn1MmzYtpk2bFn/4wx+67J4AAPRMHV6JjYj4q7/6q7jrrrs6ey7tuuGGG9SIBehDrKwC7dmpIDbipQ5aK1asKHfyetnee++9y5OCvqLaVnNFcf9ku72UPL0fUbnVXbVSQSppgjDi3mKcbsmXksPTSgPLZ4ypuNTY+SvK47UHFx38hj1RnJM2V1g3sWivkKYspO9v8K87VuGkPbVUBUgbRKTNFVLSAQB6pg4HsY899li8973vjd/85jcVr5dKpWhoaIjt27dXORMAADpHh4PYc845JxobG+OnP/1p7LnnntHQ0NAV8wKgD5E6AHRUh4PYBQsWxP3337/TDQiAHatWdaBdybZ3tSfq06YBafOCav8U3Th5VHmcpg9EVKYXDH+yqBGdphCkTRCGP1mMU61TJMpzGj+2yqyqb/1XSyFI0zPSz7badQDo+TpcneDAAw+MVatWdcVcAACgJjWtxK5dW7SevPzyy+OTn/xkfOELX4hDDjkkBgwYUHHsiBEjOneGAPQ4tv+BeqspiH3Vq15VkftaKpVi5syZFcd4sAt6ju1VUgsqmgYk1QzS6gSpNB0grWwQUZlekKYEpFUSNibNCwbecV9xcrK9v+7Eg8rjEfc+WR63t9VfS+WBVJpC0NFzAeiZagpif/nLX5bHixcvjubm5ujfv3/FMS0tLfHUU0+1PhUAADpdTUHsG97whvL4jW98Yzz77LMxZkxlzcjnnnsuTjjhhDj77LM7d4YA9Dhpu9fWpBoA3aHD1QleThtobf369TFo0KA2zgC6W/o0fpoq0FAlhaDa62mzg7SyQUREv2Wr2zy/Yh5JOkK/1xRpA2mLlDSFIL1He385VUt/qEYKAUDvU3MQO2vWrIiIaGhoiIsvvjiGDCnK6Gzfvj1+97vfxeGHH97pEwQAgNZqDmIffPDBiHhpJfZPf/pTDBw4sPy9gQMHxmGHHRYf//jHO3+GAPQI0gSAnqTmIPblh7vOPffc+PrXv66UFvQA1bbJqzVLSB/HTFMAqj29n0qbI0RUT0eI4UPLwwEPFhUGXpw2tTweuGhZm/doeeDh5Jptz6P1/dL3VEuDg2qkHADkpcM5sddff31XzAOAHq69h7kirNQC3avDHbsAAKDeOrwSC9RP663+Wra9q6UHpKpVM0ibGGw69tUV5wxJxhsnjyqP06YGG9/+2jbvNzDpY5Der3H/IuUgbXbQ+j3Ukv5QSwpBSgoBQF4EsQDskFQBoKeRTgAAQHasxEIPV+tT89W21dNz0mOqbclXPOGfbO8PWrGx4rrpdv/AhcXrLcdNK49HPLSq+Ma6DeVhtWYFLUOb2ny9YfzYiq/7L23zsJqoQgDQOwhiAdihtioTSDEA6kk6AQAA2bESCz1crVvetRxXrRlAqjFtXJCkALT+F2+/5PytU8eVx2mDg61pg4PkWtVSFhqWrS6un7zeWrUUiVoaHEghAOgdBLEA7JDUAaCnkU4AAEB2BLEAAGRHOgH0IdU6c6Ua0pzYRFpSK6KyG9ewJ4o809K+e5fH/e55sDg/OTfNY027gqX5qv1ec1Axp8eeqrh3tffR0S5dvESqAJAjK7EAAGTHSixAH9dWDdiUlVqgJxLEQi9UrStVTdvtNZagGn7nw+VxmoKQ3qOxnTJZxf2SMl5JKkLLAw+3dfRL162S8gBA3yGdAACA7FiJBeijpAkAORPEQi9UraNVtW5VFd27hg8tD9OKBOl1Wl+rJenMNSCpFtAytKk8TisMNIwfW9wjST/on5573LTyeOCiZRX3rjgnmVct77WWYwDo+aQTAACQHUEsQB81afbcHVYmAOippBNAxjprazxtGLC9ylZ96+un32tMt/uTygENG7aUx9uS8xvXFcdUa1yQNkootUpl2JX3LYUAoHewEgsAQHasxAL0UaoTADkTxELGatkaT4+ptnXfmSquW+0eSQWEtNlBKWl20D+pZtBeKgMAfZN0AgAAsiOIBeijVCYAciadAPqQtElALaqlIkRUpg1UjJOUgH7LVpfH/dOTkxSCNLWg5YGH27xfxbmhwgAAmazELl68ON73vvfF5MmTY/DgwbHPPvvEnDlzYuvWrfWeGgAAdZDFSuyjjz4aLS0t8c///M8xderUeOihh+K8886LDRs2xBVXXFHv6QEA0M2yCGJPPvnkOPnkk8tfT5kyJRYuXBjXXHONIBa6UFoFoHUqQvq9hioNDqpVQEivlaYNpOP2Uh8a959a3GPp8jbnsa3Gpg0A5CmLILYta9asid12263dY7Zs2RJbthT/Q127dm1XTwugx1EPFuiNssiJbW3RokVx1VVXxd///d+3e9xll10WI0eOLP9pbm7uphkCANCV6roSO3v27Lj88svbPeaRRx6JV7/61eWvlyxZEieffHK8853vjPPOO6/dcy+88MKYNWtW+eu1a9cKZGEntW4wkG7dp9Lt/YrXqzQySKsTVDu39b2rHVctBUEKAUDvU9cg9oILLohzzjmn3WOmTJlSHi9dujSOP/74eN3rXhfXXXfdDq/f1NQUTU1NuzpNgKy1rgcrvQDoDeoaxI4ePTpGjx5d07FLliyJ448/Po444oi4/vrro1+/LDMhAADoBFk82LVkyZKYMWNGTJw4Ma644opYuXJl+Xvjxo2r48yg92m9dV9NR5/+r0ghSK+zcFF5nFYdiIXFdVqnLnS0aQMAvU8WQexdd90VixYtikWLFsWECRMqvlcqleo0K4A8vZxeIK0AyFkWe/LnnHNOlEqlNv8AAND3ZLESC3SfNB2g1iYB1c55cVqRHtC4aFl5nDZBSFMI0tSCVLWmCe3NUYMDgN5NEAvQC0kVAHq7LNIJAAAgZSUWqEnj+D0rX0iaFMS6DW2eM7BKCkEqbVxQrTLCKxorJOkB1VIF+noKQVob1qos0BtZiQUAIDuCWAAAsiOdAKiqYku+xu35NCXgFWkAbbxeS+OC/jXdmWq0nQV6IyuxAABkRxALAEB2pBMANWldOaCmqgDJeOvJR5bHg3/9aNXrtnWd9ioNaGrQcZNmz5VSAGTPSiwAANkRxAIAkB3pBAC9mLQBoLcSxAI1aZ1vmnbwSrtxpeWz0teH/PGZ4vXkOg3jxxav19C9a0fzAqBvkE4AAEB2BLEAvVjrRgcAvYV0AqBCrSWr0k5baWpBy7jdinHajavKtRqjSCeollrQuvNXtS5fym0B9B2CWIBexINcQF8hnQAAgOxYiQUqpNvwO5Na0D+pSJCmGVRLP9i2cFGb90tTCFqnD1SblxQCgL7DSixAL+JBLqCvEMQCAJAd6QRAVbu6PZ82O0hTAKq9nt6vMalUkKYfRKhOAIAgFqDXUJkA6EukEwAAkB0rsUCnqraNX61SQVXrNnTs+HbuDUDvYyUWoJdQmQDoSwSxAABkRzoB0C1qqUiQvl7RQCF5vfU5KdUJAPoOK7EAvYTqBEBfIogFACA70gmAblEtbaCW1IJaUwP6egpB6we7rMwCvZmVWAAAsiOIBQAgO9IJgC5TS4ODaikA1VIL2juHglQCoLezEgsAQHYEsQAAZEc6AdCpqjUs2BWt0wc0NdixSbPnSikAejUrsQAAZEcQCwBAdrJJJzj99NNjwYIFsWLFihg1alSccMIJcfnll8f48ePrPTWgBmkKQMPwYcXryTG1pgY0jB9bfLFQOkFKCgHQV2SzEnv88cfHD37wg1i4cGHccsst8fjjj8c73vGOek8LAIA6yGYl9h/+4R/K44kTJ8bs2bPjjDPOiBdffDEGDBhQx5kBANDdsgliU6tXr47vfve78brXva7dAHbLli2xZcuW8tdr167tjulBn5amCkSV9IBqVQuqpRy0Pn7bwkVtnqNSgaoEQN+RTTpBRMSnPvWpGDp0aOy+++7x1FNPxa233tru8ZdddlmMHDmy/Ke5ubmbZgoAQFeqaxA7e/bsaGhoaPfPo48+Wj7+E5/4RDz44INx5513Rv/+/ePv/u7volQqVb3+hRdeGGvWrCn/efrpp7vjbQEA0MXqmk5wwQUXxDnnnNPuMVOmTCmP99hjj9hjjz1iv/32iwMOOCCam5vjt7/9bRxzzDFtntvU1BRNTU2dOWVgB9Kt/8bxe7Z9ULLtXy2FoLRufU33k0IA0DfVNYgdPXp0jB49eqfObWlpiYioyHkFAKBvyOLBrt/97ndx3333xetf//oYNWpUPP7443HxxRfHPvvsU3UVFgCA3iuLB7uGDBkSP/rRj2LmzJmx//77x/ve97449NBD4+6775YuAADQB2WxEnvIIYfEL37xi3pPA6iiWpmrNK91e5U82IrXk2vKdQWgPVmsxAJQu0mz59Z7CgBdThALAEB2skgnAHq2alv/1VII0lJaje105gKAaqzEAvQy2s4CfYEgFgCA7EgnALpFtSoEDePHFq8nKQfVzgWACEEsQK+TVieQWgD0VtIJAADIjpVYoMs0jt+zPK7W+CAWrmvz+LRSQes0A+kFO2YFFujtrMQCAJAdQSwAANmRTgB0qmoVBmo5Pk0hqJZawI5JJQD6AiuxAABkRxALAEB2pBMAnapaU4OK1zuYckDtpBIAfYWVWAAAsiOIBQAgO9IJgC6TphCk1QaqSpsYDB9aHmp2AEBrVmIBAMiOIBYAgOxIJwC6TLUUgmpNDVKlpcvLY+kDO/bQpSfFiBEj6j0NgG5jJRYAgOwIYgEAyI50AqDLpGkDtUhTC0rr1pfHqhMA0JqVWAAAsiOIBegFDp7zX/WeAkC3kk4AdLtqaQNpmkCaQiB9AIDWrMQCAJAdQSxAL/DQpSfVewoA3Uo6AVBXaapAmmbQ0coGAPQtVmIBAMiOIBYAgOxIJwC6XbVUgZ1JIVDFAKBvshILAEB2BLEAAGRHOgFQV7uaDiCFAKBvshILAEB2BLEAAGRHEAsAQHbkxAI9ho5dANTKSiwAANnJLojdsmVLHH744dHQ0BALFiyo93QAAKiD7ILYT37ykzF+/Ph6TwPoJNvXrSv/Ka1bX/4DAO3JKoi9/fbb484774wrrrii3lMBAKCOsnmwa/ny5XHeeefFT37ykxgyZEhN52zZsiW2bNlS/nrNmjUREbEtXowodck0gV1QKm0tj7eXXqzjTPLxYrz0ma1du7bOMwHoHC//fVYqtR+sZRHElkqlOOecc+IDH/hATJ8+PRYvXlzTeZdddllceumlr3j9V/GzTp4h0Ck039ppzc3N9Z4CQKdat25djBw5sur3G0o7CnO70OzZs+Pyyy9v95hHHnkk7rzzzvjBD34Qd999d/Tv3z8WL14ckydPjgcffDAOP/zwque2Xol94YUXYuLEifHUU0+1+6FQWLt2bTQ3N8fTTz8dI0aMqPd0suFz6zif2c55/vnnY9KkSbF48eIYNWpUvacDsMtKpVKsW7cuxo8fH/36Vc98rWsQu3LlynjuuefaPWbKlCnxN3/zN3HbbbdFQ0ND+fXt27dH//7946yzzop///d/r+l+a9eujZEjR8aaNWv8T7JGPrOd43PrOJ/ZzvG5AX1VXdMJRo8eHaNHj97hcd/4xjfi85//fPnrpUuXxkknnRQ33XRTHH300V05RQAAeqAscmL33nvviq+HDRsWERH77LNPTJgwoR5TAgCgjrIqsbWrmpqaYs6cOdHU1FTvqWTDZ7ZzfG4d5zPbOT43oK+qa04sAADsjD61EgsAQO8giAUAIDuCWAAAsiOIBQAgO306iJ07d24cffTRMXjw4Bg1alScccYZ9Z5SNrZs2RKHH354NDQ0xIIFC+o9nR5r8eLF8b73vS8mT54cgwcPjn322SfmzJkTW7durffUepxvfvObMWnSpBg0aFAcffTR8fvf/77eU+qxLrvssjjyyCNj+PDhMWbMmDjjjDNi4cKF9Z4WQLfqs0HsLbfcEu95z3vi3HPPjf/5n/+JX//61/Gud72r3tPKxic/+ckYP358vafR4z366KPR0tIS//zP/xwPP/xwfPWrX41rr702LrroonpPrUe56aabYtasWTFnzpx44IEH4rDDDouTTjopVqxYUe+p9Uh33313nH/++fHb3/427rrrrnjxxRfjxBNPjA0bNtR7agDdpk+W2Nq2bVtMmjQpLr300njf+95X7+lk5/bbb49Zs2bFLbfcEgcddFA8+OCDcfjhh9d7Wtn48pe/HNdcc0385S9/qfdUeoyjjz46jjzyyLj66qsjIqKlpSWam5vjwx/+cMyePbvOs+v5Vq5cGWPGjIm77747jjvuuHpPB6Bb9MmV2AceeCCWLFkS/fr1i2nTpsWee+4Zb37zm+Ohhx6q99R6vOXLl8d5550X//f//t8YMmRIvaeTpTVr1sRuu+1W72n0GFu3bo37778/TjjhhPJr/fr1ixNOOCHuvffeOs4sH2vWrImI8HsF9Cl9Moh9eQXskksuic985jPx05/+NEaNGhUzZsyI1atX13l2PVepVIpzzjknPvCBD8T06dPrPZ0sLVq0KK666qr4+7//+3pPpcdYtWpVbN++PcaOHVvx+tixY2PZsmV1mlU+Wlpa4mMf+1gce+yxcfDBB9d7OgDdplcFsbNnz46GhoZ2/7ycoxgR8elPfzre/va3xxFHHBHXX399NDQ0xM0331znd9H9av3crrrqqli3bl1ceOGF9Z5y3dX6maWWLFkSJ598crzzne+M8847r04zp7c5//zz46GHHorvf//79Z4KQLdqrPcEOtMFF1wQ55xzTrvHTJkyJZ599tmIiDjwwAPLrzc1NcWUKVPiqaee6sop9ki1fm6/+MUv4t57731Fj/bp06fHWWedFf/+7//ehbPsWWr9zF62dOnSOP744+N1r3tdXHfddV08u7zsscce0b9//1i+fHnF68uXL49x48bVaVZ5+NCHPhQ//elP45577okJEybUezoA3apXBbGjR4+O0aNH7/C4I444IpqammLhwoXx+te/PiIiXnzxxVi8eHFMnDixq6fZ49T6uX3jG9+Iz3/+8+Wvly5dGieddFLcdNNNcfTRR3flFHucWj+ziJdWYI8//vjyin+/fr1qA2SXDRw4MI444oiYN29eucxdS0tLzJs3Lz70oQ/Vd3I9VKlUig9/+MPx4x//OObPnx+TJ0+u95QAul2vCmJrNWLEiPjABz4Qc+bMiebm5pg4cWJ8+ctfjoiId77znXWeXc+19957V3w9bNiwiIjYZ599rAJVsWTJkpgxY0ZMnDgxrrjiili5cmX5e1YZC7NmzYqzzz47pk+fHkcddVR87Wtfiw0bNsS5555b76n1SOeff35873vfi1tvvTWGDx9ezh0eOXJkDB48uM6zA+gefTKIjXipzFFjY2O85z3viU2bNsXRRx8dv/jFL2LUqFH1nhq9yF133RWLFi2KRYsWvSLQ74PV7ao688wzY+XKlfHZz342li1bFocffnjccccdr3jYi5dcc801ERExY8aMitevv/76Haa5APQWfbJOLAAAeZOcBwBAdgSxAABkRxALAEB2BLEAAGRHEAsAQHYEsQAAZEcQCwBAdgSxAABkRxALneDZZ5+Nd73rXbHffvtFv3794mMf+1ibx918883x6le/OgYNGhSHHHJI/OxnP+veiQJALyGIhU6wZcuWGD16dHzmM5+Jww47rM1jfvOb38Tf/u3fxvve97548MEH44wzzogzzjgjHnrooW6eLQDkT9tZqMHKlSvjkEMOiY985CNx0UUXRcRLQemMGTPi9ttvj5kzZ5aPnTFjRhx++OHxta99reIaZ555ZmzYsCF++tOfll977WtfG4cffnhce+213fI+AKC3sBILNRg9enR8+9vfjksuuST+8Ic/xLp16+I973lPfOhDH6oIYNtz7733xgknnFDx2kknnRT33ntvV0wZAHq1xnpPAHJxyimnxHnnnRdnnXVWTJ8+PYYOHRqXXXZZzecvW7Ysxo4dW/Ha2LFjY9myZZ09VQDo9azEQgdcccUVsW3btrj55pvju9/9bjQ1NdV7SgDQJwlioQMef/zxWLp0abS0tMTixYs7dO64ceNi+fLlFa8tX748xo0b14kzBIC+QRALNdq6dWu8+93vjjPPPDP+8R//Mf7P//k/sWLFiprPP+aYY2LevHkVr911111xzDHHdPZUAaDXkxMLNfr0pz8da9asiW984xsxbNiw+NnPfhbvfe97y9UGFixYEBER69evj5UrV8aCBQti4MCBceCBB0ZExEc/+tF4wxveEF/5ylfi1FNPje9///vxhz/8Ia677rp6vSUAyJYSW1CD+fPnx5ve9Kb45S9/Ga9//esjImLx4sVx2GGHxRe/+MX44Ac/GA0NDa84b+LEiRVpBzfffHN85jOficWLF8e+++4bX/rSl+KUU07prrcBAL2GIBYAgOzIiQUAIDuCWAAAsiOIBQAgO4JYAACyI4gFACA7glgAALIjiAUAIDuCWAAAsiOIBQAgO4JYAACyI4gFACA7glgAALLz/wP5TStuUcct+AAAAABJRU5ErkJggg==", "text/plain": [ "Figure(PyObject
)" ] @@ -322,6 +261,22 @@ "axis[2,1].set_xlabel(\"x10\")\n", "axis[2,1].set_ylabel(\"theta\");" ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "62850e04", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "649c39f4", + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { diff --git a/Project.toml b/Project.toml index e482eb67..2075aa65 100644 --- a/Project.toml +++ b/Project.toml @@ -6,6 +6,7 @@ version = "0.4.3" AbstractMCMC = "80f14c24-f653-4e6a-9b94-39d6b0f70001" ArgCheck = "dce04be8-c92d-5529-be00-80e4d2c0e197" DocStringExtensions = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" +DynamicPPL = "366bfd00-2699-11ea-058f-f148b4cae6d8" InplaceOps = "505f98c9-085e-5b2c-8e89-488be7bf1f34" LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" LogDensityProblems = "6fdf6af0-433a-55f7-b3ed-c6c6e0b8df7c" diff --git a/src/AdvancedHMC.jl b/src/AdvancedHMC.jl index e55e08de..3c818bb6 100644 --- a/src/AdvancedHMC.jl +++ b/src/AdvancedHMC.jl @@ -23,6 +23,7 @@ using LogDensityProblemsAD: LogDensityProblemsAD import AbstractMCMC using AbstractMCMC: LogDensityModel +using DynamicPPL import StatsBase: sample @@ -222,6 +223,9 @@ function Hamiltonian(metric::AbstractMetric, ℓπ, kind::Union{Symbol,Val}; kwa return Hamiltonian(metric, ℓ) end +### Turing Interface +include("turing_utils.jl") + ### Init using Requires diff --git a/src/sampler.jl b/src/sampler.jl index 7d1b7eb5..79517b89 100644 --- a/src/sampler.jl +++ b/src/sampler.jl @@ -131,6 +131,68 @@ sample( (pm_next!) = pm_next!, ) +### +# Allows to pass Turing model to build Hamiltonian + +function sample( + model::DynamicPPL.Model, + metric::AbstractMetric, + κ::AbstractMCMCKernel, + θ::AbstractVecOrMat{<:AbstractFloat}, + n_samples::Int, + adaptor::AbstractAdaptor = NoAdaptation(), + n_adapts::Int = min(div(n_samples, 10), 1_000); + drop_warmup = false, + verbose::Bool = true, + progress::Bool = false, + (pm_next!)::Function = pm_next!, +) + ctxt = model.context + vi = DynamicPPL.VarInfo(model, ctxt) + + # We will need to implement this but it is going to be + # Interesting how to plug the transforms along the sampling + # processes + + #vi_t = Turing.link!!(vi, model) + + ℓ = LogDensityProblemsAD.ADgradient(DynamicPPL.LogDensityFunction(vi, model, ctxt)) + h = Hamiltonian(metric, ℓ) + return sample( + GLOBAL_RNG, + h, + κ, + θ, + n_samples, + adaptor, + n_adapts; + drop_warmup = drop_warmup, + verbose = verbose, + progress = progress, + (pm_next!) = pm_next!, + ) +end + +function sample(model::DynamicPPL.Model, ϵ::Number, TAP::Number, n_samples::Int, n_adapts::Int; + initial_θ=initial_θ, progress=true, kwargs...) + ctxt = model.context + vi = VarInfo(model, ctxt) + + dists = _get_dists(vi) + dist_lengths = [length(dist) for dist in dists] + vsyms = _name_variables(vi, dist_lengths) + d = length(vsyms) + + metric = DiagEuclideanMetric(d) + integrator = Leapfrog(ϵ) + proposal = NUTS{MultinomialTS, GeneralisedNoUTurn}(integrator) + adaptor = StanHMCAdaptor(MassMatrixAdaptor(metric), StepSizeAdaptor(TAP, integrator)) + return sample(model, metric, proposal, initial_θ, n_samples, adaptor, n_adapts; + progress=progress, kwargs...) +end + +### + """ sample( rng::AbstractRNG, diff --git a/src/turing_utils.jl b/src/turing_utils.jl new file mode 100644 index 00000000..8f4cd52c --- /dev/null +++ b/src/turing_utils.jl @@ -0,0 +1,19 @@ +function _get_dists(vi::VarInfo) + mds = values(vi.metadata) + return [md.dists[1] for md in mds] +end + +function _name_variables(vi::VarInfo, dist_lengths::AbstractVector) + vsyms = keys(vi) + names = [] + for (vsym, dist_length) in zip(vsyms, dist_lengths) + if dist_length==1 + name = [vsym] + append!(names, name) + else + name = [DynamicPPL.VarName(Symbol(vsym, i,)) for i in 1:dist_length] + append!(names, name) + end + end + return names +end \ No newline at end of file From 304d4012a6b72411879c9cd547c84a7e7267d397 Mon Sep 17 00:00:00 2001 From: jaimerz Date: Fri, 10 Mar 2023 11:28:13 -0800 Subject: [PATCH 05/27] Coded interface in --- Lab.ipynb | 50 +++++++++++++++++++++++++++++++++++--------------- 1 file changed, 35 insertions(+), 15 deletions(-) diff --git a/Lab.ipynb b/Lab.ipynb index 298f460c..ca0edea3 100644 --- a/Lab.ipynb +++ b/Lab.ipynb @@ -13,7 +13,16 @@ "execution_count": 1, "id": "baed58e3", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling Turing [fce5fe82-541a-59a6-adf8-730c64b5f9a0]\n", + "WARNING: both Bijectors and Base export \"stack\"; uses of it in module Turing must be qualified\n" + ] + } + ], "source": [ "# The statistical inference frame-work we will use\n", "using Turing\n", @@ -176,24 +185,35 @@ { "cell_type": "code", "execution_count": 6, - "id": "f8724e2b", + "id": "c516fd54", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "\u001b[36m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mFinished 1000 adapation steps\n", - "\u001b[36m\u001b[1m│ \u001b[22m\u001b[39m adaptor =\n", - "\u001b[36m\u001b[1m│ \u001b[22m\u001b[39m StanHMCAdaptor(\n", - "\u001b[36m\u001b[1m│ \u001b[22m\u001b[39m pc=WelfordVar,\n", - "\u001b[36m\u001b[1m│ \u001b[22m\u001b[39m ssa=NesterovDualAveraging(γ=0.05, t_0=10.0, κ=0.75, δ=0.95, state.ϵ=0.18080672496372044),\n", - "\u001b[36m\u001b[1m│ \u001b[22m\u001b[39m init_buffer=75, term_buffer=50, window_size=25,\n", - "\u001b[36m\u001b[1m│ \u001b[22m\u001b[39m state=window(76, 950), window_splits(100, 150, 250, 450, 950)\n", - "\u001b[36m\u001b[1m│ \u001b[22m\u001b[39m )\n", - "\u001b[36m\u001b[1m│ \u001b[22m\u001b[39m κ.τ.integrator = Leapfrog(ϵ=0.181)\n", - "\u001b[36m\u001b[1m└ \u001b[22m\u001b[39m h.metric = DiagEuclideanMetric([1.3292777349795852, 0.4612 ...])\n", - "\u001b[36m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mFinished 10000 sampling steps for 1 chains in 3.447675436 (s)\n", + "\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mProgressMeter by default refresh meters with additional information in IJulia via `IJulia.clear_output`, which clears all outputs in the cell. \n", + "\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m - To prevent this behaviour, do `ProgressMeter.ijulia_behavior(:append)`. \n", + "\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m - To disable this warning message, do `ProgressMeter.ijulia_behavior(:clear)`.\n", + "\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ ProgressMeter ~/.julia/packages/ProgressMeter/sN2xr/src/ProgressMeter.jl:618\u001b[39m\n", + "\u001b[32mSampling 100%|███████████████████████████████| Time: 0:00:04\u001b[39m\n", + "\u001b[34m iterations: 10000\u001b[39m\n", + "\u001b[34m ratio_divergent_transitions: 0.0\u001b[39m\n", + "\u001b[34m ratio_divergent_transitions_during_adaption: 0.0\u001b[39m\n", + "\u001b[34m n_steps: 15\u001b[39m\n", + "\u001b[34m is_accept: true\u001b[39m\n", + "\u001b[34m acceptance_rate: 0.9971217400830983\u001b[39m\n", + "\u001b[34m log_density: -49.00299430674477\u001b[39m\n", + "\u001b[34m hamiltonian_energy: 58.99933815274465\u001b[39m\n", + "\u001b[34m hamiltonian_energy_error: -0.10901742895801192\u001b[39m\n", + "\u001b[34m max_hamiltonian_energy_error: -0.13320082075652806\u001b[39m\n", + "\u001b[34m tree_depth: 4\u001b[39m\n", + "\u001b[34m numerical_error: false\u001b[39m\n", + "\u001b[34m step_size: 0.18080672496372044\u001b[39m\n", + "\u001b[34m nom_step_size: 0.18080672496372044\u001b[39m\n", + "\u001b[34m is_adapt: false\u001b[39m\n", + "\u001b[34m mass_matrix: DiagEuclideanMetric([1.3292777349795852, 0.4612 ...])\u001b[39m\n", + "\u001b[36m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mFinished 10000 sampling steps for 1 chains in 4.171037594 (s)\n", "\u001b[36m\u001b[1m│ \u001b[22m\u001b[39m h = Hamiltonian(metric=DiagEuclideanMetric([1.3292777349795852, 0.4612 ...]), kinetic=GaussianKinetic())\n", "\u001b[36m\u001b[1m│ \u001b[22m\u001b[39m κ = HMCKernel{AdvancedHMC.FullMomentumRefreshment, Trajectory{MultinomialTS, Leapfrog{Float64}, GeneralisedNoUTurn{Float64}}}(AdvancedHMC.FullMomentumRefreshment(), Trajectory{MultinomialTS}(integrator=Leapfrog(ϵ=0.181), tc=GeneralisedNoUTurn{Float64}(10, 1000.0)))\n", "\u001b[36m\u001b[1m│ \u001b[22m\u001b[39m EBFMI_est = 0.5452800568252315\n", @@ -265,7 +285,7 @@ { "cell_type": "code", "execution_count": null, - "id": "62850e04", + "id": "74b110a2", "metadata": {}, "outputs": [], "source": [] @@ -273,7 +293,7 @@ { "cell_type": "code", "execution_count": null, - "id": "649c39f4", + "id": "749a43cf", "metadata": {}, "outputs": [], "source": [] From 2f6f2c16ae1867c6b88a7891affbedd197a7f5ec Mon Sep 17 00:00:00 2001 From: jaimerz Date: Tue, 30 May 2023 18:04:29 +0100 Subject: [PATCH 06/27] working on no glue code from the other end --- src/abstractmcmc.jl | 71 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) diff --git a/src/abstractmcmc.jl b/src/abstractmcmc.jl index e491b53b..a4ac5469 100644 --- a/src/abstractmcmc.jl +++ b/src/abstractmcmc.jl @@ -53,6 +53,77 @@ struct HMCState{ adaptor::TAdapt end +################ +# No glue code # +################ +struct HMCSamplerSettings + ϵ::Float64 + TAP::Float64 +end + +function AbstractMCMC.sample( + model::LogDensityModel, + settings::HMCSamplerSettings, + N::Integer; + progress = true, + verbose = false, + callback = nothing, + kwargs..., +) + return AbstractMCMC.sample( + Random.GLOBAL_RNG, + model, + sampler, + N; + progress = progress, + verbose = verbose, + callback = callback, + kwargs..., + ) +end + +function AbstractMCMC.sample( + rng::Random.AbstractRNG, + model::LogDensityModel, + settings::HMCSamplerSettings, + N::Integer; + progress = true, + verbose = false, + callback = nothing, + kwargs..., +) + # obtain dimensions of the model + ctxt = model.context + vi = DynamicPPL.VarInfo(model, ctxt) + dists = _get_dists(vi) + dist_lengths = [length(dist) for dist in dists] + vsyms = _name_variables(vi, dist_lengths) + d = length(vsyms) + + # wrap metric, kernel and adaptor into HMCSampler + metric = DiagEuclideanMetric(d) + integrator = Leapfrog(settings.ϵ) + kernel = AdvancedHMC.NUTS{MultinomialTS, GeneralisedNoUTurn}(integrator) + adaptor = StanHMCAdaptor(MassMatrixAdaptor(metric), StepSizeAdaptor(settings.TAP, integrator)) + sampler = HMCSampler(kernel, metric, adaptor) + + if callback === nothing + callback = HMCProgressCallback(N, progress = progress, verbose = verbose) + progress = false # don't use AMCMC's progress-funtionality + end + + return AbstractMCMC.mcmcsample( + rng, + model, + sampler, + N; + progress = progress, + verbose = verbose, + callback = callback, + kwargs..., + ) +end + """ $(TYPEDSIGNATURES) From dfd5e74c1395cec68490b24bad51108ed0c28cdc Mon Sep 17 00:00:00 2001 From: jaimerz Date: Tue, 30 May 2023 18:04:56 +0100 Subject: [PATCH 07/27] trying stuff --- Lab.ipynb | 274 ++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 235 insertions(+), 39 deletions(-) diff --git a/Lab.ipynb b/Lab.ipynb index ca0edea3..88a6ce0f 100644 --- a/Lab.ipynb +++ b/Lab.ipynb @@ -11,6 +11,25 @@ { "cell_type": "code", "execution_count": 1, + "id": "e71c6645", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[32m\u001b[1m Activating\u001b[22m\u001b[39m project at `~/Cambdrige`\n" + ] + } + ], + "source": [ + "using Pkg\n", + "Pkg.activate(\"..\")" + ] + }, + { + "cell_type": "code", + "execution_count": 2, "id": "baed58e3", "metadata": {}, "outputs": [ @@ -18,14 +37,13 @@ "name": "stderr", "output_type": "stream", "text": [ - "\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling Turing [fce5fe82-541a-59a6-adf8-730c64b5f9a0]\n", - "WARNING: both Bijectors and Base export \"stack\"; uses of it in module Turing must be qualified\n" + "\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling AdvancedHMC [0bf59076-c3b1-5ca4-86bd-e02cd72cde3d]\n", + "\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling Turing [fce5fe82-541a-59a6-adf8-730c64b5f9a0]\n" ] } ], "source": [ "# The statistical inference frame-work we will use\n", - "using Turing\n", "using LogDensityProblems\n", "using LogDensityProblemsAD\n", "using DynamicPPL\n", @@ -38,7 +56,8 @@ "\n", "#What we are tweaking\n", "using Revise\n", - "using AdvancedHMC" + "using AdvancedHMC\n", + "using Turing" ] }, { @@ -51,7 +70,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "id": "a7d6f81c", "metadata": {}, "outputs": [ @@ -61,7 +80,7 @@ "funnel (generic function with 2 methods)" ] }, - "execution_count": 2, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } @@ -78,17 +97,17 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "id": "5f408f2b", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "Model{typeof(funnel), (), (), (), Tuple{}, Tuple{}, ConditionContext{NamedTuple{(:x,), Tuple{Vector{Float64}}}, DefaultContext}}(funnel, NamedTuple(), NamedTuple(), ConditionContext((x = [0.7273459156073062, -0.7137895625029701, -1.3112158987551843, 3.195064335503728, 0.6578668590997088, 1.8201670957594605, 2.5774094189910475, 1.2959606640141557, -2.615684720848553, -1.7192495259048919, 0.38510954102334116, 0.7049475219687015, 1.4527158089056038, 1.5438517444010695, 0.8504145036053463, 0.9997932200168839, -0.14767140951984356, 0.6046583528834097, -0.38477500804604936, -1.506202996455002],), DefaultContext()))" + "Model{typeof(funnel), (), (), (), Tuple{}, Tuple{}, ConditionContext{NamedTuple{(:x,), Tuple{Vector{Float64}}}, DefaultContext}}(funnel, NamedTuple(), NamedTuple(), ConditionContext((x = [1.2142074831535152, 1.23371919965455, -0.8480146960461767, 0.1600994648479841, 1.9180385508479283, -3.401523464506408, -0.0957684186471088, 0.6734622629464286, -3.2749467689509633, -1.6760091758453226, 1.9567202902549736, 0.1136169088905351, 0.11117896909388916, -0.5373922347882832, -0.12436857036298687, -1.2901071061088532, 1.702584517514787, -0.44460133117954226, 1.0818722439221686, 1.2208011493237483],), DefaultContext()))" ] }, - "execution_count": 3, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } @@ -109,7 +128,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "id": "be8a75dd", "metadata": {}, "outputs": [ @@ -119,7 +138,7 @@ "Sampler" ] }, - "execution_count": 4, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } @@ -148,7 +167,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "id": "baaf795f", "metadata": {}, "outputs": [ @@ -163,7 +182,7 @@ "), HMCKernel{AdvancedHMC.FullMomentumRefreshment, Trajectory{MultinomialTS, Leapfrog{Float64}, GeneralisedNoUTurn{Float64}}}(AdvancedHMC.FullMomentumRefreshment(), Trajectory{MultinomialTS}(integrator=Leapfrog(ϵ=0.1), tc=GeneralisedNoUTurn{Float64}(10, 1000.0))))" ] }, - "execution_count": 5, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -184,7 +203,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 7, "id": "c516fd54", "metadata": {}, "outputs": [ @@ -200,24 +219,24 @@ "\u001b[34m iterations: 10000\u001b[39m\n", "\u001b[34m ratio_divergent_transitions: 0.0\u001b[39m\n", "\u001b[34m ratio_divergent_transitions_during_adaption: 0.0\u001b[39m\n", - "\u001b[34m n_steps: 15\u001b[39m\n", + "\u001b[34m n_steps: 31\u001b[39m\n", "\u001b[34m is_accept: true\u001b[39m\n", - "\u001b[34m acceptance_rate: 0.9971217400830983\u001b[39m\n", - "\u001b[34m log_density: -49.00299430674477\u001b[39m\n", - "\u001b[34m hamiltonian_energy: 58.99933815274465\u001b[39m\n", - "\u001b[34m hamiltonian_energy_error: -0.10901742895801192\u001b[39m\n", - "\u001b[34m max_hamiltonian_energy_error: -0.13320082075652806\u001b[39m\n", + "\u001b[34m acceptance_rate: 0.9977556019563564\u001b[39m\n", + "\u001b[34m log_density: -55.59669800049129\u001b[39m\n", + "\u001b[34m hamiltonian_energy: 76.99245786344844\u001b[39m\n", + "\u001b[34m hamiltonian_energy_error: -0.037907257288452456\u001b[39m\n", + "\u001b[34m max_hamiltonian_energy_error: -0.08384075689365034\u001b[39m\n", "\u001b[34m tree_depth: 4\u001b[39m\n", "\u001b[34m numerical_error: false\u001b[39m\n", - "\u001b[34m step_size: 0.18080672496372044\u001b[39m\n", - "\u001b[34m nom_step_size: 0.18080672496372044\u001b[39m\n", + "\u001b[34m step_size: 0.11952907411701275\u001b[39m\n", + "\u001b[34m nom_step_size: 0.11952907411701275\u001b[39m\n", "\u001b[34m is_adapt: false\u001b[39m\n", - "\u001b[34m mass_matrix: DiagEuclideanMetric([1.3292777349795852, 0.4612 ...])\u001b[39m\n", - "\u001b[36m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mFinished 10000 sampling steps for 1 chains in 4.171037594 (s)\n", - "\u001b[36m\u001b[1m│ \u001b[22m\u001b[39m h = Hamiltonian(metric=DiagEuclideanMetric([1.3292777349795852, 0.4612 ...]), kinetic=GaussianKinetic())\n", - "\u001b[36m\u001b[1m│ \u001b[22m\u001b[39m κ = HMCKernel{AdvancedHMC.FullMomentumRefreshment, Trajectory{MultinomialTS, Leapfrog{Float64}, GeneralisedNoUTurn{Float64}}}(AdvancedHMC.FullMomentumRefreshment(), Trajectory{MultinomialTS}(integrator=Leapfrog(ϵ=0.181), tc=GeneralisedNoUTurn{Float64}(10, 1000.0)))\n", - "\u001b[36m\u001b[1m│ \u001b[22m\u001b[39m EBFMI_est = 0.5452800568252315\n", - "\u001b[36m\u001b[1m└ \u001b[22m\u001b[39m average_acceptance_rate = 0.9617618920775541\n" + "\u001b[34m mass_matrix: DiagEuclideanMetric([1.8273790343807308, 0.4706 ...])\u001b[39m\n", + "\u001b[36m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mFinished 10000 sampling steps for 1 chains in 4.519542573 (s)\n", + "\u001b[36m\u001b[1m│ \u001b[22m\u001b[39m h = Hamiltonian(metric=DiagEuclideanMetric([1.8273790343807308, 0.4706 ...]), kinetic=GaussianKinetic())\n", + "\u001b[36m\u001b[1m│ \u001b[22m\u001b[39m κ = HMCKernel{AdvancedHMC.FullMomentumRefreshment, Trajectory{MultinomialTS, Leapfrog{Float64}, GeneralisedNoUTurn{Float64}}}(AdvancedHMC.FullMomentumRefreshment(), Trajectory{MultinomialTS}(integrator=Leapfrog(ϵ=0.12), tc=GeneralisedNoUTurn{Float64}(10, 1000.0)))\n", + "\u001b[36m\u001b[1m│ \u001b[22m\u001b[39m EBFMI_est = 0.5110910368914205\n", + "\u001b[36m\u001b[1m└ \u001b[22m\u001b[39m average_acceptance_rate = 0.9774544772681191\n" ] } ], @@ -236,7 +255,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 8, "id": "2a803eb8", "metadata": {}, "outputs": [], @@ -247,13 +266,13 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 9, "id": "00f17868", "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAArEAAAL3CAYAAACd2x1cAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAABSk0lEQVR4nO3deZSdVZUw7l1JJZU5BshASJGBADITCSBiYzAICIK0Q7NatAH9sPWHUweHgGLAtkUUcQCFpruF5lNbRFQaIzQYDbSKikBaQUgTJAwJmQhkHkjq/v7g477nFnUrt5KqunWqnmetrHXq1juce6sIO+fsd++GUqlUCgAAyEi/ek8AAAA6ShALAEB2BLEAAGRHEAsAQHYEsQAAZEcQCwBAdgSxAABkRxALAEB2BLEAAGRHEAvUxaRJk6KhoSEaGhrihz/8YdXjTjjhhGhoaIgbbrih+ybXyuLFi6OhoSEmTZr0iu+9/D660sufU3t/fvKTn3TpHHqKSy65JBoaGuKSSy6p91SAOmus9wQAPv3pT8cZZ5wRjY3+SmrPSSedFOPGjWvze3vvvXc3zwagvvwfA6irIUOGxP/+7//Gv/7rv8YHPvCBek+nR5s9e3bMmDGj3tMA6BGkEwB19dGPfjQiIj73uc/Fxo0b6zwbAHIhiAXq6pRTTok3vOEN8eyzz8ZXv/rVDp9///33x1lnnRV77713NDU1xW677RYnnXRS/OxnP2vz+D//+c8xZ86cOPbYY2OvvfaKgQMHxu677x4nnHBC/OAHP9jVt1P27LPPxkc/+tHYb7/9YtCgQTFkyJBobm6OmTNnxhVXXNFp92ltxowZ0dDQEPPnz2/z+9VyStPXV65cGeeff340NzfHwIEDo7m5OT784Q/HCy+88Irr3XDDDdHQ0BDnnHNObNiwIS688MKYOnVqNDU1xbhx4+Lss8+OJUuWVJ3v0qVLY9asWXHAAQfEkCFDYvjw4XHkkUfG1VdfHdu2bduFTwLo7QSxQN1dfvnlERHxpS99KZ577rmaz/v6178eRx11VHzve9+L3XffPU4//fQ46KCDYv78+XHqqafG5z73uVecc+WVV8bnPve5WL16dRxyyCHxtre9Lfbff//45S9/GWeeeWbMmjVrl9/PsmXLYvr06fGNb3wjtmzZEieffHKcfvrpMXny5FiwYEF8/vOf3+V7dJWnn346XvOa18Qtt9wSRx11VLzpTW+KdevWxdVXXx0nnnhivPjii22et2bNmnjd614X1157bRx44IHx5je/OUqlUtx4441x7LHHxpo1a15xzj333BMHH3xwfPWrX43NmzfHm970pjj22GPj8ccfjw9/+MNx6qmnVr0fQJQA6mDixImliCj993//d6lUKpXe9ra3lSKi9A//8A8Vx82cObMUEaXrr7++4vU77rij1NDQUNpjjz1Kd999d8X3/vjHP5YmTJhQiojS/PnzK743f/780uOPP/6K+Tz66KPlc373u99VfO+JJ54oRURp4sSJNb23Sy+9tBQRpfe///2llpaWiu9t3bq19POf/7ym67wsIkoRUfrlL3+5w2Pf8IY3tHvsnDlzShFRmjNnTpuvR0TpnHPOKW3evLn8vaeeeqq01157lSKi9L3vfa/ivOuvv7583kknnVRas2ZN+XurV68uHX744aWIKH3hC1+oOO/ZZ58t7b777qWGhobSt771rdL27dvL31u1alXpjW98YykiSpdeemlN8wf6HiuxQI/whS98IRobG+Nb3/pWPPnkkzs8fs6cOVEqleLaa6+N4447ruJ7hxxySFx55ZUREXHVVVdVfO8Nb3hDTJky5RXX23///ePiiy+OiGi35Fctli9fHhERJ5988ivKbw0YMCBmzpy5U9c9/vjj2yyvdc455+zSfFMTJkyIb37zm9HU1FR+7eV0goiIn//8522eN3To0Lj++utjxIgR5ddGjRoVs2fPbvO8r33ta/Hcc8/F+eefHx/84AejX7/if0e777573HjjjTFgwIC4+uqro1Qqddr7A3oP1QmAHmH//feP9773vXHdddfFxRdfHDfeeGPVY1etWhW///3vY/DgwXHaaae1eczLT/H/5je/ecX31q9fH7fffns8+OCDsWrVqti6dWtEvJTHGhGxcOHCXXovRx11VHzrW9+K2bNnR6lUihNPPDGGDRu2S9eMqF5i6/Wvf/0uX/tlM2fOjCFDhrzi9QMOOCAiomp+6/Tp02PPPfes+by5c+dGRMSZZ57Z5vX22muv2HfffePPf/5zPPbYY7HffvvV/iaAPkEQC/QYl1xySXznO9+J7373u/Hxj388Dj300DaPe+KJJ6JUKsWmTZsqVgzbsnLlyoqvb7vttjj33HPbzb1du3ZtxyefeM973hN33XVXfPe73423v/3t0b9//zjwwAPj9a9/fbzjHe+IN77xjTt13e4osVWt3uzLK6ybN2/ulPP+8pe/RETEX/3VX+1wTitXrhTEAq8giAV6jD333DM++tGPxmWXXRYXXnhhebWutZaWloiIGDZsWLz97W+v+fpLliyJM888MzZt2hSf/OQn46yzzopJkybFsGHDol+/fnHnnXfGSSedtMvb1/369YvvfOc7cdFFF8XcuXPj17/+dfz617+Oa665Jq655po47bTT4sc//nH0799/l+6zM17+7KpJt/U7oqPnvTyPd7zjHTF06NB2j9199913ak5A7yaIBXqUT33qU3HdddfFz372s7jnnnvaPKa5uTkiXmrH+u1vf7vmAOq2226LTZs2xV//9V+XKyKkHnvssZ2feBsOPPDAOPDAA+MTn/hElEql+MUvfhHvete74rbbbosbb7wxzj333E69X0TEwIEDIyJi3bp1bX6/lnzj7tDc3ByPPfZYfOpTn4rp06fXezpAhjzYBfQoI0eOjIsuuigiIj75yU+2ecz48ePj0EMPjXXr1sUdd9xR87VXr14dERETJ058xfdKpVJ873vf24kZ16ahoSFmzpwZ73rXuyIiYsGCBV1yn7322isiIh555JFXfG/jxo3xy1/+skvu21FvfvObIyI6tTYv0LcIYoEe5/zzz4+99947fve738W9997b5jEv11o999xz47bbbnvF90ulUvzud7+LO++8s/zayw8Z/fCHPyw/xBURsX379vjsZz/b5kNgO+PGG2+M+++//xWvr1u3rtyEoK1AujOccMIJERHxzW9+s+Jhqg0bNsT73//+ePrpp7vkvh31iU98Il71qlfFlVdeGV/5ylfKD9elnnjiifjOd75Th9kBORDEAj1OU1NTuVFBtVa0p512Wnz961+P1atXx+mnnx777rtvvOUtb4mzzjorTjzxxBg3bly89rWvjV/84hcV5xxxxBHxzDPPxH777Rdvectb4swzz4x99tknLr/88vjUpz7VKfP/0Y9+FNOnT4+99torTj311Hj3u98dp556ajQ3N8eCBQvi4IMPjvPOO69T7tXa3/zN38T06dPjqaeeioMOOije8pa3xCmnnBKTJ0+O+fPnx3vf+94uuW9HTZgwIW699dYYNWpUfPzjHy93M3v3u98dp512WkydOjWmTJkSV199db2n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Y2PZsmV1mlU+Wlpa4mMf+1gce+yxcfDBB9d7OgDdplcFsbNnz46GhoZ2/7ycoxgR8elPfzre/va3xxFHHBHXX399NDQ0xM0331znd9H9av3crrrqqli3bl1ceOGF9Z5y3dX6maWWLFkSJ598crzzne+M8847r04zp7c5//zz46GHHorvf//79Z4KQLdqrPcEOtMFF1wQ55xzTrvHTJkyJZ599tmIiDjwwAPLrzc1NcWUKVPiqaee6sop9ki1fm6/+MUv4t57731Fj/bp06fHWWedFf/+7//ehbPsWWr9zF62dOnSOP744+N1r3tdXHfddV08u7zsscce0b9//1i+fHnF68uXL49x48bVaVZ5+NCHPhQ//elP45577okJEybUezoA3apXBbGjR4+O0aNH7/C4I444IpqammLhwoXx+te/PiIiXnzxxVi8eHFMnDixq6fZ49T6uX3jG9+Iz3/+8+Wvly5dGieddFLcdNNNcfTRR3flFHucWj+ziJdWYI8//vjyin+/fr1qA2SXDRw4MI444oiYN29eucxdS0tLzJs3Lz70oQ/Vd3I9VKlUig9/+MPx4x//OObPnx+TJ0+u95QAul2vCmJrNWLEiPjABz4Qc+bMiebm5pg4cWJ8+ctfjoiId77znXWeXc+19957V3w9bNiwiIjYZ599rAJVsWTJkpgxY0ZMnDgxrrjiili5cmX5e1YZC7NmzYqzzz47pk+fHkcddVR87Wtfiw0bNsS5555b76n1SOeff35873vfi1tvvTWGDx9ezh0eOXJkDB48uM6zA+gefTKIjXipzFFjY2O85z3viU2bNsXRRx8dv/jFL2LUqFH1nhq9yF133RWLFi2KRYsWvSLQ74PV7ao688wzY+XKlfHZz342li1bFocffnjccccdr3jYi5dcc801ERExY8aMitevv/76Haa5APQWfbJOLAAAeZOcBwBAdgSxAABkRxALAEB2BLEAAGRHEAsAQHYEsQAAZEcQCwBAdgSxAABkRxALneDZZ5+Nd73rXbHffvtFv3794mMf+1ibx918883x6le/OgYNGhSHHHJI/OxnP+veiQJALyGIhU6wZcuWGD16dHzmM5+Jww47rM1jfvOb38Tf/u3fxvve97548MEH44wzzogzzjgjHnrooW6eLQDkT9tZqMHKlSvjkEMOiY985CNx0UUXRcRLQemMGTPi9ttvj5kzZ5aPnTFjRhx++OHxta99reIaZ555ZmzYsCF++tOfll977WtfG4cffnhce+213fI+AKC3sBILNRg9enR8+9vfjksuuST+8Ic/xLp16+I973lPfOhDH6oIYNtz7733xgknnFDx2kknnRT33ntvV0wZAHq1xnpPAHJxyimnxHnnnRdnnXVWTJ8+PYYOHRqXXXZZzecvW7Ysxo4dW/Ha2LFjY9myZZ09VQDo9azEQgdcccUVsW3btrj55pvju9/9bjQ1NdV7SgDQJwlioQMef/zxWLp0abS0tMTixYs7dO64ceNi+fLlFa8tX748xo0b14kzBIC+QRALNdq6dWu8+93vjjPPPDP+8R//Mf7P//k/sWLFiprPP+aYY2LevHkVr911111xzDHHdPZUAaDXkxMLNfr0pz8da9asiW984xsxbNiw+NnPfhbvfe97y9UGFixYEBER69evj5UrV8aCBQti4MCBceCBB0ZExEc/+tF4wxveEF/5ylfi1FNPje9///vxhz/8Ia677rp6vSUAyJYSW1CD+fPnx5ve9Kb45S9/Ga9//esjImLx4sVx2GGHxRe/+MX44Ac/GA0NDa84b+LEiRVpBzfffHN85jOficWLF8e+++4bX/rSl+KUU07prrcBAL2GIBYAgOzIiQUAIDuCWAAAsiOIBQAgO4JYAACyI4gFACA7glgAALIjiAUAIDuCWAAAsiOIBQAgO4JYAACyI4gFACA7glgAALLz/wP5TStuUcct+AAAAABJRU5ErkJggg==", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAArEAAAL3CAYAAACd2x1cAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAABSGElEQVR4nO3deZhdVZko7q9SSSpzDCEQyMg8CAISAXEABAGNA91Kc69oA3qx9QcOHRwCigH1CijigArN7StIq7cRRW1AEEQDtuIAJC20BBOkOiEkEIikkhAy1fn9YXP2OkXtyqmkqk6tqvd9njzPqn3W3nudU5XKl7W+/a2mSqVSCQAAyMiQRg8AAAC6SxALAEB2BLEAAGRHEAsAQHYEsQAAZEcQCwBAdgSxAABkRxALAEB2BLEAAGRHEAs0xMyZM6OpqSmampri+9//fmm/E044IZqamuK6667ru8F10NraGk1NTTFz5swXvfbC++hNL3xOXf350Y9+1Ktj6C8uuuiiaGpqiosuuqjRQwEabGijBwDwiU98Ik455ZQYOtSvpK6cdNJJMXny5E5fmz59eh+PBqCx/IsBNNSoUaPiT3/6U/zzP/9zvO9972v0cPq1uXPnxrHHHtvoYQD0C9IJgIb60Ic+FBERn/70p+O5555r8GgAyIUgFmioN77xjXHMMcfEihUr4ktf+lK3z7///vvj9NNPj+nTp0dLS0vstNNOcdJJJ8VPfvKTTvv/8Y9/jHnz5sWrXvWqmDJlSgwfPjwmTpwYJ5xwQnzve9/b0bdTtWLFivjQhz4U++67b4wYMSJGjRoV06ZNi+OPPz4uv/zyHrtPR8cee2w0NTXF/PnzO329LKc0Pb5q1ao455xzYtq0aTF8+PCYNm1afOADH4hnn332Rde77rrroqmpKc4888xYv359nH/++bH33ntHS0tLTJ48Oc4444xYvnx56XifeOKJmDNnThxwwAExatSoGDt2bLziFa+Ir33ta7Fly5Yd+CSAgU4QCzTcZZddFhERn//85+OZZ56p+7yvfOUrccQRR8R3v/vdmDhxYrzlLW+Jl770pTF//vyYPXt2fPrTn37ROVdccUV8+tOfjtWrV8fBBx8cf/u3fxv77bdf/OIXv4jTTjst5syZs8PvZ+XKlTFr1qz46le/Ghs3boyTTz453vKWt8Qee+wRCxcujM9+9rM7fI/esmzZsnj5y18eP/jBD+KII46I17/+9bF27dr42te+FieeeGJs3ry50/PWrFkTRx99dFx99dVx4IEHxhve8IaoVCpx/fXXx6te9apYs2bNi86555574qCDDoovfelL8fzzz8frX//6eNWrXhWPPvpofOADH4jZs2eX3g8gKgANMGPGjEpEVH75y19WKpVK5W//9m8rEVH5x3/8x5p+xx9/fCUiKtdee23N8dtvv73S1NRU2XnnnSt33313zWt/+MMfKlOnTq1ERGX+/Pk1r82fP7/y6KOPvmg8ixYtqp7z29/+tua1xx57rBIRlRkzZtT13i6++OJKRFTe+973Vtrb22te27RpU+VnP/tZXdd5QURUIqLyi1/8Ypt9jznmmC77zps3rxIRlXnz5nV6PCIqZ555ZuX555+vvrZ06dLKlClTKhFR+e53v1tz3rXXXls976STTqqsWbOm+trq1asrhx56aCUiKp/73OdqzluxYkVl4sSJlaampso3vvGNytatW6uvPf3005XXve51lYioXHzxxXWNHxh8zMQC/cLnPve5GDp0aHzjG9+I//qv/9pm/3nz5kWlUomrr746Xvva19a8dvDBB8cVV1wRERFXXnllzWvHHHNM7Lnnni+63n777RcXXnhhRESXJb/q8eSTT0ZExMknn/yi8lvDhg2L448/fruue9xxx3VaXuvMM8/cofGmpk6dGl//+tejpaWleuyFdIKIiJ/97Gednjd69Oi49tprY9y4cdVjEyZMiLlz53Z63pe//OV45pln4pxzzon3v//9MWRI8c/RxIkT4/rrr49hw4bF1772tahUKj32/oCBQ3UCoF/Yb7/94t3vfndcc801ceGFF8b1119f2vfpp5+O3/3udzFy5Mh485vf3GmfF57i//Wvf/2i19atWxe33XZbLFiwIJ5++unYtGlTRPw1jzUi4pFHHtmh93LEEUfEN77xjZg7d25UKpU48cQTY8yYMTt0zYjyEluvfvWrd/jaLzj++ONj1KhRLzp+wAEHRESU5rfOmjUrdtttt7rPu/XWWyMi4rTTTuv0elOmTIl99tkn/vjHP8bixYtj3333rf9NAIOCIBboNy666KL49re/Hd/5znfiIx/5SLzsZS/rtN9jjz0WlUolNmzYUDNj2JlVq1bVfH3zzTfHWWed1WXubVtbW/cHn3jXu94Vd955Z3znO9+Jt73tbdHc3BwHHnhgvPrVr463v/3t8brXvW67rtsXJbbK6s2+MMP6/PPP98h5f/7znyMi4jWvec02x7Rq1SpBLPAiglig39htt93iQx/6UFxyySVx/vnnV2frOmpvb4+IiDFjxsTb3va2uq+/fPnyOO2002LDhg3xsY99LE4//fSYOXNmjBkzJoYMGRJ33HFHnHTSSTu8fD1kyJD49re/HRdccEHceuut8atf/Sp+9atfxVVXXRVXXXVVvPnNb44f/vCH0dzcvEP32R4vfHZl0mX97ujueS+M4+1vf3uMHj26y74TJ07crjEBA5sgFuhXPv7xj8c111wTP/nJT+Kee+7ptM+0adMi4q/bsX7zm9+sO4C6+eabY8OGDfE3f/M31YoIqcWLF2//wDtx4IEHxoEHHhgf/ehHo1KpxM9//vN4xzveETfffHNcf/31cdZZZ/Xo/SIihg8fHhERa9eu7fT1evKN+8K0adNi8eLF8fGPfzxmzZrV6OEAGfJgF9CvjB8/Pi644IKIiPjYxz7WaZ/dd989Xvayl8XatWvj9ttvr/vaq1evjoiIGTNmvOi1SqUS3/3ud7djxPVpamqK448/Pt7xjndERMTChQt75T5TpkyJiIiHH374Ra8999xz8Ytf/KJX7ttdb3jDGyIierQ2LzC4CGKBfuecc86J6dOnx29/+9u49957O+3zQq3Vs846K26++eYXvV6pVOK3v/1t3HHHHdVjLzxk9P3vf7/6EFdExNatW+NTn/pUpw+BbY/rr78+7r///hcdX7t2bXUTgs4C6Z5wwgknRETE17/+9ZqHqdavXx/vfe97Y9myZb1y3+766Ec/Gi95yUviiiuuiC9+8YvVh+tSjz32WHz7299uwOiAHAhigX6npaWlulFB2Va0b37zm+MrX/lKrF69Ot7ylrfEPvvsE29605vi9NNPjxNPPDEmT54cRx11VPz85z+vOefwww+Pxx9/PPbdd99405veFKeddlrstddecdlll8XHP/7xHhn/TTfdFLNmzYopU6bE7Nmz453vfGfMnj07pk2bFgsXLoyDDjoozj777B65V0d/93d/F7NmzYqlS5fGS1/60njTm94Ub3zjG2OPPfaI+fPnx7vf/e5euW93TZ06NX784x/HhAkT4iMf+Uh1N7N3vvOd8eY3vzn23nvv2HPPPeNr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qSOKew9Lqha0JJsYPDeq9t5pCkFanWD6bcXY1+0xOulfpCMsS8aaVkwYtaroM2xd8R7SzQ0iaqsTpDbtU6QWDJmfpG0s76x3+SYIO7rZgZQDgN7X7ZnY0aNHV/Ngd9ttt3j00Uerrz399NM9NzIAACjR7ZnYo446Kv793/89DjjggHjjG98Y5513Xjz44INx0003xVFHHdUbYwSAAWdHUwpUOGCw63YQe8UVV8S6desiIuLiiy+OdevWxQ033BD77LOPygRQh7LUgrKNEsqOR9SmBIxekGyQMLZYxi9LIdg0ubh3uoyfeubQStFnWfnCzS4LiqX/shSCESuL/INpC4o8hTRVYNz9xWYOTR02OKiRVBhIzx8y/4Hyc17on37+2+z94vSPetIDpBAA9L5uB7F77rlntT169Oi4+uqre3RAANAfmfmE/qXbObF77rlnPPPMMy86/uyzz9YEuAAA0Fu6HcS2trbG1q1bX3R848aNsXx5ySPAAADQg+pOJ/i3f/u3avunP/1pjB8/vvr11q1b46677oqZM2f26OAgNzuSC1l2brrbVNmuXl0p2x1r6YlFe7dfFzmtaWmrvb+9ufS6z08uduBavV/xq2T3u5Oc06QU1orXFWW1Jv9La9Enyd+NpMxYOtZ0N7KI2nzZyn0PJtfqvLRVWr4sSkqflZHfOrBICYCBo+4g9pRTTomIiKampjjjjDNqXhs2bFjMnDkzvvjFL/bo4FL/+3//77j11ltj4cKFMXz48Hj22Wd77V4AAPRvdQex7e1/fcp4jz32iN///vex884799qgOrNp06Y49dRT45WvfGX83//7f/v03gAA9C/drk7w2GOPVdvPP/98jBgxoovePefiiy+OiIjrrruuT+4HZban5FKZes5NUwg69i/biSpKynI1J8vqe9yUHF9RPKyZluQavrK4TpoOEBGxvugWkxYUpbTSElsjVw2rttMyXu37zSzunaQcpPdOS3J1LLeVphrsyO5YdtYaPKQRwMDT7Qe72tvb4zOf+UxMmTIlxowZE3/+858jIuLCCy80QwoAQJ/odhD72c9+Nq677rr4/Oc/H8OHFzu5H3TQQfHP//zPPTq4HbVx48Zoa2ur+QMAQP66nU5w/fXXxzXXXBPHH398vO9976seP+SQQ2LRokXdutbcuXPjsssu67LPww8/HPvvv393hxkR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", "text/plain": [ "Figure(PyObject
)" ] @@ -282,26 +301,203 @@ "axis[2,1].set_ylabel(\"theta\");" ] }, + { + "cell_type": "markdown", + "id": "54ded796", + "metadata": {}, + "source": [ + "## Sampling w AbstractMCMC" + ] + }, { "cell_type": "code", - "execution_count": null, - "id": "74b110a2", + "execution_count": 15, + "id": "9da0a548", "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "data": { + "text/plain": [ + "AdvancedHMC.HMCSamplerSettings(0.1, 0.95)" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "initial_ϵ=0.1 \n", + "TAP=0.95\n", + "ss = AdvancedHMC.HMCSamplerSettings(initial_ϵ, TAP)" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "b1241d99", + "metadata": {}, + "outputs": [ + { + "ename": "LoadError", + "evalue": "MethodError: no method matching sample(::Model{typeof(funnel), (), (), (), Tuple{}, Tuple{}, ConditionContext{NamedTuple{(:x,), Tuple{Vector{Float64}}}, DefaultContext}}, ::AdvancedHMC.HMCSamplerSettings, ::Int64)\n\n\u001b[0mClosest candidates are:\n\u001b[0m sample(::Model, \u001b[91m::Number\u001b[39m, ::Number, \u001b[91m::Int64\u001b[39m, \u001b[91m::Int64\u001b[39m; initial_θ, progress, kwargs...)\n\u001b[0m\u001b[90m @\u001b[39m \u001b[33mAdvancedHMC\u001b[39m \u001b[90m~/Cambdrige/AdvancedHMC.jl/src/\u001b[39m\u001b[90m\u001b[4msampler.jl:177\u001b[24m\u001b[39m\n\u001b[0m sample(\u001b[91m::AbstractMCMC.LogDensityModel\u001b[39m, ::AdvancedHMC.HMCSamplerSettings, ::Integer; progress, verbose, callback, kwargs...)\n\u001b[0m\u001b[90m @\u001b[39m \u001b[33mAdvancedHMC\u001b[39m \u001b[90m~/Cambdrige/AdvancedHMC.jl/src/\u001b[39m\u001b[90m\u001b[4mabstractmcmc.jl:64\u001b[24m\u001b[39m\n\u001b[0m sample(::Any, \u001b[91m::AbstractMCMC.AbstractSampler\u001b[39m, ::Any; kwargs...)\n\u001b[0m\u001b[90m @\u001b[39m \u001b[36mAbstractMCMC\u001b[39m \u001b[90m~/.julia/packages/AbstractMCMC/bE6VB/src/\u001b[39m\u001b[90m\u001b[4msample.jl:15\u001b[24m\u001b[39m\n\u001b[0m ...\n", + "output_type": "error", + "traceback": [ + "MethodError: no method matching sample(::Model{typeof(funnel), (), (), (), Tuple{}, Tuple{}, ConditionContext{NamedTuple{(:x,), Tuple{Vector{Float64}}}, DefaultContext}}, ::AdvancedHMC.HMCSamplerSettings, ::Int64)\n\n\u001b[0mClosest candidates are:\n\u001b[0m sample(::Model, \u001b[91m::Number\u001b[39m, ::Number, \u001b[91m::Int64\u001b[39m, \u001b[91m::Int64\u001b[39m; initial_θ, progress, kwargs...)\n\u001b[0m\u001b[90m @\u001b[39m \u001b[33mAdvancedHMC\u001b[39m \u001b[90m~/Cambdrige/AdvancedHMC.jl/src/\u001b[39m\u001b[90m\u001b[4msampler.jl:177\u001b[24m\u001b[39m\n\u001b[0m sample(\u001b[91m::AbstractMCMC.LogDensityModel\u001b[39m, ::AdvancedHMC.HMCSamplerSettings, ::Integer; progress, verbose, callback, kwargs...)\n\u001b[0m\u001b[90m @\u001b[39m \u001b[33mAdvancedHMC\u001b[39m \u001b[90m~/Cambdrige/AdvancedHMC.jl/src/\u001b[39m\u001b[90m\u001b[4mabstractmcmc.jl:64\u001b[24m\u001b[39m\n\u001b[0m sample(::Any, \u001b[91m::AbstractMCMC.AbstractSampler\u001b[39m, ::Any; kwargs...)\n\u001b[0m\u001b[90m @\u001b[39m \u001b[36mAbstractMCMC\u001b[39m \u001b[90m~/.julia/packages/AbstractMCMC/bE6VB/src/\u001b[39m\u001b[90m\u001b[4msample.jl:15\u001b[24m\u001b[39m\n\u001b[0m ...\n", + "", + "Stacktrace:", + " [1] top-level scope", + " @ In[16]:1" + ] + } + ], + "source": [ + "sample(funnel_model, ss, 1000)" + ] + }, + { + "cell_type": "markdown", + "id": "b3a670ea", + "metadata": {}, + "source": [ + "## Sampling w Turing" + ] }, { "cell_type": "code", - "execution_count": null, - "id": "749a43cf", + "execution_count": 12, + "id": "f51cebea", "metadata": {}, "outputs": [], - "source": [] + "source": [ + "using Turing" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "28d1259b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Turing.Inference.NUTS{Turing.Essential.ForwardDiffAD{0}, (), DiagEuclideanMetric}(300, 0.95, 10, 1000.0, 0.0)" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "TAP = 0.95\n", + "nadapts = 300\n", + "spl = Turing.NUTS(nadapts, TAP)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "74b110a2", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[36m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mFound initial step size\n", + "\u001b[36m\u001b[1m└ \u001b[22m\u001b[39m ϵ = 1.6\n", + "\u001b[32mSampling: 100%|█████████████████████████████████████████| Time: 0:00:11\u001b[39m\n" + ] + }, + { + "data": { + "text/plain": [ + "Chains MCMC chain (50000×33×1 Array{Float64, 3}):\n", + "\n", + "Iterations = 301:1:50300\n", + "Number of chains = 1\n", + "Samples per chain = 50000\n", + "Wall duration = 14.4 seconds\n", + "Compute duration = 14.4 seconds\n", + "parameters = θ, z[1], z[2], z[3], z[4], z[5], z[6], z[7], z[8], z[9], z[10], z[11], z[12], z[13], z[14], z[15], z[16], z[17], z[18], z[19], z[20]\n", + "internals = lp, n_steps, is_accept, acceptance_rate, log_density, hamiltonian_energy, hamiltonian_energy_error, max_hamiltonian_energy_error, tree_depth, numerical_error, step_size, nom_step_size\n", + "\n", + "Summary Statistics\n", + " \u001b[1m parameters \u001b[0m \u001b[1m mean \u001b[0m \u001b[1m std \u001b[0m \u001b[1m mcse \u001b[0m \u001b[1m ess_bulk \u001b[0m \u001b[1m ess_tail \u001b[0m \u001b[1m rhat\u001b[0m ⋯\n", + " \u001b[90m Symbol \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64\u001b[0m ⋯\n", + "\n", + " θ -0.0346 0.7783 0.0140 5113.3278 2765.1043 1.0000 ⋯\n", + " z[1] 0.6049 0.7333 0.0040 34483.1850 32515.8682 1.0000 ⋯\n", + " z[2] 0.6175 0.7356 0.0035 46810.9217 33380.6290 1.0001 ⋯\n", + " z[3] -0.4257 0.7190 0.0031 55075.7998 33635.4185 1.0002 ⋯\n", + " z[4] 0.0777 0.7064 0.0026 76726.4894 34015.4579 1.0000 ⋯\n", + " z[5] 0.9556 0.7708 0.0052 21455.3400 34336.0032 1.0000 ⋯\n", + " z[6] -1.6946 0.8897 0.0085 10288.6049 6740.9566 1.0000 ⋯\n", + " z[7] -0.0492 0.7053 0.0024 90065.7491 33968.6494 1.0000 ⋯\n", + " z[8] 0.3336 0.7125 0.0028 64338.6341 36057.2177 1.0000 ⋯\n", + " z[9] -1.6344 0.8853 0.0086 9933.6900 6976.3190 1.0000 ⋯\n", + " z[10] -0.8349 0.7525 0.0045 28034.3085 36239.1521 1.0001 ⋯\n", + " z[11] 0.9764 0.7712 0.0052 21404.7104 34294.6253 1.0000 ⋯\n", + " z[12] 0.0579 0.7047 0.0030 55885.5225 36082.7391 1.0000 ⋯\n", + " z[13] 0.0536 0.7075 0.0024 87613.6817 34162.3752 1.0000 ⋯\n", + " z[14] -0.2670 0.7123 0.0025 84246.0742 32599.5398 1.0000 ⋯\n", + " z[15] -0.0622 0.7087 0.0025 79254.5968 34161.8250 1.0000 ⋯\n", + " z[16] -0.6443 0.7408 0.0037 41481.0092 34608.4218 1.0000 ⋯\n", + " z[17] 0.8464 0.7503 0.0044 29083.6946 32152.7913 1.0000 ⋯\n", + " z[18] -0.2197 0.7054 0.0028 64204.4335 37650.2729 1.0000 ⋯\n", + " z[19] 0.5349 0.7305 0.0031 54514.3933 36513.6931 1.0000 ⋯\n", + " z[20] 0.6083 0.7388 0.0035 44836.7371 32363.3741 1.0000 ⋯\n", + "\u001b[36m 1 column omitted\u001b[0m\n", + "\n", + "Quantiles\n", + " \u001b[1m parameters \u001b[0m \u001b[1m 2.5% \u001b[0m \u001b[1m 25.0% \u001b[0m \u001b[1m 50.0% \u001b[0m \u001b[1m 75.0% \u001b[0m \u001b[1m 97.5% \u001b[0m\n", + " \u001b[90m Symbol \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m\n", + "\n", + " θ -1.9581 -0.4004 0.0717 0.4754 1.1565\n", + " z[1] -0.7505 0.1010 0.5644 1.0737 2.1391\n", + " z[2] -0.7369 0.1064 0.5822 1.0924 2.1487\n", + " z[3] -1.9174 -0.8878 -0.3957 0.0595 0.9363\n", + " z[4] -1.3121 -0.3787 0.0680 0.5257 1.5049\n", + " z[5] -0.4121 0.4078 0.9070 1.4560 2.5761\n", + " z[6] -3.5234 -2.2873 -1.6654 -1.0643 -0.0794\n", + " z[7] -1.4635 -0.5021 -0.0467 0.4054 1.3581\n", + " z[8] -1.0256 -0.1393 0.3091 0.7890 1.7931\n", + " z[9] -3.4679 -2.2201 -1.6043 -0.9980 -0.0491\n", + " z[10] -2.3953 -1.3280 -0.7959 -0.3032 0.5328\n", + " z[11] -0.3880 0.4257 0.9307 1.4796 2.6044\n", + " z[12] -1.3251 -0.3999 0.0514 0.5073 1.4832\n", + " z[13] -1.3527 -0.4039 0.0501 0.5114 1.4794\n", + " z[14] -1.7365 -0.7225 -0.2442 0.1995 1.1027\n", + " z[15] -1.4816 -0.5141 -0.0556 0.3900 1.3474\n", + " z[16] -2.1837 -1.1270 -0.6058 -0.1313 0.7143\n", + " z[17] -0.5098 0.3139 0.8116 1.3268 2.4238\n", + " z[18] -1.6461 -0.6757 -0.1991 0.2403 1.1489\n", + " z[19] -0.8344 0.0413 0.4998 1.0036 2.0435\n", + " z[20] -0.7632 0.0979 0.5707 1.0851 2.1561\n" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: both Turing and AdvancedHMC export \"HMCDA\"; uses of it in module Main must be qualified\n" + ] + } + ], + "source": [ + "Turing.sample(funnel_model, spl, 50_000, progress=true; save_state=true)" + ] } ], "metadata": { "kernelspec": { - "display_name": "Julia 1.9.0-rc1", + "display_name": "Julia 1.9.0", "language": "julia", "name": "julia-1.9" }, From 303844100f9d244d39f55cc19c8e6365aed5205d Mon Sep 17 00:00:00 2001 From: jaimerz Date: Wed, 31 May 2023 13:11:55 +0100 Subject: [PATCH 08/27] no glue code abstract mcmc --- Lab.ipynb | 299 +++++--------------------------------------- src/abstractmcmc.jl | 20 ++- 2 files changed, 47 insertions(+), 272 deletions(-) diff --git a/Lab.ipynb b/Lab.ipynb index 88a6ce0f..a31c2065 100644 --- a/Lab.ipynb +++ b/Lab.ipynb @@ -10,18 +10,10 @@ }, { "cell_type": "code", - "execution_count": 1, - "id": "e71c6645", + "execution_count": null, + "id": "896323ee", "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32m\u001b[1m Activating\u001b[22m\u001b[39m project at `~/Cambdrige`\n" - ] - } - ], + "outputs": [], "source": [ "using Pkg\n", "Pkg.activate(\"..\")" @@ -29,19 +21,10 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "id": "baed58e3", "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling AdvancedHMC [0bf59076-c3b1-5ca4-86bd-e02cd72cde3d]\n", - "\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling Turing [fce5fe82-541a-59a6-adf8-730c64b5f9a0]\n" - ] - } - ], + "outputs": [], "source": [ "# The statistical inference frame-work we will use\n", "using LogDensityProblems\n", @@ -70,21 +53,10 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "id": "a7d6f81c", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "funnel (generic function with 2 methods)" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# Just a simple Neal Funnel\n", "d = 21\n", @@ -97,21 +69,10 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "id": "5f408f2b", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Model{typeof(funnel), (), (), (), Tuple{}, Tuple{}, ConditionContext{NamedTuple{(:x,), Tuple{Vector{Float64}}}, DefaultContext}}(funnel, NamedTuple(), NamedTuple(), ConditionContext((x = [1.2142074831535152, 1.23371919965455, -0.8480146960461767, 0.1600994648479841, 1.9180385508479283, -3.401523464506408, -0.0957684186471088, 0.6734622629464286, -3.2749467689509633, -1.6760091758453226, 1.9567202902549736, 0.1136169088905351, 0.11117896909388916, -0.5373922347882832, -0.12436857036298687, -1.2901071061088532, 1.702584517514787, -0.44460133117954226, 1.0818722439221686, 1.2208011493237483],), DefaultContext()))" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "Random.seed!(1)\n", "(;x) = rand(funnel() | (θ=0,))\n", @@ -128,21 +89,10 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "id": "be8a75dd", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Sampler" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "struct Sampler\n", " metric\n", @@ -167,26 +117,10 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "id": "baaf795f", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Sampler(DiagEuclideanMetric([1.0, 1.0, 1.0, 1.0, 1.0, 1 ...]), Leapfrog(ϵ=0.1), StanHMCAdaptor(\n", - " pc=WelfordVar,\n", - " ssa=NesterovDualAveraging(γ=0.05, t_0=10.0, κ=0.75, δ=0.95, state.ϵ=0.1),\n", - " init_buffer=75, term_buffer=50, window_size=25,\n", - " state=window(0, 0), window_splits()\n", - "), HMCKernel{AdvancedHMC.FullMomentumRefreshment, Trajectory{MultinomialTS, Leapfrog{Float64}, GeneralisedNoUTurn{Float64}}}(AdvancedHMC.FullMomentumRefreshment(), Trajectory{MultinomialTS}(integrator=Leapfrog(ϵ=0.1), tc=GeneralisedNoUTurn{Float64}(10, 1000.0))))" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "initial_θ = randn(21)\n", "initial_ϵ = 0.1 #find_good_stepsize(hamiltonian, initial_θ)\n", @@ -203,43 +137,10 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "id": "c516fd54", "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mProgressMeter by default refresh meters with additional information in IJulia via `IJulia.clear_output`, which clears all outputs in the cell. \n", - "\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m - To prevent this behaviour, do `ProgressMeter.ijulia_behavior(:append)`. \n", - "\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m - To disable this warning message, do `ProgressMeter.ijulia_behavior(:clear)`.\n", - "\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ ProgressMeter ~/.julia/packages/ProgressMeter/sN2xr/src/ProgressMeter.jl:618\u001b[39m\n", - "\u001b[32mSampling 100%|███████████████████████████████| Time: 0:00:04\u001b[39m\n", - "\u001b[34m iterations: 10000\u001b[39m\n", - "\u001b[34m ratio_divergent_transitions: 0.0\u001b[39m\n", - "\u001b[34m ratio_divergent_transitions_during_adaption: 0.0\u001b[39m\n", - "\u001b[34m n_steps: 31\u001b[39m\n", - "\u001b[34m is_accept: true\u001b[39m\n", - "\u001b[34m acceptance_rate: 0.9977556019563564\u001b[39m\n", - "\u001b[34m log_density: -55.59669800049129\u001b[39m\n", - "\u001b[34m hamiltonian_energy: 76.99245786344844\u001b[39m\n", - "\u001b[34m hamiltonian_energy_error: -0.037907257288452456\u001b[39m\n", - "\u001b[34m max_hamiltonian_energy_error: -0.08384075689365034\u001b[39m\n", - "\u001b[34m tree_depth: 4\u001b[39m\n", - "\u001b[34m numerical_error: false\u001b[39m\n", - "\u001b[34m step_size: 0.11952907411701275\u001b[39m\n", - "\u001b[34m nom_step_size: 0.11952907411701275\u001b[39m\n", - "\u001b[34m is_adapt: false\u001b[39m\n", - "\u001b[34m mass_matrix: DiagEuclideanMetric([1.8273790343807308, 0.4706 ...])\u001b[39m\n", - "\u001b[36m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mFinished 10000 sampling steps for 1 chains in 4.519542573 (s)\n", - "\u001b[36m\u001b[1m│ \u001b[22m\u001b[39m h = Hamiltonian(metric=DiagEuclideanMetric([1.8273790343807308, 0.4706 ...]), kinetic=GaussianKinetic())\n", - "\u001b[36m\u001b[1m│ \u001b[22m\u001b[39m κ = HMCKernel{AdvancedHMC.FullMomentumRefreshment, Trajectory{MultinomialTS, Leapfrog{Float64}, GeneralisedNoUTurn{Float64}}}(AdvancedHMC.FullMomentumRefreshment(), Trajectory{MultinomialTS}(integrator=Leapfrog(ϵ=0.12), tc=GeneralisedNoUTurn{Float64}(10, 1000.0)))\n", - "\u001b[36m\u001b[1m│ \u001b[22m\u001b[39m EBFMI_est = 0.5110910368914205\n", - "\u001b[36m\u001b[1m└ \u001b[22m\u001b[39m average_acceptance_rate = 0.9774544772681191\n" - ] - } - ], + "outputs": [], "source": [ "n_samples, n_adapts = 10_000, 1_000\n", "samples, stats = sample(funnel_model, 0.1, 0.95, n_samples, n_adapts; initial_θ=initial_θ);" @@ -255,7 +156,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "id": "2a803eb8", "metadata": {}, "outputs": [], @@ -266,21 +167,10 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "id": "00f17868", "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAArEAAAL3CAYAAACd2x1cAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAABSGElEQVR4nO3deZhdVZko7q9SSSpzDCEQyMg8CAISAXEABAGNA91Kc69oA3qx9QcOHRwCigH1CijigArN7StIq7cRRW1AEEQDtuIAJC20BBOkOiEkEIikkhAy1fn9YXP2OkXtyqmkqk6tqvd9njzPqn3W3nudU5XKl7W+/a2mSqVSCQAAyMiQRg8AAAC6SxALAEB2BLEAAGRHEAsAQHYEsQAAZEcQCwBAdgSxAABkRxALAEB2BLEAAGRHEAs0xMyZM6OpqSmampri+9//fmm/E044IZqamuK6667ru8F10NraGk1NTTFz5swXvfbC++hNL3xOXf350Y9+1Ktj6C8uuuiiaGpqiosuuqjRQwEabGijBwDwiU98Ik455ZQYOtSvpK6cdNJJMXny5E5fmz59eh+PBqCx/IsBNNSoUaPiT3/6U/zzP/9zvO9972v0cPq1uXPnxrHHHtvoYQD0C9IJgIb60Ic+FBERn/70p+O5555r8GgAyIUgFmioN77xjXHMMcfEihUr4ktf+lK3z7///vvj9NNPj+nTp0dLS0vstNNOcdJJJ8VPfvKTTvv/8Y9/jHnz5sWrXvWqmDJlSgwfPjwmTpwYJ5xwQnzve9/b0bdTtWLFivjQhz4U++67b4wYMSJGjRoV06ZNi+OPPz4uv/zyHrtPR8cee2w0NTXF/PnzO329LKc0Pb5q1ao455xzYtq0aTF8+PCYNm1afOADH4hnn332Rde77rrroqmpKc4888xYv359nH/++bH33ntHS0tLTJ48Oc4444xYvnx56XifeOKJmDNnThxwwAExatSoGDt2bLziFa+Ir33ta7Fly5Yd+CSAgU4QCzTcZZddFhERn//85+OZZ56p+7yvfOUrccQRR8R3v/vdmDhxYrzlLW+Jl770pTF//vyYPXt2fPrTn37ROVdccUV8+tOfjtWrV8fBBx8cf/u3fxv77bdf/OIXv4jTTjst5syZs8PvZ+XKlTFr1qz46le/Ghs3boyTTz453vKWt8Qee+wRCxcujM9+9rM7fI/esmzZsnj5y18eP/jBD+KII46I17/+9bF27dr42te+FieeeGJs3ry50/PWrFkTRx99dFx99dVx4IEHxhve8IaoVCpx/fXXx6te9apYs2bNi86555574qCDDoovfelL8fzzz8frX//6eNWrXhWPPvpofOADH4jZs2eX3g8gKgANMGPGjEpEVH75y19WKpVK5W//9m8rEVH5x3/8x5p+xx9/fCUiKtdee23N8dtvv73S1NRU2XnnnSt33313zWt/+MMfKlOnTq1ERGX+/Pk1r82fP7/y6KOPvmg8ixYtqp7z29/+tua1xx57rBIRlRkzZtT13i6++OJKRFTe+973Vtrb22te27RpU+VnP/tZXdd5QURUIqLyi1/8Ypt9jznmmC77zps3rxIRlXnz5nV6PCIqZ555ZuX555+vvrZ06dLKlClTKhFR+e53v1tz3rXXXls976STTqqsWbOm+trq1asrhx56aCUiKp/73OdqzluxYkVl4sSJlaampso3vvGNytatW6uvPf3005XXve51lYioXHzxxXWNHxh8zMQC/cLnPve5GDp0aHzjG9+I//qv/9pm/3nz5kWlUomrr746Xvva19a8dvDBB8cVV1wRERFXXnllzWvHHHNM7Lnnni+63n777RcXXnhhRESXJb/q8eSTT0ZExMknn/yi8lvDhg2L448/fruue9xxx3VaXuvMM8/cofGmpk6dGl//+tejpaWleuyFdIKIiJ/97Gednjd69Oi49tprY9y4cdVjEyZMiLlz53Z63pe//OV45pln4pxzzon3v//9MWRI8c/RxIkT4/rrr49hw4bF1772tahUKj32/oCBQ3UCoF/Yb7/94t3vfndcc801ceGFF8b1119f2vfpp5+O3/3udzFy5Mh485vf3GmfF57i//Wvf/2i19atWxe33XZbLFiwIJ5++unYtGlTRPw1jzUi4pFHHtmh93LEEUfEN77xjZg7d25UKpU48cQTY8yYMTt0zYjyEluvfvWrd/jaLzj++ONj1KhRLzp+wAEHRESU5rfOmjUrdtttt7rPu/XWWyMi4rTTTuv0elOmTIl99tkn/vjHP8bixYtj3333rf9NAIOCIBboNy666KL49re/Hd/5znfiIx/5SLzsZS/rtN9jjz0WlUolNmzYUDNj2JlVq1bVfH3zzTfHWWed1WXubVtbW/cHn3jXu94Vd955Z3znO9+Jt73tbdHc3BwHHnhgvPrVr463v/3t8brXvW67rtsXJbbK6s2+MMP6/PPP98h5f/7znyMi4jWvec02x7Rq1SpBLPAiglig39htt93iQx/6UFxyySVx/vnnV2frOmpvb4+IiDFjxsTb3va2uq+/fPnyOO2002LDhg3xsY99LE4//fSYOXNmjBkzJoYMGRJ33HFHnHTSSTu8fD1kyJD49re/HRdccEHceuut8atf/Sp+9atfxVVXXRVXXXVVvPnNb44f/vCH0dzcvEP32R4vfHZl0mX97ujueS+M4+1vf3uMHj26y74TJ07crjEBA5sgFuhXPv7xj8c111wTP/nJT+Kee+7ptM+0adMi4q/bsX7zm9+sO4C6+eabY8OGDfE3f/M31YoIqcWLF2//wDtx4IEHxoEHHhgf/ehHo1KpxM9//vN4xzveETfffHNcf/31cdZZZ/Xo/SIihg8fHhERa9eu7fT1evKN+8K0adNi8eLF8fGPfzxmzZrV6OEAGfJgF9CvjB8/Pi644IKIiPjYxz7WaZ/dd989Xvayl8XatWvj9ttvr/vaq1evjoiIGTNmvOi1SqUS3/3ud7djxPVpamqK448/Pt7xjndERMTChQt75T5TpkyJiIiHH374Ra8999xz8Ytf/KJX7ttdb3jDGyIierQ2LzC4CGKBfuecc86J6dOnx29/+9u49957O+3zQq3Vs846K26++eYXvV6pVOK3v/1t3HHHHdVjLzxk9P3vf7/6EFdExNatW+NTn/pUpw+BbY/rr78+7r///hcdX7t2bXUTgs4C6Z5wwgknRETE17/+9ZqHqdavXx/vfe97Y9myZb1y3+766Ec/Gi95yUviiiuuiC9+8YvVh+tSjz32WHz7299uwOiAHAhigX6npaWlulFB2Va0b37zm+MrX/lKrF69Ot7ylrfEPvvsE29605vi9NNPjxNPPDEmT54cRx11VPz85z+vOefwww+Pxx9/PPbdd99405veFKeddlrstddecdlll8XHP/7xHhn/TTfdFLNmzYopU6bE7Nmz453vfGfMnj07pk2bFgsXLoyDDjoozj777B65V0d/93d/F7NmzYqlS5fGS1/60njTm94Ub3zjG2OPPfaI+fPnx7vf/e5euW93TZ06NX784x/HhAkT4iMf+Uh1N7N3vvOd8eY3vzn23nvv2HPPPeNrX/tao4cK9FOCWKBfete73hUHH3xwl30++MEPxoIFC+K9731vNDU1xV133RU/+tGP4tFHH43DDjssvvrVr8YHP/jBav+hQ4fG/Pnz44ILLogpU6bEXXfdFfPnz4/DDjss7r333jj55JN7ZOznnXdefPjDH46pU6fGAw88EDfeeGM88MADceCBB8aVV14Zv/nNb2Ls2LE9cq+Ohg0bFnfeeWece+65MXbs2LjjjjviD3/4Q/zN3/xNPPDAA9V84v7gta99bfznf/5nXHjhhTF16tT4/e9/HzfeeGMsXLgwdt1115g3b178n//zfxo9TKCfaqqoIg0AQGbMxAIAkB1BLAAA2RHEAgCQHUEsAADZEcQCAJAdQSwAANkRxAIAkB1BLAAA2RHEAgCQHUEsAADZEcQCAJAdQSwAANkRxAIAkB1BLAAA2RHEAgCQHUEsAADZEcQCAJAdQSwAANkRxAIAkB1BLAAA2RHEAgCQHUEsAADZEcQCAJAdQSwAANkRxAIAkB1BLAAA2RHEAgCQHUEsAADZEcQCAJAdQSwAANkRxAIAkB1BLAAA2RHEAgCQHUEsAADZEcQCAJAdQSwAANkRxAIAkB1BLAAA2RHEAgCQHUEsAADZEcQCAJAdQSwAANkRxAIAkB1BLAAA2RHEAgCQHUEsAADZEcQCAJAdQSwAANkRxAIAkB1BLAAA2RHEAgCQHUEsAADZEcQCAJAdQSwAANkRxAIAkB1BLAAA2RHEAgCQHUEsAADZEcQCAJAdQSwAANkRxAIAkB1BLAAA2Rna6AH0pfb29njiiSdi7Nix0dTU1OjhAOywSqUSa9eujd133z2GDDEvAQwegyqIfeKJJ2LatGmNHgZAj1u2bFlMnTq10cMA6DODKogdO3ZsRPz1l/24ceMaPBqAHdfW1hbTpk2r/n4DGCwGVRD7QgrBuHHjBLHAgCJFChhsJFABAJAdQSwAANkRxAIAkB1BLAAA2RHEAgCQHUEsAADZEcQCAJAdQSwAANkRxAIAkB1BLAAA2RHEAgCQnaGNHgDQf8yce2u13Xrp7AaOBAC6ZiYWAIDsCGIBAMiOIBYAgOwIYgEAyI4gFgCA7AhiAQDIjiAWAIDsCGIBAMiOIBYAgOwIYgEAyI4gFgCA7AhiAQDIjiAW2KaZc2+NmXNvbfQwAKBKEAsAQHaGNnoAQGOZYQUgR2ZiAQDIjplYGOBemGltvXT2dp0HAP2RmVgAALIjiAUAIDuCWAAAsiOIBQAgO4JYAACyI4gFACA7SmwBdUvLbnW3ZBcA9CQzsQAAZEcQCwBAdgSxAABkRxALAEB2BLEAAGRHEAsAQHYEsQAAZEcQCwBAdgSxAABkRxALAEB2bDsLg1C6fWxPXMMWtAD0NTOxAABkRxALAEB2BLEAAGRHEAsAQHY82AWDRE88zAUA/YWZWAAAsiOIBQAgO4JYAACyI4gFACA7glgAALIjiAUAIDuCWAAAsiOIBQAgO4JYAACyI4gFACA7glgAALIjiAUAIDuCWAAAsiOIBQAgO4JYAACyI4gFACA7glgAALIjiAUAIDuCWAAAsjO00QMABpaZc2+ttlsvnd3AkQAwkJmJBQAgO4JYAACyI4gFACA7glgAALIjiAUAIDuqEwA7LK1IAAB9wUwsAADZEcQCAJAd6QQwAFneB2CgMxMLAEB2BLEAAGRHEAsAQHYEsQAAZMeDXZCx9AGu1ktnN3AkANC3zMQCAJAdQSwAANkRxAIAkB1BLAAA2fFgFwwQdukCYDAxEwsAQHbMxEJmzLgCgJlYAAAyJIgFACA7glgAALIjiAUAIDuCWAAAsiOIBQAgO4JYoNfMnHurkmAA9ApBLAAA2RHEAgCQHUEsAADZEcQCAJAdQSwAANkRxAIAkB1BLAAA2RHEAgCQnaGNHgBQH5sGAEDBTCwAANkRxAIAkB1BLAAA2RHEAgCQHUEsAADZEcQCAJAdQSwAANlRJxbodWmN29ZLZzdwJAAMFGZiAQDIjiAWAIDsCGIBAMiOIBYAgOwIYgEAyI4gFgCA7AhiAQDIjjqx0I+l9VUBgIKZWAAAsiOIBQAgO4JYAACyI4gFACA7glgAALIjiAUAIDuCWAAAsiOIBQAgO4JYAACyY8cuoE+lu5C1Xjq7gSMBIGdmYgEAyI4gFgCA7AhiAQDIjiAWAIDsCGIBAMiOIBYAgOwIYgEAyI4gFgCA7AhiAQDIjiAWAIDsCGIBAMiOIBYAgOwMbfQAgIiZc2+ttlsvnd3AkQBAHszEAgCQHUEsAADZkU4A/UyaWgAAdM5MLAAA2RHEAgCQHUEsAADZEcQCAJAdQSwAANkRxAIAkB1BLAAA2RHEAgCQHZsdAA2TbuzQeunsBo4EgNyYiQUAIDuCWAAAsiOIBQAgO4JYAACyI4gFACA7glgAALIjiAUAIDuCWAAAsiOIBQAgO4JYAACyY9tZaJB0y1UAoHvMxAIAkB1BLAAA2RHEAgCQHUEsAADZEcQCAJAdQSwAANkRxAIAkB1BLAAA2RHEAgCQHUEsAADZEcQCAJAdQSwAANkRxAIAkB1BLAAA2RHEAgCQHUEsAADZEcQCAJAdQSwAANkRxAIAkB1BLAAA2RHEAgCQnaGNHgAMJjPn3troIQDAgGAmFgCA7AhiAQDIjiAWAIDsCGIBAMiOIBYAgOwIYgEAyI4SW0C/kJYfa710dgNHAkAOzMQCAJAdM7HQB2xyAAA9y0wsAADZEcQCAJAdQSwAANkRxAIAkB1BLAAA2RHEAgCQHSW2oJcoqwUAvcdMLAAA2TETC/Q7tqAFYFvMxAIAkB1BLAAA2RHEAgCQHUEsAADZEcQCAJAdQSwAANkRxAIAkB1BLAAA2RHEAgCQHUEsAADZEcQCAJAdQSwAANkZ2ugBwEAyc+6tjR4CAAwKZmIBAMiOIBYAgOwIYoF+bebcW6VpAPAiglgAALIjiAUAIDuCWAAAsiOIBQAgO4JYAACyI4gFACA7glgAALIjiAUAIDuCWAAAsiOIBQAgO4JYAACyI4gFACA7Qxs9AMjdzLm3NnoIADDomIkFACA7glgAALIjiAUAIDtyYoEspLnHrZfObuBIAOgPzMQCAJAdQSwAANkRxAIAkB1BLAAA2RHEAgCQHUEsAADZEcQCAJAdQSwAANkRxAIAkB1BLAAA2RHEAgCQHUEsAADZGdroAUCOZs69tdFDGNTSz7/10tkNHAkAjWImFgCA7JiJhW0w6wcA/Y+ZWAAAsiOIBQAgO4JYAACyIycWukFVAgDoH8zEAgCQHUEsAADZEcQCAJAdQSwAANkRxAIAkB1BLAAA2RHEAgCQHXVioRPqwQJA/2YmFgCA7AhiAQDIjnQCIGtp6kfrpbMbOBIA+pKZWAAAsiOIBQAgO4JYAACyI4gFACA7HuyC/6Y2LADkw0wsAADZMRPLoGb2FQDyZCYWAIDsmIkFBgwbHwAMHmZiAQDIjplYYNAwUwswcJiJBQAgO2ZiGXRUJBhcfL8BBiYzsQAAZMdMLDAgmYEFGNjMxAIAkB0zsQwaZuYAYOAwEwsAQHYEsQAAZEcQCwBAdgSxAABkx4NdDGge5gKAgUkQCwxK6X9wWi+d3cCRALA9BLFkSxACAIOXnFgAALIjiAUAIDvZpBNccsklcdNNN8WiRYti5MiRcfTRR8dll10W++23X6OHRh/oTuqAh7nYEdJUAPKQTRB79913xznnnBOveMUrYsuWLXHBBRfEiSeeGH/84x9j9OjRjR4ePWR7AwiBK72hs58rgS1A/5BNEHv77bfXfH3dddfFLrvsEvfff3+89rWvbdCoaAQBKz3NzxRAfrIJYjtas2ZNRETstNNODR4J27Kt2dWyAEJgQX9X9jNqthag92UZxLa3t8eHP/zheNWrXhUHHXRQab+NGzfGxo0bq1//5S9/iYiIxx9/PMaNG9fr48zVUZ+7q9r+zQXHb7PPtvpuaXu62p76/33rRX3T16G/e+FnuCuPP/54H4zkr5599tmIiFi9enWf3ROgN1UqlVi7dm3svvvuMWRIeQ2CpkqlUunDcfWI97///XHbbbfFv//7v8fUqVNL+1100UVx8cUX9+HIAADoCcuWLesyzssuiD333HPjxz/+cdxzzz2xxx57dNm3s5nYmTNnxqvjjTE0hvX2UAF63YZYH7+Nn8WyZcusMAEDQltbW0ybNi2effbZGD9+fGm/bNIJKpVKfOADH4gf/vCHMX/+/G0GsBERLS0t0dLS8qLjQ2NYDG0SxAL5G1YZHhER48aNE8QCA0pTU1OXr2cTxJ5zzjnx3e9+N3784x/H2LFjY+XKlRERMX78+Bg5cmSDR0fOmseOrba3rl273X3oPennH+F7AEBGO3ZdddVVsWbNmjj22GNjt912q/654YYbGj00AAD6WDYzsZml7gIA0IuyCWKht9SzNJ326eulbakMg/d9A1Aum3QCAAB4gSAWAIDsSCeAbqp3abun0gC6SmWop18995ayAEBuzMQCAJAdQSwAANmRTgAldnSJvTeW5eu9Zn9JCZCmAEBvMRMLAEB2BLEAAGRHOgEDTm9UBegt/WW5fUfvXfY+yq7bX943APkyEwsAQHYEsQADwEHzftroIQD0KekEDAi9Udy/3muWbUBQzzj6y1J6V5sovKCrsXb3ffTk+5aaADA4mYkFGAAeuvikRg8BoE8JYgEAyI50AgaE3ljO3p6NBZpmHVxtNz/S2q0x1XPvjsv+ab+yZfUdWW7fnuX53hhHV6QQAAxOgliAAeCgeT+NIS2jIiKi9dLZDR4NQO+TTgAAQHbMxDKgDZ2ye7W9ZfkT1XZPVico092l9HoqBNSru9fqyQoNZf0s+wPQkwSxAAOENAJgMJFOAABAdszEMqClKQT12J4l/Zql9Pse7F7/kiX2sjSIjv13JAWhnioC9ZIqAEBfMxMLMEDMnHtro4cA0GcEsQAAZEcQCwBAduTEko2e3PFpR8pAdZUzWvZaPddtGlecW285sB35HNJzh+6/T7VdWb5yh67f3e9TT35fd+TzHyg6phSoWAAMVGZiAQDIjplYgAGss4e9zM4CA4Egln6hnmXgepeEd2R5uuzcspJXHc9JpekBUVLCKu1Taet+mauya5UaO7ra3LJocTK+9dVm+34zi+s/0lp6qbKxd3ensp7cMW0wpQ0ADHbSCQAAyI4gFgCA7EgnoF/oyafYdySFoOx4WbWAiPJl9XrSA9LrlqUspMeHdkgZqOlXMo6a8SWVB5pmHVxcJ9lprGm3iUV7yuROz+14j1Q9n2c9KQd9URkBgHyZiQUAIDuCWAAAsiOdgB7T20Xuu+rT3SL36RJ9qmwZP7pY5k6X8WsqBCSVAGrGNGZEtV329H+6+UCq45J+2m/93hOq7bbpxV/tyf+SpAok6QHN654vxpSkFgxJx9RFxYOy6g01qQzJ/dIKCGWpD2U6fn/rSUfYnkoTAOTDTCwAANkRxAIAkB3pBPSY7j4NviNPj9e7vFymrDh/qia1IF3eT5bFO16rdoODpF+SWtC84pni3PRCJRsRpMvf6UYEERFbxwyrtkfd/XC1PezwYrw1mxckKQSbJhdjHb44SVMY13lVhrSaQUSHVIg0dSKt0NAh/aE67jrSPGru3TGtoSS9o54UFSkEAAODmVgAALJjJhZgkJk599YeuU7rpbN75DoA20MQOwgNhILw9Y47fa9lmxKkqQI1lQOSpfc0NaDj0/Q1Y0na7ce+vNquWa5Plt6bSioY1CzdJ+kHHW0eU/wVHp5UAkjvtzXZvCCtYDBi5YZqe9M+xbnD7k9SGdI0ig7j2JqmKZSMsawqQJSlf6RpF2O7V8Gg4/26ayD8vQAYTLJKJ7jnnnvizW9+c+y+++7R1NQUP/rRjxo9JIBBq6dmdAG2R1ZB7Pr16+OQQw6Jr3/9640eCgAADZRVOsEb3vCGeMMb3tDoYWSvt5ZKu7vhQD3X2Z6xlp3TnLTTJ/Yr9xWbAdQsYdd5v5pl8mQ5fFPSp6aCQXI8XcZPUwNSI6JIB3jqiNrPeLefryrukVQCqNnUIF3qnzy103uUpSU8fdTO1fbOv6k9p2azhCRlIf2ch6abHSTWn3pUtT3+10uLF5K0jS43jlhU8j3egZ+d7lY5AKCxsgpiu2vjxo2xcePG6tdtbW0NHA3AwNPIlAIPlsHgllU6QXddcsklMX78+OqfadOmNXpIAAD0gAE9E3v++efHnDlzql+3tbUJZOu0PcupPZU2UJoO0MUmBvUUzy/dcCCtYFCy/F2zVN+x8H4iffq/5ZbfFeckT/mXVQhIpRUC2k5+abW9y+/KP+OOGyG84KnXTaq20/SDdByjFzxeba94a3Gd9H5rDi5SBiIixt3+n9V2c8nSf3qP1JjHirSBdPOBsu9xxyoO9aSulG2cUPZzV1bJIk2P6HgOAI0zoIPYlpaWaGlpafQwAOgmqQLAtgzodAIAAAamrGZi161bF0uWLKl+/dhjj8XChQtjp512iunTpzdwZANPXyyZ1pM2UE+aQVfSqgBbkyXldKm5Zgl6bXHvmg0Alne+WUFEbarB6CV/KV5INwpIpCkETxxT3G/c0vZqO60QMP7BIvWh45J+RDGWzaOLugfjWosHGreMLHqvSFILxi3dUlz36OmdHk8N3dBe83WaerFpcnmKRXWkScpC+hluTTd2eKS1OJ5+vztUIyhb+k83UUhTCOpRtmlFT1L1AKDnZBXE3nfffXHcccdVv34h3/WMM86I6667rkGjAqCn9WTVA6kJMDBlFcQee+yxUanUW70TAICBKqsglsFhR4vOl50zNF3eT4vqJ8vZW5PrDF+cpBAkS+cdl/THjBlR3DvZAKBsiX3DpOHV9k6PFEv3aZpBem7af+SqdAuFWkM3FH+dm9dtLs55pni4MU0zSK9bk4pw+8PV9p8+U1RGaH6uNoV+7wXFZzg8Ob41+TzSzzBNzyiT3iFN+UjTQjpKX6upRlGiu2kGPUkKAUDPEcQCMKD15oYMUhWgcVQnAAAgO2Zi6VPdTQ+oaxODqF0iLit4XyPd+CBJAdiyqNhkoGYThKR/Wqg/ImLrmGGdXmvI/Aeq7VX/39HVdvr0/4ad01L6RRmBLSOL/1+mS/3PTRoRqWHPFTniw9YX7aVvKMY+oihuEJvHFH/l0/exbo/i/T3ztoOq7VHLinunqQ8RtRUN0goK6ecRuxWpF8NXbvv7venwIuWjJp2jg/R73H7sy6vt9DOvZ1ODeq4PXdneWV4zuLDjzMQCAJAdQSwAANmRTsA29WSB9u6eX3bvjk+Yp2kDNakFyXL2kJJC+mnVgqaSwvtpmkHHFIWn3jqz2h6XLNdvOOqV1fYuvyvuly7dj3y6qIeQphDUViEonv1PqwtERDxzYJFesHlUsfQ//bbOP+d0c4XYr/ONFjZM7DyFIK2eEBGx5J3pRgs7l47xBev3nlBtD1tXXLdtZlE9YcJD66rt9HuXpiVERDQl7WH3F9+bpvR7k6aMLC8O17PJhk0J6G3dSUOQegCdMxMLAEB2BLEAAGRHOgHb1FvLqfUs2da78UGaQpD2a0qqBaw/5oBqe9TdRUH/mjGV9B+95C+d9o+orRCQSpf306X3cX8q/u84alXRf+iGZEk/2Yhg9f7J/zX3r61OMHZZce9n903ut29xv4kLi+PrXlYs9Y/5Q7GM/9yk4h5Dk6yBx08ojo/7U+1T/ZN/1Z58VYwjrUKw5O8nVdt73FQcTysY7Hznf1Xb6YYI6XUqy2srFWxOqhhU0tSQccUY0xSQ7lYkSFNGmrvoB32hp+rcSktgoDETCwBAdgSxAABkRzoBAAwCO5KWIBWB/kgQS8N0N7ewKcl3jA7nluU8prmUo9cWO1R1nsUaEUmfEStHbLNPRMSw9UX5p7R01PMTi79ek39V9G8rNrqqyXcd+lzRTktbbUqqSzU/V7t4suqookTXKw76c7W98J59q+3No4r+O00sSlitflnyHpYX+bGTFhS5rmnZry3FhmIRUbtL19NHFSW2ls3uPA/2+ckdLvDf2l4/o9ouy4/dcHBtia3RN/6m2k5LpJXlwZblVjdNKe6RntuxhBsA/Y90AgAAsmMmFgDoUk9VSIiQmkDPEcTSp8qW/etJLSgro9Xx/NJl5KR/uoycphy07zez2k6Xv0ckFZ62Tq699/hfL622l5xTnL/br7dEZ3Z6pL3T40tP3Zp8VSzvv2TvYtn+ud/WLqu3LC7+Cj+8uEghmH5/USps+WuKtIjnHx9fbU/6TfGJPHNoMaan/+65anvTMyM67R8RseJ1RdpA277F+aOWFSW90h3C0hSJmh27pnf+a6hsJ6+IiOYkhSBNZdg5TRlpq6M826LO+6QlvNIdwV50fh3s/gXQOwSxAECf6clZ3d5itjgPcmIBAMiOmVj6VNlyaj1LrtuzLJvuvJQuL6dPojfNOrjaHvJIa7U9bEyxpJzuMJXuphURMXxlsTvW9DuKZfzNY4q/Xht2Lpbi0528UiOWFP3HLS2W559IUgDGPFdzSm2/N22utp+bVoyxOT1nZJGysHlUcb/hzxRjGrpsTLU9JKlsMPLp2vSItYel5yc7eyVjSnchS6WpAuOWFtddc3RRuqFjCkGZsn5llQfKUlrS6hdD5j9QvFDHbl8dr5v+fNa76xwA3SOIBQBI7GjKg3SEviGdAACA7JiJpV/Y0SXXeioSpMfTFILKfQ9W2+3J8eEri/6bkooEaTWCiA5F+ZNUg+cmFf9HfD4pKjB2WbHVwrjWjdX20hOLSgBt04tzRywv2s9Nq12e33RUkSswZHmx9t8+oUgtGLWsWLqfesSqavuxlxXjHrG8+FVwwN/8qdp+8KdFxYPV+9X+utg0MUkbmFKM44kpxft4yR86/xUzalXnaQYjV20qrpNUNtj97tqfg61jins0ryiqN2zdbWKnx8vSSmp+vrbjZzC9bj0bJEgtAOg5glgAgB4kHaFvSCcAACA7ZmLpd+pZWu1qs4N6lnjTKgRNSf9Y9/yLO3c0dnTNl2naQfO6Ypl76IZis4Tdfvx4tZ1uiLBhYtF/66hiif25pCpA83PF/zXTZfuIiE3PFVUTzj/p36rtK//5lGp73T5JVYHbphbt5PhuxxTj+48Vxeexae8i3WHEkiItISJi3J+KcU046Nlq+7FnijSFsjSKNG0greLQvK5Ig9j1/uLcdOOJiIjRC4rxpt+P5vT7l36fkk0QUunPSipNOejYJ/2ZqmtDhRJSCAB2jCAWAKAXSAvoXdIJAADIjplY+p2yYvSprpZiy5Z402L2pUqWnYctX1l80eE66RPx6aYITyWbAQzdb2a13VI8NB+bjioK9TcvLjYZGJ2slq9PMgDGjCyW9yMiVifpBJfc/aZqe8So6NQfzruq2j7+j2+uth9bPqnaHj5qc6ftEc/UphM8+7IiHWHI88Vy//Rbij5bRhYpEqsOK/7PPPLp4rMZtq64Tvr5pakFHa0/rPhQRqzcUJyTVCRIq0bUfP8SaWpA2c9d+vPU0Y6kBKhOALBjBLEAAL1gR6sU9Lbc0x2kEwAAkB0zsTRMPWkDqXqXXMsqFaTKCt4P3X+fTvs3Je10mToiYvjiYqn6+WSZe5cFxTJ5umT+zIFFRYL4TZFCMLRYFY/njivSDDYnKQNr/5A87h8RL0nSDp6vfam49+rir3maQrDxn5LP5vhi2X/MxOLe40cUg/ofH/hZzXXTCgjtybhWHF30mbSg800N2qanv3qK9pakCEFanaBjakFaESKVpnak35eYMrmT3hHNy5Nzy34OOqaY9NDSvxQCoNHSmeIcZ2XNxAIAkB1BLAAA2ZFOQMP05HJq2ZPe9exnny4dbx0zovNOyfGaZeqImqL66ZPy6ZP2GyYNr7ZHrSqW2NOi/2mawZQJz1bbK/5QpChsmli7PP/skcUy+5g/FNUD0g0O9ti7GO+qZLODAz70p+J+yTUX3rNvcp0iteCLfzmh5t6v+x8PVNu33/+yanunqWuq7bZniuX9NLVg9f6d//853RChy+oEe0+ottNUjWH3L662Nx1efF/T9IMti4o+ZSktaZ+u1LOxBkAOuvsQWn9IPzATCwBAdgSxAABkRzoB/c72FIGvp19pMfukEH5zupFBkiZQo+x4B7VP0I/t9PimycXxdPOA9b8rlv23JikEh89aUnOPR58tluvXTizSCc4/pthx4IsPFWkA93z4C9X2Ubf+Y7WdphxsHZWkLCwvdk1ofq72/7zP7FZUVhizuPhVsjrGF51eVmzOMHRDMb6dFrUnx4v2hp2bozNpakZEhw0O1j1fbacpBGVKN8BIfoaaZh1cbVfue7D0WmWbJZT9PNrgAOhP+kNKwI4wEwsAQHYEsQAAZCe7dIKvf/3r8YUvfCFWrlwZhxxySFx55ZVxxBFHNHpY9KDeWopNzym7VrqYvTVZKk6fQk8L6kdEPD95ZHRmy8gi7WD8g89U22kKQVqRYEzyQHxaXSDdrOD3j86oucfutxTL7Bdfcm21ff5VZxX3S5b0f7yuWG5PqwikZhxUvO/9xj9VbR82ZmlNv3++7K3FF8lHMmJ5Md5RRxb3GLGqGGtaneD5KUU6waTfFNd56ojicxq3tPg8IiI2jynuMWzdsE6Pj15Q7ARRtuyfpobU/EwkKQQd01DKfvbq+ZmUQgD0JzlWJEhlNRN7ww03xJw5c2LevHnxwAMPxCGHHBInnXRSPPXUU9s+GQCAASOrIPaKK66Is88+O84666w48MAD4+qrr45Ro0bFN7/5zUYPDQCAPpRNOsGmTZvi/vvvj/PPP796bMiQIXHCCSfEvffe2+k5GzdujI0bi6XUtra2Xh8nvacnl2LruVaaQlBp6zzlICJi2JjJ1Xa6EcL6w4oKAyteN6naTjc7GPZcUdx/3NKtxb03dP5Xs21U7VP66bJ8mkKwLkkhGD6q2DQgrVRwyG7FEvvvH9qzGFOSvrDza5+rtq+69pSae29JUghGPlO8j1X7FO/j4JcUaRQP7l+cMLS4bEz6TfGJDltf6bTdUVrFIK1UkG52EFMmx7aklSlS6QYYZX06UnkAGOjK0g8alWaQzUzs008/HVu3bo1dd9215viuu+4aK1d2/o/MJZdcEuPHj6/+mTZtWl8MFQCAXpbNTOz2OP/882POnDnVr9va2gSyAAA9qFEztNkEsTvvvHM0NzfHk08+WXP8ySefjMmTO182bGlpiZaWlk5fY3Ar2/igZhk4aZelFkRENK+rrVbQmTRtYPPopuJ4yZL588klp/yyKOa/ZeSImn6bjlpXba97pnhtyF+KtIPxvxheba86blO1nVY6SFMIph5RPNU/saW4/u+PLFIUImrTFIaPLF4b9odi8A//cN9qO/1ls6XYQyHG3V+cu/TE4j285E/FZzNyVW11gmHriq+bVxQpC5FsXpBWgRgeySYIa9cX40grUCQpBFsWFWkJHX9WytIGtpb8vKT3AKDnZJNOMHz48Dj88MPjrrvuqh5rb2+Pu+66K175ylc2cGQAAPS1bGZiIyLmzJkTZ5xxRsyaNSuOOOKI+PKXvxzr16+Ps846a9snAwAMUP2thmtfyCqIPe2002LVqlXxqU99KlauXBmHHnpo3H777S962AsAgIEtqyA2IuLcc8+Nc889t9HDIHNlJZDSXMZUxzzYeoxe8pdqe8TKItezeV2R47rk74vSW5MWFOeOSNI8012o0lzSiIghfxhTnJMcH3VkcYGteycvPFP0jw1FmarT3zS/2v63pQdX24/ELtX2K/b6r5p7/8eK4rN6dsmEanvygqKE2NN/V9TS2pTk7O5+V5HJlObBTr+j+Gw2TCpyedPPoKPhya5bW8cU10rLnW0p2X0tVVZKq95yWfJgAfpWdkEsAAC1OlYIGAzpBdk82AUAAC8wEwuJdBk4LaXUNK7zklwREUMeaa2204JZzyU7do1eUJStSlMTdvt1sQyf7kKVapte/DV9fkqHUlNJaazRxS1idUnawPCJSbmupAzXHZ95bbU9/h+Kz+Cx5UW6w3/9pXa3sJfsXaRLrJ5QvPbEm4o+079VLO8/fkLxf+bnzyjOnfSt4jNY/pqi/y4LiveapmZERKzfuzgnLZkVSTrB1t2SHcKSc8uW+mu+x12kEJSV2Cr72bF7F0DvMBMLAEB2BLEAAGRHOgEDTtluXKl6lnjTPp0v9P9VugydLimPuvvh4lr7zez0WltGFv+P3DyqKbZlzOLav7Ibk5290l2+0hSCNOWgsrpIM2jfqViuX71/0af9Ly+ptneaWOzYtekPtTuTNS/cqdoePrtY0j9kt+IzWDy92LFr8q+KqgWrniuutWl6cc2hRTGDGLFyQ7Vdkz7Q4bU0bWDrmCKtYdj9xa5baZpHujNXTUWCpMpBV+kAduYC6B8EsQAA/cRgqCrQU6QTAACQHTOxDDjdfRq8bOm4LC2h4/XT9IB0eTmtQpBucJAuf6cm/rHzQv+pMY+tr/n6T/9rZLW9OTmebiaw8lXFMn7zc8XxEcuLv/5jlxUL7mujSDkYs6B42r8tWfaPiBjzzuXFeG8rKjEs3lCkELTtW9z72SOLEe51bXG/5nXF8ecnF+9n3R7F8v74B5PdH6I2vWDYuiItYsj8B6rtpiRtYMuiIrWgaczMon9yzbRPPSkpEeUpBCoSAJ0xy9qzzMQCAJAdQSwAANmRTsCgV7b0W09qQUdpCkF7WpEgSSdIdUwPeMH4xcVT8+uTTROaV9Quq49YXtxj+m3FvR/722K8e/youPfSE4v0gHTjhE0T0//PFkv9K44ufkW85E/pM/4Rj/+uGFdLcnxLkREQo5YV1x25sEiRGL7y6Wp7zcFFekX6efzloCKtoWN1go6bH1Ql6RypNM0jks8wfUc2KIC8WaoffMzEAgCQHUEsAADZkU7AoFTP0nG9KQTpZgdpOsGQR1qLeySpBTX3SNIM0mX1ccm56dJ5mloQETHll8X56ZP90+8oji9/TZFC0JJkI4x+vPjrn1YRmPqzor301KJywJp90voHEbG4WO4ft7Q4Z/PoYtOGdAOHtdOK9sini/SAoRuKc9OKBCOf3lptpxtHRESsP+aAajutTjAs3bwg+V6UbUiRfo/TPiGdAHqVpX96gplYAACyI4gFACA70gkYlOp5+rzeNIN6lqdrUgvS6yZPzY//dfFkfpp+kD6lP+GhdTX3Tl8b17qxGEeygcCUXxb9nzy8SC0Y9lzxbH5NCsGbiv5j/lDUHXhu2rCae8eo4pznJhX/H16fZDykFQ22jCzSCdKqB5MWFNdJqxOklRg6pmOkKRaVJIWgacrkotPa4lppmkeqLBVEpQLYcVIG6G1mYgEAyI4gFgCA7EgnYNDb0aXjshSCdHm6Zpl70bbvkVYt2PnOpKTA2NE1/ca1dlji7/RaRWrB0A1JOsH6SmfdY4+9i+X5jXcV6Q7PTevQ70ebqu00TWFrkmaw6qgkVWBx8etmj5uKz2DrmOI91FRrOHp6p+OLiBj/YOebR6QpBGmaRyr9fpX16YpUAwYbaQH0V2ZiAQDIjplYABgEzKgy0AhiYQelS8pDx3W+1Ny8vOg/NKlIUPrUfJ33bptZVA9IqxOk0iX6LSOL8aWbDGzYubk44dtTiuPTi5FMXFibfpBuojAiyXgYtaxY4Bm3ND2juF+aQrBh0vBqe/OYYhOEtunFdab9a2vNvbfuVmwMUUk+52ffdlC1/ZLrilSBej7zetMEpBAA9A/SCQAAyI6ZWAAYQKQNMFgIYhn0urs83FX/sqXqelIOhu6/T3FC8pR9asuixTVf75zeY0yxvJ9uFJA+5b/r/UVqQZqKsHlU5wkMOz2ypdPjERHP7lv8+ni+WN2PrSOTTkk6QbohwtANQ5N2kWYw6u6Hk3ZynbS6Q9SmSFSSNICJP3io2m5KUgjqqUJQ873o5rkA9D3pBAAAZMdMLAD0MUv+sOO2K4h9/PHH49/+7d9i6dKlsWnTpprXrrjiih4ZGDTa9hS1L+tXVmA/PV5ZvjI6s/nwIs1g82FTa14buuQv1faQR1qLcew3s9NrDV9c3GPCuiIHIK0WMHxl8R6W/P2kok+yiUFExKhlyTg2FO0tSTrBmMfWJ32KF0Yn407TIFa+6+Bqe9zSIpVh9ILHX/xm/lvNRhJJGkaa2lGWqlGWKtBVCoHNDgD6h24HsXfddVe85S1viT333DMWLVoUBx10ULS2tkalUomXv/zlvTFGAACo0e2c2PPPPz8+8pGPxIMPPhgjRoyIH/zgB7Fs2bI45phj4tRTT+2NMQLAgDJz7q2NHgJkr9szsQ8//HD8v//3//568tChsWHDhhgzZkx8+tOfjre+9a3x/ve/v8cHCY2wPUvFZUvNNRsfJH1STUnVgnQpPE0BGB611ifpBatnF0v/aVWB8b9e2mn/dEn/qSOKew9Lqha0JJsYPDeq9t5pCkFanWD6bcXY1+0xOulfpCMsS8aaVkwYtaroM2xd8R7SzQ0iaqsTpDbtU6QWDJmfpG0s76x3+SYIO7rZgZQDgN7X7ZnY0aNHV/Ngd9ttt3j00Uerrz399NM9NzIAACjR7ZnYo446Kv793/89DjjggHjjG98Y5513Xjz44INx0003xVFHHdUbYwSAAWdHUwpUOGCw63YQe8UVV8S6desiIuLiiy+OdevWxQ033BD77LOPygRQh7LUgrKNEsqOR9SmBIxekGyQMLZYxi9LIdg0ubh3uoyfeubQStFnWfnCzS4LiqX/shSCESuL/INpC4o8hTRVYNz9xWYOTR02OKiRVBhIzx8y/4Hyc17on37+2+z94vSPetIDpBAA9L5uB7F77rlntT169Oi4+uqre3RAANAfmfmE/qXbObF77rlnPPPMMy86/uyzz9YEuAAA0Fu6HcS2trbG1q1bX3R848aNsXx5ySPAAADQg+pOJ/i3f/u3avunP/1pjB8/vvr11q1b46677oqZM2f26OAgNzuSC1l2brrbVNmuXl0p2x1r6YlFe7dfFzmtaWmrvb+9ufS6z08uduBavV/xq2T3u5Oc06QU1orXFWW1Jv9La9Enyd+NpMxYOtZ0N7KI2nzZyn0PJtfqvLRVWr4sSkqflZHfOrBICYCBo+4g9pRTTomIiKampjjjjDNqXhs2bFjMnDkzvvjFL/bo4FL/+3//77j11ltj4cKFMXz48Hj22Wd77V4AAPRvdQex7e1/fcp4jz32iN///vex884799qgOrNp06Y49dRT45WvfGX83//7f/v03gAA9C/drk7w2GOPVdvPP/98jBgxoovePefiiy+OiIjrrruuT+4HZban5FKZes5NUwg69i/biSpKynI1J8vqe9yUHF9RPKyZluQavrK4TpoOEBGxvugWkxYUpbTSElsjVw2rttMyXu37zSzunaQcpPdOS3J1LLeVphrsyO5YdtYaPKQRwMDT7Qe72tvb4zOf+UxMmTIlxowZE3/+858jIuLCCy80QwoAQJ/odhD72c9+Nq677rr4/Oc/H8OHFzu5H3TQQfHP//zPPTq4HbVx48Zoa2ur+QMAQP66nU5w/fXXxzXXXBPHH398vO9976seP+SQQ2LRokXdutbcuXPjsssu67LPww8/HPvvv393hxkR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", - "text/plain": [ - "Figure(PyObject
)" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "fig, axis = plt.subplots(2, 2, figsize=(8,8))\n", "fig.suptitle(\"Neal's Funnel\", fontsize=16)\n", @@ -303,7 +193,7 @@ }, { "cell_type": "markdown", - "id": "54ded796", + "id": "d852c160", "metadata": {}, "source": [ "## Sampling w AbstractMCMC" @@ -311,21 +201,10 @@ }, { "cell_type": "code", - "execution_count": 15, - "id": "9da0a548", + "execution_count": null, + "id": "486d475d", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "AdvancedHMC.HMCSamplerSettings(0.1, 0.95)" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "initial_ϵ=0.1 \n", "TAP=0.95\n", @@ -334,30 +213,17 @@ }, { "cell_type": "code", - "execution_count": 16, - "id": "b1241d99", + "execution_count": null, + "id": "2b8fa7ea", "metadata": {}, - "outputs": [ - { - "ename": "LoadError", - "evalue": "MethodError: no method matching sample(::Model{typeof(funnel), (), (), (), Tuple{}, Tuple{}, ConditionContext{NamedTuple{(:x,), Tuple{Vector{Float64}}}, DefaultContext}}, ::AdvancedHMC.HMCSamplerSettings, ::Int64)\n\n\u001b[0mClosest candidates are:\n\u001b[0m sample(::Model, \u001b[91m::Number\u001b[39m, ::Number, \u001b[91m::Int64\u001b[39m, \u001b[91m::Int64\u001b[39m; initial_θ, progress, kwargs...)\n\u001b[0m\u001b[90m @\u001b[39m \u001b[33mAdvancedHMC\u001b[39m \u001b[90m~/Cambdrige/AdvancedHMC.jl/src/\u001b[39m\u001b[90m\u001b[4msampler.jl:177\u001b[24m\u001b[39m\n\u001b[0m sample(\u001b[91m::AbstractMCMC.LogDensityModel\u001b[39m, ::AdvancedHMC.HMCSamplerSettings, ::Integer; progress, verbose, callback, kwargs...)\n\u001b[0m\u001b[90m @\u001b[39m \u001b[33mAdvancedHMC\u001b[39m \u001b[90m~/Cambdrige/AdvancedHMC.jl/src/\u001b[39m\u001b[90m\u001b[4mabstractmcmc.jl:64\u001b[24m\u001b[39m\n\u001b[0m sample(::Any, \u001b[91m::AbstractMCMC.AbstractSampler\u001b[39m, ::Any; kwargs...)\n\u001b[0m\u001b[90m @\u001b[39m \u001b[36mAbstractMCMC\u001b[39m \u001b[90m~/.julia/packages/AbstractMCMC/bE6VB/src/\u001b[39m\u001b[90m\u001b[4msample.jl:15\u001b[24m\u001b[39m\n\u001b[0m ...\n", - "output_type": "error", - "traceback": [ - "MethodError: no method matching sample(::Model{typeof(funnel), (), (), (), Tuple{}, Tuple{}, ConditionContext{NamedTuple{(:x,), Tuple{Vector{Float64}}}, DefaultContext}}, ::AdvancedHMC.HMCSamplerSettings, ::Int64)\n\n\u001b[0mClosest candidates are:\n\u001b[0m sample(::Model, \u001b[91m::Number\u001b[39m, ::Number, \u001b[91m::Int64\u001b[39m, \u001b[91m::Int64\u001b[39m; initial_θ, progress, kwargs...)\n\u001b[0m\u001b[90m @\u001b[39m \u001b[33mAdvancedHMC\u001b[39m \u001b[90m~/Cambdrige/AdvancedHMC.jl/src/\u001b[39m\u001b[90m\u001b[4msampler.jl:177\u001b[24m\u001b[39m\n\u001b[0m sample(\u001b[91m::AbstractMCMC.LogDensityModel\u001b[39m, ::AdvancedHMC.HMCSamplerSettings, ::Integer; progress, verbose, callback, kwargs...)\n\u001b[0m\u001b[90m @\u001b[39m \u001b[33mAdvancedHMC\u001b[39m \u001b[90m~/Cambdrige/AdvancedHMC.jl/src/\u001b[39m\u001b[90m\u001b[4mabstractmcmc.jl:64\u001b[24m\u001b[39m\n\u001b[0m sample(::Any, \u001b[91m::AbstractMCMC.AbstractSampler\u001b[39m, ::Any; kwargs...)\n\u001b[0m\u001b[90m @\u001b[39m \u001b[36mAbstractMCMC\u001b[39m \u001b[90m~/.julia/packages/AbstractMCMC/bE6VB/src/\u001b[39m\u001b[90m\u001b[4msample.jl:15\u001b[24m\u001b[39m\n\u001b[0m ...\n", - "", - "Stacktrace:", - " [1] top-level scope", - " @ In[16]:1" - ] - } - ], + "outputs": [], "source": [ "sample(funnel_model, ss, 1000)" ] }, { "cell_type": "markdown", - "id": "b3a670ea", + "id": "e589a88e", "metadata": {}, "source": [ "## Sampling w Turing" @@ -365,8 +231,8 @@ }, { "cell_type": "code", - "execution_count": 12, - "id": "f51cebea", + "execution_count": null, + "id": "99c0baa6", "metadata": {}, "outputs": [], "source": [ @@ -375,21 +241,10 @@ }, { "cell_type": "code", - "execution_count": 13, - "id": "28d1259b", + "execution_count": null, + "id": "4b21a3c3", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Turing.Inference.NUTS{Turing.Essential.ForwardDiffAD{0}, (), DiagEuclideanMetric}(300, 0.95, 10, 1000.0, 0.0)" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "TAP = 0.95\n", "nadapts = 300\n", @@ -398,98 +253,10 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "id": "74b110a2", "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[36m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mFound initial step size\n", - "\u001b[36m\u001b[1m└ \u001b[22m\u001b[39m ϵ = 1.6\n", - "\u001b[32mSampling: 100%|█████████████████████████████████████████| Time: 0:00:11\u001b[39m\n" - ] - }, - { - "data": { - "text/plain": [ - "Chains MCMC chain (50000×33×1 Array{Float64, 3}):\n", - "\n", - "Iterations = 301:1:50300\n", - "Number of chains = 1\n", - "Samples per chain = 50000\n", - "Wall duration = 14.4 seconds\n", - "Compute duration = 14.4 seconds\n", - "parameters = θ, z[1], z[2], z[3], z[4], z[5], z[6], z[7], z[8], z[9], z[10], z[11], z[12], z[13], z[14], z[15], z[16], z[17], z[18], z[19], z[20]\n", - "internals = lp, n_steps, is_accept, acceptance_rate, log_density, hamiltonian_energy, hamiltonian_energy_error, max_hamiltonian_energy_error, tree_depth, numerical_error, step_size, nom_step_size\n", - "\n", - "Summary Statistics\n", - " \u001b[1m parameters \u001b[0m \u001b[1m mean \u001b[0m \u001b[1m std \u001b[0m \u001b[1m mcse \u001b[0m \u001b[1m ess_bulk \u001b[0m \u001b[1m ess_tail \u001b[0m \u001b[1m rhat\u001b[0m ⋯\n", - " \u001b[90m Symbol \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64\u001b[0m ⋯\n", - "\n", - " θ -0.0346 0.7783 0.0140 5113.3278 2765.1043 1.0000 ⋯\n", - " z[1] 0.6049 0.7333 0.0040 34483.1850 32515.8682 1.0000 ⋯\n", - " z[2] 0.6175 0.7356 0.0035 46810.9217 33380.6290 1.0001 ⋯\n", - " z[3] -0.4257 0.7190 0.0031 55075.7998 33635.4185 1.0002 ⋯\n", - " z[4] 0.0777 0.7064 0.0026 76726.4894 34015.4579 1.0000 ⋯\n", - " z[5] 0.9556 0.7708 0.0052 21455.3400 34336.0032 1.0000 ⋯\n", - " z[6] -1.6946 0.8897 0.0085 10288.6049 6740.9566 1.0000 ⋯\n", - " z[7] -0.0492 0.7053 0.0024 90065.7491 33968.6494 1.0000 ⋯\n", - " z[8] 0.3336 0.7125 0.0028 64338.6341 36057.2177 1.0000 ⋯\n", - " z[9] -1.6344 0.8853 0.0086 9933.6900 6976.3190 1.0000 ⋯\n", - " z[10] -0.8349 0.7525 0.0045 28034.3085 36239.1521 1.0001 ⋯\n", - " z[11] 0.9764 0.7712 0.0052 21404.7104 34294.6253 1.0000 ⋯\n", - " z[12] 0.0579 0.7047 0.0030 55885.5225 36082.7391 1.0000 ⋯\n", - " z[13] 0.0536 0.7075 0.0024 87613.6817 34162.3752 1.0000 ⋯\n", - " z[14] -0.2670 0.7123 0.0025 84246.0742 32599.5398 1.0000 ⋯\n", - " z[15] -0.0622 0.7087 0.0025 79254.5968 34161.8250 1.0000 ⋯\n", - " z[16] -0.6443 0.7408 0.0037 41481.0092 34608.4218 1.0000 ⋯\n", - " z[17] 0.8464 0.7503 0.0044 29083.6946 32152.7913 1.0000 ⋯\n", - " z[18] -0.2197 0.7054 0.0028 64204.4335 37650.2729 1.0000 ⋯\n", - " z[19] 0.5349 0.7305 0.0031 54514.3933 36513.6931 1.0000 ⋯\n", - " z[20] 0.6083 0.7388 0.0035 44836.7371 32363.3741 1.0000 ⋯\n", - "\u001b[36m 1 column omitted\u001b[0m\n", - "\n", - "Quantiles\n", - " \u001b[1m parameters \u001b[0m \u001b[1m 2.5% \u001b[0m \u001b[1m 25.0% \u001b[0m \u001b[1m 50.0% \u001b[0m \u001b[1m 75.0% \u001b[0m \u001b[1m 97.5% \u001b[0m\n", - " \u001b[90m Symbol \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m\n", - "\n", - " θ -1.9581 -0.4004 0.0717 0.4754 1.1565\n", - " z[1] -0.7505 0.1010 0.5644 1.0737 2.1391\n", - " z[2] -0.7369 0.1064 0.5822 1.0924 2.1487\n", - " z[3] -1.9174 -0.8878 -0.3957 0.0595 0.9363\n", - " z[4] -1.3121 -0.3787 0.0680 0.5257 1.5049\n", - " z[5] -0.4121 0.4078 0.9070 1.4560 2.5761\n", - " z[6] -3.5234 -2.2873 -1.6654 -1.0643 -0.0794\n", - " z[7] -1.4635 -0.5021 -0.0467 0.4054 1.3581\n", - " z[8] -1.0256 -0.1393 0.3091 0.7890 1.7931\n", - " z[9] -3.4679 -2.2201 -1.6043 -0.9980 -0.0491\n", - " z[10] -2.3953 -1.3280 -0.7959 -0.3032 0.5328\n", - " z[11] -0.3880 0.4257 0.9307 1.4796 2.6044\n", - " z[12] -1.3251 -0.3999 0.0514 0.5073 1.4832\n", - " z[13] -1.3527 -0.4039 0.0501 0.5114 1.4794\n", - " z[14] -1.7365 -0.7225 -0.2442 0.1995 1.1027\n", - " z[15] -1.4816 -0.5141 -0.0556 0.3900 1.3474\n", - " z[16] -2.1837 -1.1270 -0.6058 -0.1313 0.7143\n", - " z[17] -0.5098 0.3139 0.8116 1.3268 2.4238\n", - " z[18] -1.6461 -0.6757 -0.1991 0.2403 1.1489\n", - " z[19] -0.8344 0.0413 0.4998 1.0036 2.0435\n", - " z[20] -0.7632 0.0979 0.5707 1.0851 2.1561\n" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "WARNING: both Turing and AdvancedHMC export \"HMCDA\"; uses of it in module Main must be qualified\n" - ] - } - ], + "outputs": [], "source": [ "Turing.sample(funnel_model, spl, 50_000, progress=true; save_state=true)" ] diff --git a/src/abstractmcmc.jl b/src/abstractmcmc.jl index a4ac5469..a96568ec 100644 --- a/src/abstractmcmc.jl +++ b/src/abstractmcmc.jl @@ -62,7 +62,7 @@ struct HMCSamplerSettings end function AbstractMCMC.sample( - model::LogDensityModel, + model, # what's this type ::LogDensityModel, settings::HMCSamplerSettings, N::Integer; progress = true, @@ -73,7 +73,7 @@ function AbstractMCMC.sample( return AbstractMCMC.sample( Random.GLOBAL_RNG, model, - sampler, + settings, N; progress = progress, verbose = verbose, @@ -84,7 +84,7 @@ end function AbstractMCMC.sample( rng::Random.AbstractRNG, - model::LogDensityModel, + model, #::LogDensityModel, settings::HMCSamplerSettings, N::Integer; progress = true, @@ -95,6 +95,13 @@ function AbstractMCMC.sample( # obtain dimensions of the model ctxt = model.context vi = DynamicPPL.VarInfo(model, ctxt) + # We will need to implement this but it is going to be + # Interesting how to plug the transforms along the sampling + # processes + #vi_t = Turing.link!!(vi, model) + ℓ = LogDensityProblemsAD.ADgradient(DynamicPPL.LogDensityFunction(vi, model, ctxt)) + ℓ = AbstractMCMC.LogDensityModel(ℓ) + dists = _get_dists(vi) dist_lengths = [length(dist) for dist in dists] vsyms = _name_variables(vi, dist_lengths) @@ -114,7 +121,7 @@ function AbstractMCMC.sample( return AbstractMCMC.mcmcsample( rng, - model, + ℓ, sampler, N; progress = progress, @@ -123,6 +130,7 @@ function AbstractMCMC.sample( kwargs..., ) end +### """ $(TYPEDSIGNATURES) @@ -236,7 +244,7 @@ end function AbstractMCMC.step( rng::AbstractRNG, - model::LogDensityModel, + model, #::LogDensityModel, spl::HMCSampler; init_params = nothing, kwargs..., @@ -264,7 +272,7 @@ end function AbstractMCMC.step( rng::AbstractRNG, - model::LogDensityModel, + model, #::LogDensityModel, spl::HMCSampler, state::HMCState; nadapts::Int = 0, From 00b837ac0af4ac374ca6390c7c42bfd296601a87 Mon Sep 17 00:00:00 2001 From: jaimerz Date: Thu, 1 Jun 2023 16:40:26 +0100 Subject: [PATCH 09/27] AbstractMCMC working --- Lab.ipynb | 360 +++++++++++++++++++++++++++++++++++++++++--- Project.toml | 21 +-- src/abstractmcmc.jl | 41 +++-- 3 files changed, 366 insertions(+), 56 deletions(-) diff --git a/Lab.ipynb b/Lab.ipynb index a31c2065..1dd6a869 100644 --- a/Lab.ipynb +++ b/Lab.ipynb @@ -1,6 +1,7 @@ { "cells": [ { + "attachments": {}, "cell_type": "markdown", "id": "91129cb1", "metadata": {}, @@ -10,10 +11,18 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "id": "896323ee", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[32m\u001b[1m Activating\u001b[22m\u001b[39m project at `~/Cambdrige`\n" + ] + } + ], "source": [ "using Pkg\n", "Pkg.activate(\"..\")" @@ -21,10 +30,20 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "id": "baed58e3", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling PyPlot [d330b81b-6aea-500a-939a-2ce795aea3ee]\n", + "\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling AdvancedHMC [0bf59076-c3b1-5ca4-86bd-e02cd72cde3d]\n", + "\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling Turing [fce5fe82-541a-59a6-adf8-730c64b5f9a0]\n" + ] + } + ], "source": [ "# The statistical inference frame-work we will use\n", "using LogDensityProblems\n", @@ -44,6 +63,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "id": "3d76390f", "metadata": {}, @@ -53,10 +73,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "id": "a7d6f81c", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "funnel (generic function with 2 methods)" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Just a simple Neal Funnel\n", "d = 21\n", @@ -69,10 +100,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "id": "5f408f2b", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "Model{typeof(funnel), (), (), (), Tuple{}, Tuple{}, ConditionContext{NamedTuple{(:x,), Tuple{Vector{Float64}}}, DefaultContext}}(funnel, NamedTuple(), NamedTuple(), ConditionContext((x = [1.2142074831535152, 1.23371919965455, -0.8480146960461767, 0.1600994648479841, 1.9180385508479283, -3.401523464506408, -0.0957684186471088, 0.6734622629464286, -3.2749467689509633, -1.6760091758453226, 1.9567202902549736, 0.1136169088905351, 0.11117896909388916, -0.5373922347882832, -0.12436857036298687, -1.2901071061088532, 1.702584517514787, -0.44460133117954226, 1.0818722439221686, 1.2208011493237483],), DefaultContext()))" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "Random.seed!(1)\n", "(;x) = rand(funnel() | (θ=0,))\n", @@ -80,6 +122,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "id": "10dfa4cc", "metadata": {}, @@ -89,10 +132,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "id": "be8a75dd", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "Sampler" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "struct Sampler\n", " metric\n", @@ -117,10 +171,26 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "id": "baaf795f", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "Sampler(DiagEuclideanMetric([1.0, 1.0, 1.0, 1.0, 1.0, 1 ...]), Leapfrog(ϵ=0.1), StanHMCAdaptor(\n", + " pc=WelfordVar,\n", + " ssa=NesterovDualAveraging(γ=0.05, t_0=10.0, κ=0.75, δ=0.95, state.ϵ=0.1),\n", + " init_buffer=75, term_buffer=50, window_size=25,\n", + " state=window(0, 0), window_splits()\n", + "), HMCKernel{AdvancedHMC.FullMomentumRefreshment, Trajectory{MultinomialTS, Leapfrog{Float64}, GeneralisedNoUTurn{Float64}}}(AdvancedHMC.FullMomentumRefreshment(), Trajectory{MultinomialTS}(integrator=Leapfrog(ϵ=0.1), tc=GeneralisedNoUTurn{Float64}(10, 1000.0))))" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "initial_θ = randn(21)\n", "initial_ϵ = 0.1 #find_good_stepsize(hamiltonian, initial_θ)\n", @@ -128,6 +198,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "id": "3ac319cb", "metadata": {}, @@ -137,26 +208,60 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "id": "c516fd54", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mProgressMeter by default refresh meters with additional information in IJulia via `IJulia.clear_output`, which clears all outputs in the cell. \n", + "\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m - To prevent this behaviour, do `ProgressMeter.ijulia_behavior(:append)`. \n", + "\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m - To disable this warning message, do `ProgressMeter.ijulia_behavior(:clear)`.\n", + "\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ ProgressMeter ~/.julia/packages/ProgressMeter/sN2xr/src/ProgressMeter.jl:618\u001b[39m\n", + "\u001b[32mSampling 100%|███████████████████████████████| Time: 0:00:04\u001b[39m\n", + "\u001b[34m iterations: 10000\u001b[39m\n", + "\u001b[34m ratio_divergent_transitions: 0.0\u001b[39m\n", + "\u001b[34m ratio_divergent_transitions_during_adaption: 0.0\u001b[39m\n", + "\u001b[34m n_steps: 31\u001b[39m\n", + "\u001b[34m is_accept: true\u001b[39m\n", + "\u001b[34m acceptance_rate: 0.9977556019563564\u001b[39m\n", + "\u001b[34m log_density: -55.59669800049129\u001b[39m\n", + "\u001b[34m hamiltonian_energy: 76.99245786344844\u001b[39m\n", + "\u001b[34m hamiltonian_energy_error: -0.037907257288452456\u001b[39m\n", + "\u001b[34m max_hamiltonian_energy_error: -0.08384075689365034\u001b[39m\n", + "\u001b[34m tree_depth: 4\u001b[39m\n", + "\u001b[34m numerical_error: false\u001b[39m\n", + "\u001b[34m step_size: 0.11952907411701275\u001b[39m\n", + "\u001b[34m nom_step_size: 0.11952907411701275\u001b[39m\n", + "\u001b[34m is_adapt: false\u001b[39m\n", + "\u001b[34m mass_matrix: DiagEuclideanMetric([1.8273790343807308, 0.4706 ...])\u001b[39m\n", + "\u001b[36m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mFinished 10000 sampling steps for 1 chains in 5.014627706 (s)\n", + "\u001b[36m\u001b[1m│ \u001b[22m\u001b[39m h = Hamiltonian(metric=DiagEuclideanMetric([1.8273790343807308, 0.4706 ...]), kinetic=GaussianKinetic())\n", + "\u001b[36m\u001b[1m│ \u001b[22m\u001b[39m κ = HMCKernel{AdvancedHMC.FullMomentumRefreshment, Trajectory{MultinomialTS, Leapfrog{Float64}, GeneralisedNoUTurn{Float64}}}(AdvancedHMC.FullMomentumRefreshment(), Trajectory{MultinomialTS}(integrator=Leapfrog(ϵ=0.12), tc=GeneralisedNoUTurn{Float64}(10, 1000.0)))\n", + "\u001b[36m\u001b[1m│ \u001b[22m\u001b[39m EBFMI_est = 0.5110910368914205\n", + "\u001b[36m\u001b[1m└ \u001b[22m\u001b[39m average_acceptance_rate = 0.9774544772681191\n" + ] + } + ], "source": [ "n_samples, n_adapts = 10_000, 1_000\n", "samples, stats = sample(funnel_model, 0.1, 0.95, n_samples, n_adapts; initial_θ=initial_θ);" ] }, { + "attachments": {}, "cell_type": "markdown", "id": "7839a767", "metadata": {}, "source": [ - "## Plotting" + "### Plotting" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "id": "2a803eb8", "metadata": {}, "outputs": [], @@ -167,10 +272,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "id": "00f17868", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAArEAAAL3CAYAAACd2x1cAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAABSGElEQVR4nO3deZhdVZko7q9SSSpzDCEQyMg8CAISAXEABAGNA91Kc69oA3qx9QcOHRwCigH1CijigArN7StIq7cRRW1AEEQDtuIAJC20BBOkOiEkEIikkhAy1fn9YXP2OkXtyqmkqk6tqvd9njzPqn3W3nudU5XKl7W+/a2mSqVSCQAAyMiQRg8AAAC6SxALAEB2BLEAAGRHEAsAQHYEsQAAZEcQCwBAdgSxAABkRxALAEB2BLEAAGRHEAs0xMyZM6OpqSmampri+9//fmm/E044IZqamuK6667ru8F10NraGk1NTTFz5swXvfbC++hNL3xOXf350Y9+1Ktj6C8uuuiiaGpqiosuuqjRQwEabGijBwDwiU98Ik455ZQYOtSvpK6cdNJJMXny5E5fmz59eh+PBqCx/IsBNNSoUaPiT3/6U/zzP/9zvO9972v0cPq1uXPnxrHHHtvoYQD0C9IJgIb60Ic+FBERn/70p+O5555r8GgAyIUgFmioN77xjXHMMcfEihUr4ktf+lK3z7///vvj9NNPj+nTp0dLS0vstNNOcdJJJ8VPfvKTTvv/8Y9/jHnz5sWrXvWqmDJlSgwfPjwmTpwYJ5xwQnzve9/b0bdTtWLFivjQhz4U++67b4wYMSJGjRoV06ZNi+OPPz4uv/zyHrtPR8cee2w0NTXF/PnzO329LKc0Pb5q1ao455xzYtq0aTF8+PCYNm1afOADH4hnn332Rde77rrroqmpKc4888xYv359nH/++bH33ntHS0tLTJ48Oc4444xYvnx56XifeOKJmDNnThxwwAExatSoGDt2bLziFa+Ir33ta7Fly5Yd+CSAgU4QCzTcZZddFhERn//85+OZZ56p+7yvfOUrccQRR8R3v/vdmDhxYrzlLW+Jl770pTF//vyYPXt2fPrTn37ROVdccUV8+tOfjtWrV8fBBx8cf/u3fxv77bdf/OIXv4jTTjst5syZs8PvZ+XKlTFr1qz46le/Ghs3boyTTz453vKWt8Qee+wRCxcujM9+9rM7fI/esmzZsnj5y18eP/jBD+KII46I17/+9bF27dr42te+FieeeGJs3ry50/PWrFkTRx99dFx99dVx4IEHxhve8IaoVCpx/fXXx6te9apYs2bNi86555574qCDDoovfelL8fzzz8frX//6eNWrXhWPPvpofOADH4jZs2eX3g8gKgANMGPGjEpEVH75y19WKpVK5W//9m8rEVH5x3/8x5p+xx9/fCUiKtdee23N8dtvv73S1NRU2XnnnSt33313zWt/+MMfKlOnTq1ERGX+/Pk1r82fP7/y6KOPvmg8ixYtqp7z29/+tua1xx57rBIRlRkzZtT13i6++OJKRFTe+973Vtrb22te27RpU+VnP/tZXdd5QURUIqLyi1/8Ypt9jznmmC77zps3rxIRlXnz5nV6PCIqZ555ZuX555+vvrZ06dLKlClTKhFR+e53v1tz3rXXXls976STTqqsWbOm+trq1asrhx56aCUiKp/73OdqzluxYkVl4sSJlaampso3vvGNytatW6uvPf3005XXve51lYioXHzxxXWNHxh8zMQC/cLnPve5GDp0aHzjG9+I//qv/9pm/3nz5kWlUomrr746Xvva19a8dvDBB8cVV1wRERFXXnllzWvHHHNM7Lnnni+63n777RcXXnhhRESXJb/q8eSTT0ZExMknn/yi8lvDhg2L448/fruue9xxx3VaXuvMM8/cofGmpk6dGl//+tejpaWleuyFdIKIiJ/97Gednjd69Oi49tprY9y4cdVjEyZMiLlz53Z63pe//OV45pln4pxzzon3v//9MWRI8c/RxIkT4/rrr49hw4bF1772tahUKj32/oCBQ3UCoF/Yb7/94t3vfndcc801ceGFF8b1119f2vfpp5+O3/3udzFy5Mh485vf3GmfF57i//Wvf/2i19atWxe33XZbLFiwIJ5++unYtGlTRPw1jzUi4pFHHtmh93LEEUfEN77xjZg7d25UKpU48cQTY8yYMTt0zYjyEluvfvWrd/jaLzj++ONj1KhRLzp+wAEHRESU5rfOmjUrdtttt7rPu/XWWyMi4rTTTuv0elOmTIl99tkn/vjHP8bixYtj3333rf9NAIOCIBboNy666KL49re/Hd/5znfiIx/5SLzsZS/rtN9jjz0WlUolNmzYUDNj2JlVq1bVfH3zzTfHWWed1WXubVtbW/cHn3jXu94Vd955Z3znO9+Jt73tbdHc3BwHHnhgvPrVr463v/3t8brXvW67rtsXJbbK6s2+MMP6/PPP98h5f/7znyMi4jWvec02x7Rq1SpBLPAiglig39htt93iQx/6UFxyySVx/vnnV2frOmpvb4+IiDFjxsTb3va2uq+/fPnyOO2002LDhg3xsY99LE4//fSYOXNmjBkzJoYMGRJ33HFHnHTSSTu8fD1kyJD49re/HRdccEHceuut8atf/Sp+9atfxVVXXRVXXXVVvPnNb44f/vCH0dzcvEP32R4vfHZl0mX97ujueS+M4+1vf3uMHj26y74TJ07crjEBA5sgFuhXPv7xj8c111wTP/nJT+Kee+7ptM+0adMi4q/bsX7zm9+sO4C6+eabY8OGDfE3f/M31YoIqcWLF2//wDtx4IEHxoEHHhgf/ehHo1KpxM9//vN4xzveETfffHNcf/31cdZZZ/Xo/SIihg8fHhERa9eu7fT1evKN+8K0adNi8eLF8fGPfzxmzZrV6OEAGfJgF9CvjB8/Pi644IKIiPjYxz7WaZ/dd989Xvayl8XatWvj9ttvr/vaq1evjoiIGTNmvOi1SqUS3/3ud7djxPVpamqK448/Pt7xjndERMTChQt75T5TpkyJiIiHH374Ra8999xz8Ytf/KJX7ttdb3jDGyIierQ2LzC4CGKBfuecc86J6dOnx29/+9u49957O+3zQq3Vs846K26++eYXvV6pVOK3v/1t3HHHHdVjLzxk9P3vf7/6EFdExNatW+NTn/pUpw+BbY/rr78+7r///hcdX7t2bXUTgs4C6Z5wwgknRETE17/+9ZqHqdavXx/vfe97Y9myZb1y3+766Ec/Gi95yUviiiuuiC9+8YvVh+tSjz32WHz7299uwOiAHAhigX6npaWlulFB2Va0b37zm+MrX/lKrF69Ot7ylrfEPvvsE29605vi9NNPjxNPPDEmT54cRx11VPz85z+vOefwww+Pxx9/PPbdd99405veFKeddlrstddecdlll8XHP/7xHhn/TTfdFLNmzYopU6bE7Nmz453vfGfMnj07pk2bFgsXLoyDDjoozj777B65V0d/93d/F7NmzYqlS5fGS1/60njTm94Ub3zjG2OPPfaI+fPnx7vf/e5euW93TZ06NX784x/HhAkT4iMf+Uh1N7N3vvOd8eY3vzn23nvv2HPPPeNr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qSOKew9Lqha0JJsYPDeq9t5pCkFanWD6bcXY1+0xOulfpCMsS8aaVkwYtaroM2xd8R7SzQ0iaqsTpDbtU6QWDJmfpG0s76x3+SYIO7rZgZQDgN7X7ZnY0aNHV/Ngd9ttt3j00Uerrz399NM9NzIAACjR7ZnYo446Kv793/89DjjggHjjG98Y5513Xjz44INx0003xVFHHdUbYwSAAWdHUwpUOGCw63YQe8UVV8S6desiIuLiiy+OdevWxQ033BD77LOPygRQh7LUgrKNEsqOR9SmBIxekGyQMLZYxi9LIdg0ubh3uoyfeubQStFnWfnCzS4LiqX/shSCESuL/INpC4o8hTRVYNz9xWYOTR02OKiRVBhIzx8y/4Hyc17on37+2+z94vSPetIDpBAA9L5uB7F77rlntT169Oi4+uqre3RAANAfmfmE/qXbObF77rlnPPPMMy86/uyzz9YEuAAA0Fu6HcS2trbG1q1bX3R848aNsXx5ySPAAADQg+pOJ/i3f/u3avunP/1pjB8/vvr11q1b46677oqZM2f26OAgNzuSC1l2brrbVNmuXl0p2x1r6YlFe7dfFzmtaWmrvb+9ufS6z08uduBavV/xq2T3u5Oc06QU1orXFWW1Jv9La9Enyd+NpMxYOtZ0N7KI2nzZyn0PJtfqvLRVWr4sSkqflZHfOrBICYCBo+4g9pRTTomIiKampjjjjDNqXhs2bFjMnDkzvvjFL/bo4FL/+3//77j11ltj4cKFMXz48Hj22Wd77V4AAPRvdQex7e1/fcp4jz32iN///vex884799qgOrNp06Y49dRT45WvfGX83//7f/v03gAA9C/drk7w2GOPVdvPP/98jBgxoovePefiiy+OiIjrrruuT+4HZban5FKZes5NUwg69i/biSpKynI1J8vqe9yUHF9RPKyZluQavrK4TpoOEBGxvugWkxYUpbTSElsjVw2rttMyXu37zSzunaQcpPdOS3J1LLeVphrsyO5YdtYaPKQRwMDT7Qe72tvb4zOf+UxMmTIlxowZE3/+858jIuLCCy80QwoAQJ/odhD72c9+Nq677rr4/Oc/H8OHFzu5H3TQQfHP//zPPTq4HbVx48Zoa2ur+QMAQP66nU5w/fXXxzXXXBPHH398vO9976seP+SQQ2LRokXdutbcuXPjsssu67LPww8/HPvvv393hxkR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", + "text/plain": [ + "Figure(PyObject
)" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "fig, axis = plt.subplots(2, 2, figsize=(8,8))\n", "fig.suptitle(\"Neal's Funnel\", fontsize=16)\n", @@ -192,6 +308,14 @@ ] }, { + "attachments": {}, + "cell_type": "markdown", + "id": "440a65f3", + "metadata": {}, + "source": [] + }, + { + "attachments": {}, "cell_type": "markdown", "id": "d852c160", "metadata": {}, @@ -201,27 +325,215 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "id": "486d475d", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mProgressMeter by default refresh meters with additional information in IJulia via `IJulia.clear_output`, which clears all outputs in the cell. \n", + "\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m - To prevent this behaviour, do `ProgressMeter.ijulia_behavior(:append)`. \n", + "\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m - To disable this warning message, do `ProgressMeter.ijulia_behavior(:clear)`.\n", + "\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ ProgressMeter ~/.julia/packages/ProgressMeter/sN2xr/src/ProgressMeter.jl:618\u001b[39m\n", + "\r\u001b[32mSampling 100%|███████████████████████████████| Time: 0:00:03\u001b[39m\r\n", + "\u001b[34m iterations: 1000\u001b[39m\r\n", + "\u001b[34m ratio_divergent_transitions: 0.0\u001b[39m\r\n", + "\u001b[34m ratio_divergent_transitions_during_adaption: 0.0\u001b[39m\r\n", + "\u001b[34m n_steps: 31\u001b[39m\r\n", + "\u001b[34m is_accept: true\u001b[39m\r\n", + "\u001b[34m acceptance_rate: 0.9816437550853788\u001b[39m\r\n", + "\u001b[34m log_density: -56.98512987944265\u001b[39m\r\n", + "\u001b[34m hamiltonian_energy: 69.16094619031233\u001b[39m\r\n", + "\u001b[34m hamiltonian_energy_error: 0.0010654981857385337\u001b[39m\r\n", + "\u001b[34m max_hamiltonian_energy_error: 0.05359781209639891\u001b[39m\r\n", + "\u001b[34m tree_depth: 5\u001b[39m\r\n", + "\u001b[34m numerical_error: false\u001b[39m\r\n", + "\u001b[34m step_size: 0.1\u001b[39m\r\n", + "\u001b[34m nom_step_size: 0.1\u001b[39m\r\n", + "\u001b[34m is_adapt: false\u001b[39m\r\n", + "\u001b[34m mass_matrix: DiagEuclideanMetric([1.0, 1.0, 1.0, 1.0, 1.0, 1 ...])\u001b[39m\n" + ] + }, + { + "data": { + "text/plain": [ + "Chains MCMC chain (1000×34×1 Array{Real, 3}):\n", + "\n", + "Iterations = 1:1:1000\n", + "Number of chains = 1\n", + "Samples per chain = 1000\n", + "parameters = θ, z1, z2, z3, z4, z5, z6, z7, z8, z9, z10, z11, z12, z13, z14, z15, z16, z17, z18, z19, z20\n", + "internals = lp, n_steps, is_accept, acceptance_rate, log_density, hamiltonian_energy, hamiltonian_energy_error, max_hamiltonian_energy_error, tree_depth, numerical_error, step_size, nom_step_size, is_adapt\n", + "\n", + "Summary Statistics\n", + " \u001b[1m parameters \u001b[0m \u001b[1m mean \u001b[0m \u001b[1m std \u001b[0m \u001b[1m mcse \u001b[0m \u001b[1m ess_bulk \u001b[0m \u001b[1m ess_tail \u001b[0m \u001b[1m rhat \u001b[0m \u001b[1m \u001b[0m ⋯\n", + " \u001b[90m Symbol \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Real \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m \u001b[0m ⋯\n", + "\n", + " θ -0.1701 0.8877 0.1015 107.2505 85.6230 1.0013 ⋯\n", + " z1 0.5637 0.7028 0.0306 533.5203 657.9208 0.9992 ⋯\n", + " z2 0.5754 0.7386 0.0267 795.9805 619.4501 0.9997 ⋯\n", + " z3 -0.4002 0.6910 0.0189 1374.0798 542.6676 0.9993 ⋯\n", + " z4 0.0920 0.7204 0.0168 1843.4205 550.3231 0.9994 ⋯\n", + " z5 0.9176 0.7863 0.0431 323.1787 573.1358 1.0028 ⋯\n", + " z6 -1.5815 0.8393 0.0611 180.5255 182.3534 1.0003 ⋯\n", + " z7 -0.0286 0.7397 0.0170 1941.1363 587.1951 1.0004 ⋯\n", + " z8 0.2741 0.6673 0.0186 1293.5382 541.9376 1.0004 ⋯\n", + " z9 -1.5285 0.9058 0.0649 187.6804 384.1253 1.0032 ⋯\n", + " z10 -0.7848 0.7642 0.0366 429.3253 502.0009 0.9992 ⋯\n", + " z11 0.8904 0.7467 0.0385 372.7358 666.3289 0.9994 ⋯\n", + " z12 0.0491 0.7138 0.0162 1883.7889 664.5997 1.0002 ⋯\n", + " z13 0.0662 0.6866 0.0164 1766.0242 670.8974 1.0020 ⋯\n", + " z14 -0.2357 0.6711 0.0158 1758.4453 697.9642 0.9997 ⋯\n", + " z15 -0.0844 0.6940 0.0165 1755.5485 646.8239 0.9995 ⋯\n", + " z16 -0.6014 0.7425 0.0232 1094.2363 664.4580 0.9991 ⋯\n", + " z17 0.7843 0.7355 0.0275 712.4447 727.2978 1.0005 ⋯\n", + " z18 -0.2111 0.6812 0.0162 1684.4507 759.9554 0.9999 ⋯\n", + " z19 0.4824 0.7345 0.0218 1159.5168 490.4477 1.0002 ⋯\n", + " z20 0.5763 0.6983 0.0246 773.4011 580.6981 1.0020 ⋯\n", + "\u001b[36m 1 column omitted\u001b[0m\n", + "\n", + "Quantiles\n", + " \u001b[1m parameters \u001b[0m \u001b[1m 2.5% \u001b[0m \u001b[1m 25.0% \u001b[0m \u001b[1m 50.0% \u001b[0m \u001b[1m 75.0% \u001b[0m \u001b[1m 97.5% \u001b[0m\n", + " \u001b[90m Symbol \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m\n", + "\n", + " θ -2.5989 -0.4933 0.0009 0.3895 1.1431\n", + " z1 -0.7217 0.0839 0.5223 1.0107 1.9740\n", + " z2 -0.7759 0.0675 0.5078 1.0622 2.1982\n", + " z3 -1.7383 -0.8248 -0.3562 0.0761 0.8287\n", + " z4 -1.3976 -0.3373 0.0919 0.5566 1.5334\n", + " z5 -0.4609 0.3634 0.8315 1.4431 2.7049\n", + " z6 -3.2540 -2.1718 -1.5520 -0.9958 -0.0557\n", + " z7 -1.5612 -0.4782 -0.0007 0.4014 1.4314\n", + " z8 -0.9550 -0.1580 0.2422 0.6686 1.6978\n", + " z9 -3.3072 -2.1401 -1.5261 -0.8601 0.1242\n", + " z10 -2.3459 -1.2841 -0.7246 -0.2361 0.6525\n", + " z11 -0.4481 0.3820 0.8514 1.3697 2.5164\n", + " z12 -1.4653 -0.3635 0.0642 0.4844 1.4252\n", + " z13 -1.2855 -0.3572 0.0760 0.4913 1.4790\n", + " z14 -1.5725 -0.6669 -0.2090 0.1760 1.0970\n", + " z15 -1.4224 -0.5176 -0.0880 0.3558 1.2119\n", + " z16 -2.1895 -1.0814 -0.5403 -0.0635 0.6834\n", + " z17 -0.5683 0.2632 0.7212 1.2724 2.3639\n", + " z18 -1.5622 -0.6222 -0.1896 0.2423 1.0862\n", + " z19 -0.8552 -0.0154 0.4241 0.9518 2.0049\n", + " z20 -0.6794 0.0868 0.5229 1.0198 2.0579\n" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ + "using MCMCChains\n", + "\n", "initial_ϵ=0.1 \n", "TAP=0.95\n", - "ss = AdvancedHMC.HMCSamplerSettings(initial_ϵ, TAP)" + "nuts = AdvancedHMC.NUTSSampler(initial_ϵ, TAP, d)\n", + "Asamples = sample(funnel_model, nuts, 1000; chain_type=MCMCChains.Chains)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "id": "bbf0131e", + "metadata": {}, + "source": [ + "### Plotting" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "id": "9c61e0ab", + "metadata": {}, + "outputs": [ + { + "ename": "LoadError", + "evalue": "MethodError: no method matching getindex(::AdvancedHMC.Transition{AdvancedHMC.PhasePoint{Vector{Float64}, AdvancedHMC.DualValue{Float64, Vector{Float64}}}, NamedTuple{(:n_steps, :is_accept, :acceptance_rate, :log_density, :hamiltonian_energy, :hamiltonian_energy_error, :max_hamiltonian_energy_error, :tree_depth, :numerical_error, :step_size, :nom_step_size, :is_adapt), Tuple{Int64, Bool, Float64, Float64, Float64, Float64, Float64, Int64, Bool, Float64, Float64, Bool}}}, ::Int64)", + "output_type": "error", + "traceback": [ + "MethodError: no method matching getindex(::AdvancedHMC.Transition{AdvancedHMC.PhasePoint{Vector{Float64}, AdvancedHMC.DualValue{Float64, Vector{Float64}}}, NamedTuple{(:n_steps, :is_accept, :acceptance_rate, :log_density, :hamiltonian_energy, :hamiltonian_energy_error, :max_hamiltonian_energy_error, :tree_depth, :numerical_error, :step_size, :nom_step_size, :is_adapt), Tuple{Int64, Bool, Float64, Float64, Float64, Float64, Float64, Int64, Bool, Float64, Float64, Bool}}}, ::Int64)", + "", + "Stacktrace:", + " [1] (::var\"#19#20\")(sample::AdvancedHMC.Transition{AdvancedHMC.PhasePoint{Vector{Float64}, AdvancedHMC.DualValue{Float64, Vector{Float64}}}, NamedTuple{(:n_steps, :is_accept, :acceptance_rate, :log_density, :hamiltonian_energy, :hamiltonian_energy_error, :max_hamiltonian_energy_error, :tree_depth, :numerical_error, :step_size, :nom_step_size, :is_adapt), Tuple{Int64, Bool, Float64, Float64, Float64, Float64, Float64, Int64, Bool, Float64, Float64, Bool}}})", + " @ Main ./none:0", + " [2] iterate", + " @ ./generator.jl:47 [inlined]", + " [3] collect(itr::Base.Generator{Vector{AdvancedHMC.Transition{AdvancedHMC.PhasePoint{Vector{Float64}, AdvancedHMC.DualValue{Float64, Vector{Float64}}}, NamedTuple{(:n_steps, :is_accept, :acceptance_rate, :log_density, :hamiltonian_energy, :hamiltonian_energy_error, :max_hamiltonian_energy_error, :tree_depth, :numerical_error, :step_size, :nom_step_size, :is_adapt), Tuple{Int64, Bool, Float64, Float64, Float64, Float64, Float64, Int64, Bool, Float64, Float64, Bool}}}}, var\"#19#20\"})", + " @ Base ./array.jl:782", + " [4] top-level scope", + " @ In[43]:1" + ] + } + ], + "source": [ + "theta_mchmc = [sample[1] for sample in Asamples]\n", + "x10_mchmc = [sample[10+1] for sample in Asamples];" ] }, { "cell_type": "code", "execution_count": null, - "id": "2b8fa7ea", + "id": "1eeabe94", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "AdvancedHMC.DualValue{Float64, Vector{Float64}}(-30.568913420248535, [-1.5177868234276293, -0.2642441573758009, 2.9006618798256305, -0.49020897941818103, 0.3653601765991165, 2.6312133214525577, 0.10168289161602831, -1.6963705076408426, -2.00635197071912, -3.0012398194776444 … 3.7892210136171354, 0.9123812954243244, 1.4411600118405576, -1.1218982417030496, 0.567170185325859, 0.4590465066334209, 0.6414203316649082, 0.9499263148164698, 2.500361124794014, 0.6248394066847915])" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "sample(funnel_model, ss, 1000)" + "Asamples[1].z.ℓκ" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8869229b", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAArEAAAL3CAYAAACd2x1cAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAABSGElEQVR4nO3deZhdVZko7q9SSSpzDCEQyMg8CAISAXEABAGNA91Kc69oA3qx9QcOHRwCigH1CijigArN7StIq7cRRW1AEEQDtuIAJC20BBOkOiEkEIikkhAy1fn9YXP2OkXtyqmkqk6tqvd9njzPqn3W3nudU5XKl7W+/a2mSqVSCQAAyMiQRg8AAAC6SxALAEB2BLEAAGRHEAsAQHYEsQAAZEcQCwBAdgSxAABkRxALAEB2BLEAAGRHEAs0xMyZM6OpqSmampri+9//fmm/E044IZqamuK6667ru8F10NraGk1NTTFz5swXvfbC++hNL3xOXf350Y9+1Ktj6C8uuuiiaGpqiosuuqjRQwEabGijBwDwiU98Ik455ZQYOtSvpK6cdNJJMXny5E5fmz59eh+PBqCx/IsBNNSoUaPiT3/6U/zzP/9zvO9972v0cPq1uXPnxrHHHtvoYQD0C9IJgIb60Ic+FBERn/70p+O5555r8GgAyIUgFmioN77xjXHMMcfEihUr4ktf+lK3z7///vvj9NNPj+nTp0dLS0vstNNOcdJJJ8VPfvKTTvv/8Y9/jHnz5sWrXvWqmDJlSgwfPjwmTpwYJ5xwQnzve9/b0bdTtWLFivjQhz4U++67b4wYMSJGjRoV06ZNi+OPPz4uv/zyHrtPR8cee2w0NTXF/PnzO329LKc0Pb5q1ao455xzYtq0aTF8+PCYNm1afOADH4hnn332Rde77rrroqmpKc4888xYv359nH/++bH33ntHS0tLTJ48Oc4444xYvnx56XifeOKJmDNnThxwwAExatSoGDt2bLziFa+Ir33ta7Fly5Yd+CSAgU4QCzTcZZddFhERn//85+OZZ56p+7yvfOUrccQRR8R3v/vdmDhxYrzlLW+Jl770pTF//vyYPXt2fPrTn37ROVdccUV8+tOfjtWrV8fBBx8cf/u3fxv77bdf/OIXv4jTTjst5syZs8PvZ+XKlTFr1qz46le/Ghs3boyTTz453vKWt8Qee+wRCxcujM9+9rM7fI/esmzZsnj5y18eP/jBD+KII46I17/+9bF27dr42te+FieeeGJs3ry50/PWrFkTRx99dFx99dVx4IEHxhve8IaoVCpx/fXXx6te9apYs2bNi86555574qCDDoovfelL8fzzz8frX//6eNWrXhWPPvpofOADH4jZs2eX3g8gKgANMGPGjEpEVH75y19WKpVK5W//9m8rEVH5x3/8x5p+xx9/fCUiKtdee23N8dtvv73S1NRU2XnnnSt33313zWt/+MMfKlOnTq1ERGX+/Pk1r82fP7/y6KOPvmg8ixYtqp7z29/+tua1xx57rBIRlRkzZtT13i6++OJKRFTe+973Vtrb22te27RpU+VnP/tZXdd5QURUIqLyi1/8Ypt9jznmmC77zps3rxIRlXnz5nV6PCIqZ555ZuX555+vvrZ06dLKlClTKhFR+e53v1tz3rXXXls976STTqqsWbOm+trq1asrhx56aCUiKp/73OdqzluxYkVl4sSJlaampso3vvGNytatW6uvPf3005XXve51lYioXHzxxXWNHxh8zMQC/cLnPve5GDp0aHzjG9+I//qv/9pm/3nz5kWlUomrr746Xvva19a8dvDBB8cVV1wRERFXXnllzWvHHHNM7Lnnni+63n777RcXXnhhRESXJb/q8eSTT0ZExMknn/yi8lvDhg2L448/fruue9xxx3VaXuvMM8/cofGmpk6dGl//+tejpaWleuyFdIKIiJ/97Gednjd69Oi49tprY9y4cdVjEyZMiLlz53Z63pe//OV45pln4pxzzon3v//9MWRI8c/RxIkT4/rrr49hw4bF1772tahUKj32/oCBQ3UCoF/Yb7/94t3vfndcc801ceGFF8b1119f2vfpp5+O3/3udzFy5Mh485vf3GmfF57i//Wvf/2i19atWxe33XZbLFiwIJ5++unYtGlTRPw1jzUi4pFHHtmh93LEEUfEN77xjZg7d25UKpU48cQTY8yYMTt0zYjyEluvfvWrd/jaLzj++ONj1KhRLzp+wAEHRESU5rfOmjUrdtttt7rPu/XWWyMi4rTTTuv0elOmTIl99tkn/vjHP8bixYtj3333rf9NAIOCIBboNy666KL49re/Hd/5znfiIx/5SLzsZS/rtN9jjz0WlUolNmzYUDNj2JlVq1bVfH3zzTfHWWed1WXubVtbW/cHn3jXu94Vd955Z3znO9+Jt73tbdHc3BwHHnhgvPrVr463v/3t8brXvW67rtsXJbbK6s2+MMP6/PPP98h5f/7znyMi4jWvec02x7Rq1SpBLPAiglig39htt93iQx/6UFxyySVx/vnnV2frOmpvb4+IiDFjxsTb3va2uq+/fPnyOO2002LDhg3xsY99LE4//fSYOXNmjBkzJoYMGRJ33HFHnHTSSTu8fD1kyJD49re/HRdccEHceuut8atf/Sp+9atfxVVXXRVXXXVVvPnNb44f/vCH0dzcvEP32R4vfHZl0mX97ujueS+M4+1vf3uMHj26y74TJ07crjEBA5sgFuhXPv7xj8c111wTP/nJT+Kee+7ptM+0adMi4q/bsX7zm9+sO4C6+eabY8OGDfE3f/M31YoIqcWLF2//wDtx4IEHxoEHHhgf/ehHo1KpxM9//vN4xzveETfffHNcf/31cdZZZ/Xo/SIihg8fHhERa9eu7fT1evKN+8K0adNi8eLF8fGPfzxmzZrV6OEAGfJgF9CvjB8/Pi644IKIiPjYxz7WaZ/dd989Xvayl8XatWvj9ttvr/vaq1evjoiIGTNmvOi1SqUS3/3ud7djxPVpamqK448/Pt7xjndERMTChQt75T5TpkyJiIiHH374Ra8999xz8Ytf/KJX7ttdb3jDGyIierQ2LzC4CGKBfuecc86J6dOnx29/+9u49957O+3zQq3Vs846K26++eYXvV6pVOK3v/1t3HHHHdVjLzxk9P3vf7/6EFdExNatW+NTn/pUpw+BbY/rr78+7r///hcdX7t2bXUTgs4C6Z5wwgknRETE17/+9ZqHqdavXx/vfe97Y9myZb1y3+766Ec/Gi95yUviiiuuiC9+8YvVh+tSjz32WHz7299uwOiAHAhigX6npaWlulFB2Va0b37zm+MrX/lKrF69Ot7ylrfEPvvsE29605vi9NNPjxNPPDEmT54cRx11VPz85z+vOefwww+Pxx9/PPbdd99405veFKeddlrstddecdlll8XHP/7xHhn/TTfdFLNmzYopU6bE7Nmz453vfGfMnj07pk2bFgsXLoyDDjoozj777B65V0d/93d/F7NmzYqlS5fGS1/60njTm94Ub3zjG2OPPfaI+fPnx7vf/e5euW93TZ06NX784x/HhAkT4iMf+Uh1N7N3vvOd8eY3vzn23nvv2HPPPeNrX/tao4cK9FOCWKBfete73hUHH3xwl30++MEPxoIFC+K9731vNDU1xV133RU/+tGP4tFHH43DDjssvvrVr8YHP/jBav+hQ4fG/Pnz44ILLogpU6bEXXfdFfPnz4/DDjss7r333jj55JN7ZOznnXdefPjDH46pU6fGAw88EDfeeGM88MADceCBB8aVV14Zv/nNb2Ls2LE9cq+Ohg0bFnfeeWece+65MXbs2LjjjjviD3/4Q/zN3/xNPPDAA9V84v7gta99bfznf/5nXHjhhTF16tT4/e9/HzfeeGMsXLgwdt1115g3b178n//zfxo9TKCfaqqoIg0AQGbMxAIAkB1BLAAA2RHEAgCQHUEsAADZEcQCAJAdQSwAANkRxAIAkB1BLAAA2RHEAgCQHUEsAADZEcQCAJAdQSwAANkRxAIAkB1BLAAA2RHEAgCQHUEsAADZEcQCAJAdQSwAANkRxAIAkB1BLAAA2RHEAgCQHUEsAADZEcQCAJAdQSwAANkRxAIAkB1BLAAA2RHEAgCQHUEsAADZEcQCAJAdQSwAANkRxAIAkB1BLAAA2RHEAgCQHUEsAADZEcQCAJAdQSwAANkRxAIAkB1BLAAA2RHEAgCQHUEsAADZEcQCAJAdQSwAANkRxAIAkB1BLAAA2RHEAgCQHUEsAADZEcQCAJAdQSwAANkRxAIAkB1BLAAA2RHEAgCQHUEsAADZEcQCAJAdQSwAANkRxAIAkB1BLAAA2RHEAgCQHUEsAADZEcQCAJAdQSwAANkRxAIAkB1BLAAA2Rna6AH0pfb29njiiSdi7Nix0dTU1OjhAOywSqUSa9eujd133z2GDDEvAQwegyqIfeKJJ2LatGmNHgZAj1u2bFlMnTq10cMA6DODKogdO3ZsRPz1l/24ceMaPBqAHdfW1hbTpk2r/n4DGCwGVRD7QgrBuHHjBLHAgCJFChhsJFABAJAdQSwAANkRxAIAkB1BLAAA2RHEAgCQHUEsAADZEcQCAJAdQSwAANkRxAIAkB1BLAAA2RHEAgCQnaGNHgDQf8yce2u13Xrp7AaOBAC6ZiYWAIDsCGIBAMiOIBYAgOwIYgEAyI4gFgCA7AhiAQDIjiAWAIDsCGIBAMiOIBYAgOwIYgEAyI4gFgCA7AhiAQDIjiAW2KaZc2+NmXNvbfQwAKBKEAsAQHaGNnoAQGOZYQUgR2ZiAQDIjplYGOBemGltvXT2dp0HAP2RmVgAALIjiAUAIDuCWAAAsiOIBQAgO4JYAACyI4gFACA7SmwBdUvLbnW3ZBcA9CQzsQAAZEcQCwBAdgSxAABkRxALAEB2BLEAAGRHEAsAQHYEsQAAZEcQCwBAdgSxAABkRxALAEB2bDsLg1C6fWxPXMMWtAD0NTOxAABkRxALAEB2BLEAAGRHEAsAQHY82AWDRE88zAUA/YWZWAAAsiOIBQAgO4JYAACyI4gFACA7glgAALIjiAUAIDuCWAAAsiOIBQAgO4JYAACyI4gFACA7glgAALIjiAUAIDuCWAAAsiOIBQAgO4JYAACyI4gFACA7glgAALIjiAUAIDuCWAAAsjO00QMABpaZc2+ttlsvnd3AkQAwkJmJBQAgO4JYAACyI4gFACA7glgAALIjiAUAIDuqEwA7LK1IAAB9wUwsAADZEcQCAJAd6QQwAFneB2CgMxMLAEB2BLEAAGRHEAsAQHYEsQAAZMeDXZCx9AGu1ktnN3AkANC3zMQCAJAdQSwAANkRxAIAkB1BLAAA2fFgFwwQdukCYDAxEwsAQHbMxEJmzLgCgJlYAAAyJIgFACA7glgAALIjiAUAIDuCWAAAsiOIBQAgO4JYoNfMnHurkmAA9ApBLAAA2RHEAgCQHUEsAADZEcQCAJAdQSwAANkRxAIAkB1BLAAA2RHEAgCQnaGNHgBQH5sGAEDBTCwAANkRxAIAkB1BLAAA2RHEAgCQHUEsAADZEcQCAJAdQSwAANlRJxbodWmN29ZLZzdwJAAMFGZiAQDIjiAWAIDsCGIBAMiOIBYAgOwIYgEAyI4gFgCA7AhiAQDIjjqx0I+l9VUBgIKZWAAAsiOIBQAgO4JYAACyI4gFACA7glgAALIjiAUAIDuCWAAAsiOIBQAgO4JYAACyY8cuoE+lu5C1Xjq7gSMBIGdmYgEAyI4gFgCA7AhiAQDIjiAWAIDsCGIBAMiOIBYAgOwIYgEAyI4gFgCA7AhiAQDIjiAWAIDsCGIBAMiOIBYAgOwMbfQAgIiZc2+ttlsvnd3AkQBAHszEAgCQHUEsAADZkU4A/UyaWgAAdM5MLAAA2RHEAgCQHUEsAADZEcQCAJAdQSwAANkRxAIAkB1BLAAA2RHEAgCQHZsdAA2TbuzQeunsBo4EgNyYiQUAIDuCWAAAsiOIBQAgO4JYAACyI4gFACA7glgAALIjiAUAIDuCWAAAsiOIBQAgO4JYAACyY9tZaJB0y1UAoHvMxAIAkB1BLAAA2RHEAgCQHUEsAADZEcQCAJAdQSwAANkRxAIAkB1BLAAA2RHEAgCQHUEsAADZEcQCAJAdQSwAANkRxAIAkB1BLAAA2RHEAgCQHUEsAADZEcQCAJAdQSwAANkRxAIAkB1BLAAA2RHEAgCQnaGNHgAMJjPn3troIQDAgGAmFgCA7AhiAQDIjiAWAIDsCGIBAMiOIBYAgOwIYgEAyI4SW0C/kJYfa710dgNHAkAOzMQCAJAdM7HQB2xyAAA9y0wsAADZEcQCAJAdQSwAANkRxAIAkB1BLAAA2RHEAgCQHSW2oJcoqwUAvcdMLAAA2TETC/Q7tqAFYFvMxAIAkB1BLAAA2RHEAgCQHUEsAADZEcQCAJAdQSwAANkRxAIAkB1BLAAA2RHEAgCQHUEsAADZEcQCAJAdQSwAANkZ2ugBwEAyc+6tjR4CAAwKZmIBAMiOIBYAgOwIYoF+bebcW6VpAPAiglgAALIjiAUAIDuCWAAAsiOIBQAgO4JYAACyI4gFACA7glgAALIjiAUAIDuCWAAAsiOIBQAgO4JYAACyI4gFACA7Qxs9AMjdzLm3NnoIADDomIkFACA7glgAALIjiAUAIDtyYoEspLnHrZfObuBIAOgPzMQCAJAdQSwAANkRxAIAkB1BLAAA2RHEAgCQHUEsAADZEcQCAJAdQSwAANkRxAIAkB1BLAAA2RHEAgCQHUEsAADZGdroAUCOZs69tdFDGNTSz7/10tkNHAkAjWImFgCA7JiJhW0w6wcA/Y+ZWAAAsiOIBQAgO4JYAACyIycWukFVAgDoH8zEAgCQHUEsAADZEcQCAJAdQSwAANkRxAIAkB1BLAAA2RHEAgCQHXVioRPqwQJA/2YmFgCA7AhiAQDIjnQCIGtp6kfrpbMbOBIA+pKZWAAAsiOIBQAgO4JYAACyI4gFACA7HuyC/6Y2LADkw0wsAADZMRPLoGb2FQDyZCYWAIDsmIkFBgwbHwAMHmZiAQDIjplYYNAwUwswcJiJBQAgO2ZiGXRUJBhcfL8BBiYzsQAAZMdMLDAgmYEFGNjMxAIAkB0zsQwaZuYAYOAwEwsAQHYEsQAAZEcQCwBAdgSxAABkx4NdDGge5gKAgUkQCwxK6X9wWi+d3cCRALA9BLFkSxACAIOXnFgAALIjiAUAIDvZpBNccsklcdNNN8WiRYti5MiRcfTRR8dll10W++23X6OHRh/oTuqAh7nYEdJUAPKQTRB79913xznnnBOveMUrYsuWLXHBBRfEiSeeGH/84x9j9OjRjR4ePWR7AwiBK72hs58rgS1A/5BNEHv77bfXfH3dddfFLrvsEvfff3+89rWvbdCoaAQBKz3NzxRAfrIJYjtas2ZNRETstNNODR4J27Kt2dWyAEJgQX9X9jNqthag92UZxLa3t8eHP/zheNWrXhUHHXRQab+NGzfGxo0bq1//5S9/iYiIxx9/PMaNG9fr48zVUZ+7q9r+zQXHb7PPtvpuaXu62p76/33rRX3T16G/e+FnuCuPP/54H4zkr5599tmIiFi9enWf3ROgN1UqlVi7dm3svvvuMWRIeQ2CpkqlUunDcfWI97///XHbbbfFv//7v8fUqVNL+1100UVx8cUX9+HIAADoCcuWLesyzssuiD333HPjxz/+cdxzzz2xxx57dNm3s5nYmTNnxqvjjTE0hvX2UAF63YZYH7+Nn8WyZcusMAEDQltbW0ybNi2effbZGD9+fGm/bNIJKpVKfOADH4gf/vCHMX/+/G0GsBERLS0t0dLS8qLjQ2NYDG0SxAL5G1YZHhER48aNE8QCA0pTU1OXr2cTxJ5zzjnx3e9+N3784x/H2LFjY+XKlRERMX78+Bg5cmSDR0fOmseOrba3rl273X3oPennH+F7AEBGO3ZdddVVsWbNmjj22GNjt912q/654YYbGj00AAD6WDYzsZml7gIA0IuyCWKht9SzNJ326eulbakMg/d9A1Aum3QCAAB4gSAWAIDsSCeAbqp3abun0gC6SmWop18995ayAEBuzMQCAJAdQSwAANmRTgAldnSJvTeW5eu9Zn9JCZCmAEBvMRMLAEB2BLEAAGRHOgEDTm9UBegt/WW5fUfvXfY+yq7bX943APkyEwsAQHYEsQADwEHzftroIQD0KekEDAi9Udy/3muWbUBQzzj6y1J6V5sovKCrsXb3ffTk+5aaADA4mYkFGAAeuvikRg8BoE8JYgEAyI50AgaE3ljO3p6NBZpmHVxtNz/S2q0x1XPvjsv+ab+yZfUdWW7fnuX53hhHV6QQAAxOgliAAeCgeT+NIS2jIiKi9dLZDR4NQO+TTgAAQHbMxDKgDZ2ye7W9ZfkT1XZPVico092l9HoqBNSru9fqyQoNZf0s+wPQkwSxAAOENAJgMJFOAABAdszEMqClKQT12J4l/Zql9Pse7F7/kiX2sjSIjv13JAWhnioC9ZIqAEBfMxMLMEDMnHtro4cA0GcEsQAAZEcQCwBAduTEko2e3PFpR8pAdZUzWvZaPddtGlecW285sB35HNJzh+6/T7VdWb5yh67f3e9TT35fd+TzHyg6phSoWAAMVGZiAQDIjplYgAGss4e9zM4CA4Egln6hnmXgepeEd2R5uuzcspJXHc9JpekBUVLCKu1Taet+mauya5UaO7ra3LJocTK+9dVm+34zi+s/0lp6qbKxd3ensp7cMW0wpQ0ADHbSCQAAyI4gFgCA7EgnoF/oyafYdySFoOx4WbWAiPJl9XrSA9LrlqUspMeHdkgZqOlXMo6a8SWVB5pmHVxcJ9lprGm3iUV7yuROz+14j1Q9n2c9KQd9URkBgHyZiQUAIDuCWAAAsiOdgB7T20Xuu+rT3SL36RJ9qmwZP7pY5k6X8WsqBCSVAGrGNGZEtV329H+6+UCq45J+2m/93hOq7bbpxV/tyf+SpAok6QHN654vxpSkFgxJx9RFxYOy6g01qQzJ/dIKCGWpD2U6fn/rSUfYnkoTAOTDTCwAANkRxAIAkB3pBPSY7j4NviNPj9e7vFymrDh/qia1IF3eT5bFO16rdoODpF+SWtC84pni3PRCJRsRpMvf6UYEERFbxwyrtkfd/XC1PezwYrw1mxckKQSbJhdjHb44SVMY13lVhrSaQUSHVIg0dSKt0NAh/aE67jrSPGru3TGtoSS9o54UFSkEAAODmVgAALJjJhZgkJk599YeuU7rpbN75DoA20MQOwgNhILw9Y47fa9lmxKkqQI1lQOSpfc0NaDj0/Q1Y0na7ce+vNquWa5Plt6bSioY1CzdJ+kHHW0eU/wVHp5UAkjvtzXZvCCtYDBi5YZqe9M+xbnD7k9SGdI0ig7j2JqmKZSMsawqQJSlf6RpF2O7V8Gg4/26ayD8vQAYTLJKJ7jnnnvizW9+c+y+++7R1NQUP/rRjxo9JIBBq6dmdAG2R1ZB7Pr16+OQQw6Jr3/9640eCgAADZRVOsEb3vCGeMMb3tDoYWSvt5ZKu7vhQD3X2Z6xlp3TnLTTJ/Yr9xWbAdQsYdd5v5pl8mQ5fFPSp6aCQXI8XcZPUwNSI6JIB3jqiNrPeLefryrukVQCqNnUIF3qnzy103uUpSU8fdTO1fbOv6k9p2azhCRlIf2ch6abHSTWn3pUtT3+10uLF5K0jS43jlhU8j3egZ+d7lY5AKCxsgpiu2vjxo2xcePG6tdtbW0NHA3AwNPIlAIPlsHgllU6QXddcsklMX78+OqfadOmNXpIAAD0gAE9E3v++efHnDlzql+3tbUJZOu0PcupPZU2UJoO0MUmBvUUzy/dcCCtYFCy/F2zVN+x8H4iffq/5ZbfFeckT/mXVQhIpRUC2k5+abW9y+/KP+OOGyG84KnXTaq20/SDdByjFzxeba94a3Gd9H5rDi5SBiIixt3+n9V2c8nSf3qP1JjHirSBdPOBsu9xxyoO9aSulG2cUPZzV1bJIk2P6HgOAI0zoIPYlpaWaGlpafQwAOgmqQLAtgzodAIAAAamrGZi161bF0uWLKl+/dhjj8XChQtjp512iunTpzdwZANPXyyZ1pM2UE+aQVfSqgBbkyXldKm5Zgl6bXHvmg0Alne+WUFEbarB6CV/KV5INwpIpCkETxxT3G/c0vZqO60QMP7BIvWh45J+RDGWzaOLugfjWosHGreMLHqvSFILxi3dUlz36OmdHk8N3dBe83WaerFpcnmKRXWkScpC+hluTTd2eKS1OJ5+vztUIyhb+k83UUhTCOpRtmlFT1L1AKDnZBXE3nfffXHcccdVv34h3/WMM86I6667rkGjAqCn9WTVA6kJMDBlFcQee+yxUanUW70TAICBKqsglsFhR4vOl50zNF3eT4vqJ8vZW5PrDF+cpBAkS+cdl/THjBlR3DvZAKBsiX3DpOHV9k6PFEv3aZpBem7af+SqdAuFWkM3FH+dm9dtLs55pni4MU0zSK9bk4pw+8PV9p8+U1RGaH6uNoV+7wXFZzg8Ob41+TzSzzBNzyiT3iFN+UjTQjpKX6upRlGiu2kGPUkKAUDPEcQCMKD15oYMUhWgcVQnAAAgO2Zi6VPdTQ+oaxODqF0iLit4XyPd+CBJAdiyqNhkoGYThKR/Wqg/ImLrmGGdXmvI/Aeq7VX/39HVdvr0/4ad01L6RRmBLSOL/1+mS/3PTRoRqWHPFTniw9YX7aVvKMY+oihuEJvHFH/l0/exbo/i/T3ztoOq7VHLinunqQ8RtRUN0goK6ecRuxWpF8NXbvv7venwIuWjJp2jg/R73H7sy6vt9DOvZ1ODeq4PXdneWV4zuLDjzMQCAJAdQSwAANmRTsA29WSB9u6eX3bvjk+Yp2kDNakFyXL2kJJC+mnVgqaSwvtpmkHHFIWn3jqz2h6XLNdvOOqV1fYuvyvuly7dj3y6qIeQphDUViEonv1PqwtERDxzYJFesHlUsfQ//bbOP+d0c4XYr/ONFjZM7DyFIK2eEBGx5J3pRgs7l47xBev3nlBtD1tXXLdtZlE9YcJD66rt9HuXpiVERDQl7WH3F9+bpvR7k6aMLC8O17PJhk0J6G3dSUOQegCdMxMLAEB2BLEAAGRHOgHb1FvLqfUs2da78UGaQpD2a0qqBaw/5oBqe9TdRUH/mjGV9B+95C+d9o+orRCQSpf306X3cX8q/u84alXRf+iGZEk/2Yhg9f7J/zX3r61OMHZZce9n903ut29xv4kLi+PrXlYs9Y/5Q7GM/9yk4h5Dk6yBx08ojo/7U+1T/ZN/1Z58VYwjrUKw5O8nVdt73FQcTysY7Hznf1Xb6YYI6XUqy2srFWxOqhhU0tSQccUY0xSQ7lYkSFNGmrvoB32hp+rcSktgoDETCwBAdgSxAABkRzoBAAwCO5KWIBWB/kgQS8N0N7ewKcl3jA7nluU8prmUo9cWO1R1nsUaEUmfEStHbLNPRMSw9UX5p7R01PMTi79ek39V9G8rNrqqyXcd+lzRTktbbUqqSzU/V7t4suqookTXKw76c7W98J59q+3No4r+O00sSlitflnyHpYX+bGTFhS5rmnZry3FhmIRUbtL19NHFSW2ls3uPA/2+ckdLvDf2l4/o9ouy4/dcHBtia3RN/6m2k5LpJXlwZblVjdNKe6RntuxhBsA/Y90AgAAsmMmFgDoUk9VSIiQmkDPEcTSp8qW/etJLSgro9Xx/NJl5KR/uoycphy07zez2k6Xv0ckFZ62Tq699/hfL622l5xTnL/br7dEZ3Z6pL3T40tP3Zp8VSzvv2TvYtn+ud/WLqu3LC7+Cj+8uEghmH5/USps+WuKtIjnHx9fbU/6TfGJPHNoMaan/+65anvTMyM67R8RseJ1RdpA277F+aOWFSW90h3C0hSJmh27pnf+a6hsJ6+IiOYkhSBNZdg5TRlpq6M826LO+6QlvNIdwV50fh3s/gXQOwSxAECf6clZ3d5itjgPcmIBAMiOmVj6VNlyaj1LrtuzLJvuvJQuL6dPojfNOrjaHvJIa7U9bEyxpJzuMJXuphURMXxlsTvW9DuKZfzNY4q/Xht2Lpbi0528UiOWFP3HLS2W559IUgDGPFdzSm2/N22utp+bVoyxOT1nZJGysHlUcb/hzxRjGrpsTLU9JKlsMPLp2vSItYel5yc7eyVjSnchS6WpAuOWFtddc3RRuqFjCkGZsn5llQfKUlrS6hdD5j9QvFDHbl8dr5v+fNa76xwA3SOIBQBI7GjKg3SEviGdAACA7JiJpV/Y0SXXeioSpMfTFILKfQ9W2+3J8eEri/6bkooEaTWCiA5F+ZNUg+cmFf9HfD4pKjB2WbHVwrjWjdX20hOLSgBt04tzRywv2s9Nq12e33RUkSswZHmx9t8+oUgtGLWsWLqfesSqavuxlxXjHrG8+FVwwN/8qdp+8KdFxYPV+9X+utg0MUkbmFKM44kpxft4yR86/xUzalXnaQYjV20qrpNUNtj97tqfg61jins0ryiqN2zdbWKnx8vSSmp+vrbjZzC9bj0bJEgtAOg5glgAgB4kHaFvSCcAACA7ZmLpd+pZWu1qs4N6lnjTKgRNSf9Y9/yLO3c0dnTNl2naQfO6Ypl76IZis4Tdfvx4tZ1uiLBhYtF/66hiif25pCpA83PF/zXTZfuIiE3PFVUTzj/p36rtK//5lGp73T5JVYHbphbt5PhuxxTj+48Vxeexae8i3WHEkiItISJi3J+KcU046Nlq+7FnijSFsjSKNG0greLQvK5Ig9j1/uLcdOOJiIjRC4rxpt+P5vT7l36fkk0QUunPSipNOejYJ/2ZqmtDhRJSCAB2jCAWAKAXSAvoXdIJAADIjplY+p2yYvSprpZiy5Z402L2pUqWnYctX1l80eE66RPx6aYITyWbAQzdb2a13VI8NB+bjioK9TcvLjYZGJ2slq9PMgDGjCyW9yMiVifpBJfc/aZqe8So6NQfzruq2j7+j2+uth9bPqnaHj5qc6ftEc/UphM8+7IiHWHI88Vy//Rbij5bRhYpEqsOK/7PPPLp4rMZtq64Tvr5pakFHa0/rPhQRqzcUJyTVCRIq0bUfP8SaWpA2c9d+vPU0Y6kBKhOALBjBLEAAL1gR6sU9Lbc0x2kEwAAkB0zsTRMPWkDqXqXXMsqFaTKCt4P3X+fTvs3Je10mToiYvjiYqn6+WSZe5cFxTJ5umT+zIFFRYL4TZFCMLRYFY/njivSDDYnKQNr/5A87h8RL0nSDp6vfam49+rir3maQrDxn5LP5vhi2X/MxOLe40cUg/ofH/hZzXXTCgjtybhWHF30mbSg800N2qanv3qK9pakCEFanaBjakFaESKVpnak35eYMrmT3hHNy5Nzy34OOqaY9NDSvxQCoNHSmeIcZ2XNxAIAkB1BLAAA2ZFOQMP05HJq2ZPe9exnny4dbx0zovNOyfGaZeqImqL66ZPy6ZP2GyYNr7ZHrSqW2NOi/2mawZQJz1bbK/5QpChsmli7PP/skcUy+5g/FNUD0g0O9ti7GO+qZLODAz70p+J+yTUX3rNvcp0iteCLfzmh5t6v+x8PVNu33/+yanunqWuq7bZniuX9NLVg9f6d//853RChy+oEe0+ottNUjWH3L662Nx1efF/T9IMti4o+ZSktaZ+u1LOxBkAOuvsQWn9IPzATCwBAdgSxAABkRzoB/c72FIGvp19pMfukEH5zupFBkiZQo+x4B7VP0I/t9PimycXxdPOA9b8rlv23JikEh89aUnOPR58tluvXTizSCc4/pthx4IsPFWkA93z4C9X2Ubf+Y7WdphxsHZWkLCwvdk1ofq72/7zP7FZUVhizuPhVsjrGF51eVmzOMHRDMb6dFrUnx4v2hp2bozNpakZEhw0O1j1fbacpBGVKN8BIfoaaZh1cbVfue7D0WmWbJZT9PNrgAOhP+kNKwI4wEwsAQHYEsQAAZCe7dIKvf/3r8YUvfCFWrlwZhxxySFx55ZVxxBFHNHpY9KDeWopNzym7VrqYvTVZKk6fQk8L6kdEPD95ZHRmy8gi7WD8g89U22kKQVqRYEzyQHxaXSDdrOD3j86oucfutxTL7Bdfcm21ff5VZxX3S5b0f7yuWG5PqwikZhxUvO/9xj9VbR82ZmlNv3++7K3FF8lHMmJ5Md5RRxb3GLGqGGtaneD5KUU6waTfFNd56ojicxq3tPg8IiI2jynuMWzdsE6Pj15Q7ARRtuyfpobU/EwkKQQd01DKfvbq+ZmUQgD0JzlWJEhlNRN7ww03xJw5c2LevHnxwAMPxCGHHBInnXRSPPXUU9s+GQCAASOrIPaKK66Is88+O84666w48MAD4+qrr45Ro0bFN7/5zUYPDQCAPpRNOsGmTZvi/vvvj/PPP796bMiQIXHCCSfEvffe2+k5GzdujI0bi6XUtra2Xh8nvacnl2LruVaaQlBp6zzlICJi2JjJ1Xa6EcL6w4oKAyteN6naTjc7GPZcUdx/3NKtxb03dP5Xs21U7VP66bJ8mkKwLkkhGD6q2DQgrVRwyG7FEvvvH9qzGFOSvrDza5+rtq+69pSae29JUghGPlO8j1X7FO/j4JcUaRQP7l+cMLS4bEz6TfGJDltf6bTdUVrFIK1UkG52EFMmx7aklSlS6QYYZX06UnkAGOjK0g8alWaQzUzs008/HVu3bo1dd9215viuu+4aK1d2/o/MJZdcEuPHj6/+mTZtWl8MFQCAXpbNTOz2OP/882POnDnVr9va2gSyAAA9qFEztNkEsTvvvHM0NzfHk08+WXP8ySefjMmTO182bGlpiZaWlk5fY3Ar2/igZhk4aZelFkRENK+rrVbQmTRtYPPopuJ4yZL588klp/yyKOa/ZeSImn6bjlpXba97pnhtyF+KtIPxvxheba86blO1nVY6SFMIph5RPNU/saW4/u+PLFIUImrTFIaPLF4b9odi8A//cN9qO/1ls6XYQyHG3V+cu/TE4j285E/FZzNyVW11gmHriq+bVxQpC5FsXpBWgRgeySYIa9cX40grUCQpBFsWFWkJHX9WytIGtpb8vKT3AKDnZJNOMHz48Dj88MPjrrvuqh5rb2+Pu+66K175ylc2cGQAAPS1bGZiIyLmzJkTZ5xxRsyaNSuOOOKI+PKXvxzr16+Ps846a9snAwAMUP2thmtfyCqIPe2002LVqlXxqU99KlauXBmHHnpo3H777S962AsAgIEtqyA2IuLcc8+Nc889t9HDIHNlJZDSXMZUxzzYeoxe8pdqe8TKItezeV2R47rk74vSW5MWFOeOSNI8012o0lzSiIghfxhTnJMcH3VkcYGteycvPFP0jw1FmarT3zS/2v63pQdX24/ELtX2K/b6r5p7/8eK4rN6dsmEanvygqKE2NN/V9TS2pTk7O5+V5HJlObBTr+j+Gw2TCpyedPPoKPhya5bW8cU10rLnW0p2X0tVVZKq95yWfJgAfpWdkEsAAC1OlYIGAzpBdk82AUAAC8wEwuJdBk4LaXUNK7zklwREUMeaa2204JZzyU7do1eUJStSlMTdvt1sQyf7kKVapte/DV9fkqHUlNJaazRxS1idUnawPCJSbmupAzXHZ95bbU9/h+Kz+Cx5UW6w3/9pXa3sJfsXaRLrJ5QvPbEm4o+079VLO8/fkLxf+bnzyjOnfSt4jNY/pqi/y4LiveapmZERKzfuzgnLZkVSTrB1t2SHcKSc8uW+mu+x12kEJSV2Cr72bF7F0DvMBMLAEB2BLEAAGRHOgEDTtluXKl6lnjTPp0v9P9VugydLimPuvvh4lr7zez0WltGFv+P3DyqKbZlzOLav7Ibk5290l2+0hSCNOWgsrpIM2jfqViuX71/0af9Ly+ptneaWOzYtekPtTuTNS/cqdoePrtY0j9kt+IzWDy92LFr8q+KqgWrniuutWl6cc2hRTGDGLFyQ7Vdkz7Q4bU0bWDrmCKtYdj9xa5baZpHujNXTUWCpMpBV+kAduYC6B8EsQAA/cRgqCrQU6QTAACQHTOxDDjdfRq8bOm4LC2h4/XT9IB0eTmtQpBucJAuf6cm/rHzQv+pMY+tr/n6T/9rZLW9OTmebiaw8lXFMn7zc8XxEcuLv/5jlxUL7mujSDkYs6B42r8tWfaPiBjzzuXFeG8rKjEs3lCkELTtW9z72SOLEe51bXG/5nXF8ecnF+9n3R7F8v74B5PdH6I2vWDYuiItYsj8B6rtpiRtYMuiIrWgaczMon9yzbRPPSkpEeUpBCoSAJ0xy9qzzMQCAJAdQSwAANmRTsCgV7b0W09qQUdpCkF7WpEgSSdIdUwPeMH4xcVT8+uTTROaV9Quq49YXtxj+m3FvR/722K8e/youPfSE4v0gHTjhE0T0//PFkv9K44ufkW85E/pM/4Rj/+uGFdLcnxLkREQo5YV1x25sEiRGL7y6Wp7zcFFekX6efzloCKtoWN1go6bH1Ql6RypNM0jks8wfUc2KIC8WaoffMzEAgCQHUEsAADZkU7AoFTP0nG9KQTpZgdpOsGQR1qLeySpBTX3SNIM0mX1ccm56dJ5mloQETHll8X56ZP90+8oji9/TZFC0JJkI4x+vPjrn1YRmPqzor301KJywJp90voHEbG4WO4ft7Q4Z/PoYtOGdAOHtdOK9sini/SAoRuKc9OKBCOf3lptpxtHRESsP+aAajutTjAs3bwg+V6UbUiRfo/TPiGdAHqVpX96gplYAACyI4gFACA70gkYlOp5+rzeNIN6lqdrUgvS6yZPzY//dfFkfpp+kD6lP+GhdTX3Tl8b17qxGEeygcCUXxb9nzy8SC0Y9lzxbH5NCsGbiv5j/lDUHXhu2rCae8eo4pznJhX/H16fZDykFQ22jCzSCdKqB5MWFNdJqxOklRg6pmOkKRaVJIWgacrkotPa4lppmkeqLBVEpQLYcVIG6G1mYgEAyI4gFgCA7EgnYNDb0aXjshSCdHm6Zpl70bbvkVYt2PnOpKTA2NE1/ca1dlji7/RaRWrB0A1JOsH6SmfdY4+9i+X5jXcV6Q7PTevQ70ebqu00TWFrkmaw6qgkVWBx8etmj5uKz2DrmOI91FRrOHp6p+OLiBj/YOebR6QpBGmaRyr9fpX16YpUAwYbaQH0V2ZiAQDIjplYABgEzKgy0AhiYQelS8pDx3W+1Ny8vOg/NKlIUPrUfJ33bptZVA9IqxOk0iX6LSOL8aWbDGzYubk44dtTiuPTi5FMXFibfpBuojAiyXgYtaxY4Bm3ND2juF+aQrBh0vBqe/OYYhOEtunFdab9a2vNvbfuVmwMUUk+52ffdlC1/ZLrilSBej7zetMEpBAA9A/SCQAAyI6ZWAAYQKQNMFgIYhn0urs83FX/sqXqelIOhu6/T3FC8pR9asuixTVf75zeY0yxvJ9uFJA+5b/r/UVqQZqKsHlU5wkMOz2ypdPjERHP7lv8+ni+WN2PrSOTTkk6QbohwtANQ5N2kWYw6u6Hk3ZynbS6Q9SmSFSSNICJP3io2m5KUgjqqUJQ873o5rkA9D3pBAAAZMdMLAD0MUv+sOO2K4h9/PHH49/+7d9i6dKlsWnTpprXrrjiih4ZGDTa9hS1L+tXVmA/PV5ZvjI6s/nwIs1g82FTa14buuQv1faQR1qLcew3s9NrDV9c3GPCuiIHIK0WMHxl8R6W/P2kok+yiUFExKhlyTg2FO0tSTrBmMfWJ32KF0Yn407TIFa+6+Bqe9zSIpVh9ILHX/xm/lvNRhJJGkaa2lGWqlGWKtBVCoHNDgD6h24HsXfddVe85S1viT333DMWLVoUBx10ULS2tkalUomXv/zlvTFGAACo0e2c2PPPPz8+8pGPxIMPPhgjRoyIH/zgB7Fs2bI45phj4tRTT+2NMQLAgDJz7q2NHgJkr9szsQ8//HD8v//3//568tChsWHDhhgzZkx8+tOfjre+9a3x/ve/v8cHCY2wPUvFZUvNNRsfJH1STUnVgnQpPE0BGB611ifpBatnF0v/aVWB8b9e2mn/dEn/qSOKew9Lqha0JJsYPDeq9t5pCkFanWD6bcXY1+0xOulfpCMsS8aaVkwYtaroM2xd8R7SzQ0iaqsTpDbtU6QWDJmfpG0s76x3+SYIO7rZgZQDgN7X7ZnY0aNHV/Ngd9ttt3j00Uerrz399NM9NzIAACjR7ZnYo446Kv793/89DjjggHjjG98Y5513Xjz44INx0003xVFHHdUbYwSAAWdHUwpUOGCw63YQe8UVV8S6desiIuLiiy+OdevWxQ033BD77LOPygRQh7LUgrKNEsqOR9SmBIxekGyQMLZYxi9LIdg0ubh3uoyfeubQStFnWfnCzS4LiqX/shSCESuL/INpC4o8hTRVYNz9xWYOTR02OKiRVBhIzx8y/4Hyc17on37+2+z94vSPetIDpBAA9L5uB7F77rlntT169Oi4+uqre3RAANAfmfmE/qXbObF77rlnPPPMMy86/uyzz9YEuAAA0Fu6HcS2trbG1q1bX3R848aNsXx5ySPAAADQg+pOJ/i3f/u3avunP/1pjB8/vvr11q1b46677oqZM2f26OAgNzuSC1l2brrbVNmuXl0p2x1r6YlFe7dfFzmtaWmrvb+9ufS6z08uduBavV/xq2T3u5Oc06QU1orXFWW1Jv9La9Enyd+NpMxYOtZ0N7KI2nzZyn0PJtfqvLRVWr4sSkqflZHfOrBICYCBo+4g9pRTTomIiKampjjjjDNqXhs2bFjMnDkzvvjFL/bo4FL/+3//77j11ltj4cKFMXz48Hj22Wd77V4AAPRvdQex7e1/fcp4jz32iN///vex884799qgOrNp06Y49dRT45WvfGX83//7f/v03gAA9C/drk7w2GOPVdvPP/98jBgxoovePefiiy+OiIjrrruuT+4HZban5FKZes5NUwg69i/biSpKynI1J8vqe9yUHF9RPKyZluQavrK4TpoOEBGxvugWkxYUpbTSElsjVw2rttMyXu37zSzunaQcpPdOS3J1LLeVphrsyO5YdtYaPKQRwMDT7Qe72tvb4zOf+UxMmTIlxowZE3/+858jIuLCCy80QwoAQJ/odhD72c9+Nq677rr4/Oc/H8OHFzu5H3TQQfHP//zPPTq4HbVx48Zoa2ur+QMAQP66nU5w/fXXxzXXXBPHH398vO9976seP+SQQ2LRokXdutbcuXPjsssu67LPww8/HPvvv393hxkR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", + "text/plain": [ + "Figure(PyObject
)" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, axis = plt.subplots(2, 2, figsize=(8,8))\n", + "fig.suptitle(\"Neal's Funnel\", fontsize=16)\n", + "\n", + "fig.delaxes(axis[1,2])\n", + "fig.subplots_adjust(hspace=0)\n", + "fig.subplots_adjust(wspace=0)\n", + "\n", + "axis[1,1].hist(x10_mchmc, bins=100, range=[-6,2])\n", + "axis[1,1].set_yticks([])\n", + "\n", + "axis[2,2].hist(theta_mchmc, bins=100, orientation=\"horizontal\", range=[-4, 2])\n", + "axis[2,2].set_xticks([])\n", + "axis[2,2].set_yticks([])\n", + "\n", + "axis[2,1].hist2d(x10_mchmc, theta_mchmc, bins=100, range=[[-6,2],[-4, 2]])\n", + "axis[2,1].set_xlabel(\"x10\")\n", + "axis[2,1].set_ylabel(\"theta\");" ] }, { + "attachments": {}, "cell_type": "markdown", "id": "e589a88e", "metadata": {}, diff --git a/Project.toml b/Project.toml index 7c201e71..0ea0b2fe 100644 --- a/Project.toml +++ b/Project.toml @@ -11,6 +11,7 @@ InplaceOps = "505f98c9-085e-5b2c-8e89-488be7bf1f34" LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" LogDensityProblems = "6fdf6af0-433a-55f7-b3ed-c6c6e0b8df7c" LogDensityProblemsAD = "996a588d-648d-4e1f-a8f0-a84b347e47b1" +MCMCChains = "c7f686f2-ff18-58e9-bc7b-31028e88f75d" ProgressMeter = "92933f4c-e287-5a05-a399-4b506db050ca" Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" Requires = "ae029012-a4dd-5104-9daa-d747884805df" @@ -20,6 +21,16 @@ Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" StatsBase = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" StatsFuns = "4c63d2b9-4356-54db-8cca-17b64c39e42c" +[weakdeps] +CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" +MCMCChains = "c7f686f2-ff18-58e9-bc7b-31028e88f75d" +OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" + +[extensions] +AdvancedHMCCUDAExt = "CUDA" +AdvancedHMCMCMCChainsExt = "MCMCChains" +AdvancedHMCOrdinaryDiffEqExt = "OrdinaryDiffEq" + [compat] AbstractMCMC = "4.2" ArgCheck = "1, 2" @@ -38,17 +49,7 @@ StatsBase = "0.31, 0.32, 0.33, 0.34" StatsFuns = "0.8, 0.9, 1" julia = "1.6" -[extensions] -AdvancedHMCCUDAExt = "CUDA" -AdvancedHMCMCMCChainsExt = "MCMCChains" -AdvancedHMCOrdinaryDiffEqExt = "OrdinaryDiffEq" - [extras] CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" MCMCChains = "c7f686f2-ff18-58e9-bc7b-31028e88f75d" OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" - -[weakdeps] -CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" -MCMCChains = "c7f686f2-ff18-58e9-bc7b-31028e88f75d" -OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" diff --git a/src/abstractmcmc.jl b/src/abstractmcmc.jl index a96568ec..0c43cddc 100644 --- a/src/abstractmcmc.jl +++ b/src/abstractmcmc.jl @@ -25,6 +25,15 @@ struct HMCSampler{K,M,A} <: AbstractMCMC.AbstractSampler end HMCSampler(kernel, metric) = HMCSampler(kernel, metric, Adaptation.NoAdaptation()) +# Convinience constructor +function NUTSSampler(ϵ::Float64, TAP::Float64, d::Int) + metric = DiagEuclideanMetric(d) + integrator = Leapfrog(ϵ) + kernel = AdvancedHMC.NUTS{MultinomialTS, GeneralisedNoUTurn}(integrator) + adaptor = StanHMCAdaptor(MassMatrixAdaptor(metric), StepSizeAdaptor(TAP, integrator)) + return HMCSampler(kernel, metric, adaptor) +end + """ HMCState @@ -56,14 +65,9 @@ end ################ # No glue code # ################ -struct HMCSamplerSettings - ϵ::Float64 - TAP::Float64 -end - function AbstractMCMC.sample( - model, # what's this type ::LogDensityModel, - settings::HMCSamplerSettings, + model::DynamicPPL.Model, + sampler::AbstractMCMC.AbstractSampler, N::Integer; progress = true, verbose = false, @@ -73,7 +77,7 @@ function AbstractMCMC.sample( return AbstractMCMC.sample( Random.GLOBAL_RNG, model, - settings, + sampler, N; progress = progress, verbose = verbose, @@ -84,8 +88,8 @@ end function AbstractMCMC.sample( rng::Random.AbstractRNG, - model, #::LogDensityModel, - settings::HMCSamplerSettings, + model::DynamicPPL.Model, + sampler::AbstractMCMC.AbstractSampler, N::Integer; progress = true, verbose = false, @@ -100,19 +104,11 @@ function AbstractMCMC.sample( # processes #vi_t = Turing.link!!(vi, model) ℓ = LogDensityProblemsAD.ADgradient(DynamicPPL.LogDensityFunction(vi, model, ctxt)) - ℓ = AbstractMCMC.LogDensityModel(ℓ) dists = _get_dists(vi) dist_lengths = [length(dist) for dist in dists] vsyms = _name_variables(vi, dist_lengths) - d = length(vsyms) - - # wrap metric, kernel and adaptor into HMCSampler - metric = DiagEuclideanMetric(d) - integrator = Leapfrog(settings.ϵ) - kernel = AdvancedHMC.NUTS{MultinomialTS, GeneralisedNoUTurn}(integrator) - adaptor = StanHMCAdaptor(MassMatrixAdaptor(metric), StepSizeAdaptor(settings.TAP, integrator)) - sampler = HMCSampler(kernel, metric, adaptor) + d = LogDensityProblems.dimension(ℓ) if callback === nothing callback = HMCProgressCallback(N, progress = progress, verbose = verbose) @@ -121,9 +117,10 @@ function AbstractMCMC.sample( return AbstractMCMC.mcmcsample( rng, - ℓ, + AbstractMCMC.LogDensityModel(ℓ), sampler, N; + param_names = vsyms, progress = progress, verbose = verbose, callback = callback, @@ -244,7 +241,7 @@ end function AbstractMCMC.step( rng::AbstractRNG, - model, #::LogDensityModel, + model::LogDensityModel, spl::HMCSampler; init_params = nothing, kwargs..., @@ -272,7 +269,7 @@ end function AbstractMCMC.step( rng::AbstractRNG, - model, #::LogDensityModel, + model::LogDensityModel, spl::HMCSampler, state::HMCState; nadapts::Int = 0, From ce96cac4b6fbc72f11011f02b861cbcdda51fa12 Mon Sep 17 00:00:00 2001 From: jaimerz Date: Fri, 2 Jun 2023 17:03:35 +0100 Subject: [PATCH 10/27] constructors + moving stuff to init_step --- src/abstractmcmc.jl | 105 +++++++++++++++++++------------------------- src/constructors.jl | 81 ++++++++++++++++++++++++++++++++++ 2 files changed, 126 insertions(+), 60 deletions(-) create mode 100644 src/constructors.jl diff --git a/src/abstractmcmc.jl b/src/abstractmcmc.jl index 0c43cddc..6ee4f4cc 100644 --- a/src/abstractmcmc.jl +++ b/src/abstractmcmc.jl @@ -1,38 +1,3 @@ -""" - HMCSampler - -A `AbstractMCMC.AbstractSampler` for kernels in AdvancedHMC.jl. - -# Fields - -$(FIELDS) - -# Notes - -Note that all the fields have the prefix `initial_` to indicate -that these will not necessarily correspond to the `kernel`, `metric`, -and `adaptor` after sampling. - -To access the updated fields use the resulting [`HMCState`](@ref). -""" -struct HMCSampler{K,M,A} <: AbstractMCMC.AbstractSampler - "Initial [`AbstractMCMCKernel`](@ref)." - initial_kernel::K - "Initial [`AbstractMetric`](@ref)." - initial_metric::M - "Initial [`AbstractAdaptor`](@ref)." - initial_adaptor::A -end -HMCSampler(kernel, metric) = HMCSampler(kernel, metric, Adaptation.NoAdaptation()) - -# Convinience constructor -function NUTSSampler(ϵ::Float64, TAP::Float64, d::Int) - metric = DiagEuclideanMetric(d) - integrator = Leapfrog(ϵ) - kernel = AdvancedHMC.NUTS{MultinomialTS, GeneralisedNoUTurn}(integrator) - adaptor = StanHMCAdaptor(MassMatrixAdaptor(metric), StepSizeAdaptor(TAP, integrator)) - return HMCSampler(kernel, metric, adaptor) -end """ HMCState @@ -95,29 +60,14 @@ function AbstractMCMC.sample( verbose = false, callback = nothing, kwargs..., -) - # obtain dimensions of the model - ctxt = model.context - vi = DynamicPPL.VarInfo(model, ctxt) - # We will need to implement this but it is going to be - # Interesting how to plug the transforms along the sampling - # processes - #vi_t = Turing.link!!(vi, model) - ℓ = LogDensityProblemsAD.ADgradient(DynamicPPL.LogDensityFunction(vi, model, ctxt)) - - dists = _get_dists(vi) - dist_lengths = [length(dist) for dist in dists] - vsyms = _name_variables(vi, dist_lengths) - d = LogDensityProblems.dimension(ℓ) - +) if callback === nothing callback = HMCProgressCallback(N, progress = progress, verbose = verbose) progress = false # don't use AMCMC's progress-funtionality end - return AbstractMCMC.mcmcsample( rng, - AbstractMCMC.LogDensityModel(ℓ), + model, sampler, N; param_names = vsyms, @@ -241,22 +191,57 @@ end function AbstractMCMC.step( rng::AbstractRNG, - model::LogDensityModel, - spl::HMCSampler; + model::DynamicPPL.model, + spl::HMCSampler, + vi # what type is this?; init_params = nothing, kwargs..., -) - metric = spl.initial_metric - κ = spl.initial_kernel - adaptor = spl.initial_adaptor +) + # unpack model + ctxt = model.context + vi = DynamicPPL.VarInfo(model, ctxt) + # make model from Turing output + ℓ = LogDensityProblemsAD.ADgradient(DynamicPPL.LogDensityFunction(vi, model, ctxt)) + model = AbstractMCMC.LogDensityModel(ℓ) - if init_params === nothing - init_params = randn(rng, size(metric, 1)) + # We will need to implement this but it is going to be + # Interesting how to plug the transforms along the sampling + # processes + #vi_t = Turing.link!!(vi, model) + dists = _get_dists(vi) + dist_lengths = [length(dist) for dist in dists] + vsyms = _name_variables(vi, dist_lengths) + d = LogDensityProblems.dimension(ℓ) + + # Define metric + if spl.metric == nothing + metric = DiagEuclideanMetric(d) + else + metric = spl.metric end # Construct the hamiltonian using the initial metric hamiltonian = Hamiltonian(metric, model) + # Find good eps if not provided one + if iszero(spl.alg.ϵ) + # Extract parameters. + theta = vi[spl] + ϵ = AHMC.find_good_stepsize(rng, hamiltonian, theta) + @info "Found initial step size" ϵ + else + ϵ = spl.alg.ϵ + end + + integrator = spl.integrator(ϵ) + κ = spl.kernel(integrator) + adaptor = spl.adaptor(metric, integrator) + spl = HMCSampler(kernel, metric, adaptor) + + if init_params === nothing + init_params = randn(rng, size(metric, 1)) + end + # Get an initial sample. h, t = AdvancedHMC.sample_init(rng, hamiltonian, init_params) diff --git a/src/constructors.jl b/src/constructors.jl new file mode 100644 index 00000000..2550a4be --- /dev/null +++ b/src/constructors.jl @@ -0,0 +1,81 @@ +abstract type StaticHamiltonian <: AbstractMCMC.AbstractSampler end +abstract type AdaptiveHamiltonian <: AbstractMCMC.AbstractSampler end + +""" + HMCSampler + +A `AbstractMCMC.AbstractSampler` for kernels in AdvancedHMC.jl. + +# Fields + +$(FIELDS) + +# Notes + +Note that all the fields have the prefix `initial_` to indicate +that these will not necessarily correspond to the `kernel`, `metric`, +and `adaptor` after sampling. + +To access the updated fields use the resulting [`HMCState`](@ref). +""" +struct HMCSampler{K,M,A} <: AbstractMCMC.AbstractSampler + "Initial [`AbstractMCMCKernel`](@ref)." + initial_kernel::K + "Initial [`AbstractMetric`](@ref)." + initial_metric::M + "Initial [`AbstractAdaptor`](@ref)." + initial_adaptor::A +end +HMCSampler(kernel, metric) = HMCSampler(kernel, metric, Adaptation.NoAdaptation()) + +""" + NUTS(n_adapts::Int, δ::Float64; max_depth::Int=10, Δ_max::Float64=1000.0, init_ϵ::Float64=0.0) + +No-U-Turn Sampler (NUTS) sampler. + +Usage: + +```julia +NUTS() # Use default NUTS configuration. +NUTS(1000, 0.65) # Use 1000 adaption steps, and target accept ratio 0.65. +``` + +Arguments: + +- `n_adapts::Int` : The number of samples to use with adaptation. +- `δ::Float64` : Target acceptance rate for dual averaging. +- `max_depth::Int` : Maximum doubling tree depth. +- `Δ_max::Float64` : Maximum divergence during doubling tree. +- `init_ϵ::Float64` : Initial step size; 0 means automatically searching using a heuristic procedure. + +""" +struct NUTS <: AdaptiveHamiltonian + n_adapts::Int # number of samples with adaption for ϵ + δ::Float64 # target accept rate + max_depth::Int # maximum tree depth + Δ_max::Float64 # maximum error + ϵ::Float64 # (initial) step size + metric + integrator +end + +function NUTS( + n_adapts::Int, + δ::Float64, + space::Symbol...; + max_depth::Int=10, + Δ_max::Float64=1000.0, + init_ϵ::Float64=0.0, + metric=nothing, + integrator=Leapfrog, +) + NUTS(n_adapts, δ, max_depth, Δ_max, init_ϵ, metric, integrator) +end + +function NUTS(ϵ::Float64, TAP::Float64) + metric = DiagEuclideanMetric(d) + integrator = Leapfrog(ϵ) + kernel = NUTS{MultinomialTS, GeneralisedNoUTurn} + adaptor(metric, integrator) = StanHMCAdaptor(MassMatrixAdaptor(metric), StepSizeAdaptor(TAP, integrator)) + return HMCSampler(kernel, metric, adaptor) +end From 1f8c5a7748bd4e50151cd64451abb004b472bc24 Mon Sep 17 00:00:00 2001 From: jaimerz Date: Mon, 5 Jun 2023 14:02:03 +0100 Subject: [PATCH 11/27] Scaling things --- Lab.ipynb | 317 +++++++++++++++++++++----------------------- src/AdvancedHMC.jl | 25 +--- src/abstractmcmc.jl | 170 +++++------------------- src/constructors.jl | 52 ++++++-- 4 files changed, 225 insertions(+), 339 deletions(-) diff --git a/Lab.ipynb b/Lab.ipynb index 1dd6a869..1d4b06a6 100644 --- a/Lab.ipynb +++ b/Lab.ipynb @@ -38,7 +38,6 @@ "name": "stderr", "output_type": "stream", "text": [ - "\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling PyPlot [d330b81b-6aea-500a-939a-2ce795aea3ee]\n", "\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling AdvancedHMC [0bf59076-c3b1-5ca4-86bd-e02cd72cde3d]\n", "\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling Turing [fce5fe82-541a-59a6-adf8-730c64b5f9a0]\n" ] @@ -132,7 +131,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 31, "id": "be8a75dd", "metadata": {}, "outputs": [ @@ -142,7 +141,7 @@ "Sampler" ] }, - "execution_count": 5, + "execution_count": 31, "metadata": {}, "output_type": "execute_result" } @@ -171,24 +170,23 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 32, "id": "baaf795f", "metadata": {}, "outputs": [ { - "data": { - "text/plain": [ - "Sampler(DiagEuclideanMetric([1.0, 1.0, 1.0, 1.0, 1.0, 1 ...]), Leapfrog(ϵ=0.1), StanHMCAdaptor(\n", - " pc=WelfordVar,\n", - " ssa=NesterovDualAveraging(γ=0.05, t_0=10.0, κ=0.75, δ=0.95, state.ϵ=0.1),\n", - " init_buffer=75, term_buffer=50, window_size=25,\n", - " state=window(0, 0), window_splits()\n", - "), HMCKernel{AdvancedHMC.FullMomentumRefreshment, Trajectory{MultinomialTS, Leapfrog{Float64}, GeneralisedNoUTurn{Float64}}}(AdvancedHMC.FullMomentumRefreshment(), Trajectory{MultinomialTS}(integrator=Leapfrog(ϵ=0.1), tc=GeneralisedNoUTurn{Float64}(10, 1000.0))))" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" + "ename": "LoadError", + "evalue": "TypeError: in Type{...} expression, expected UnionAll, got Type{AdvancedHMC.NUTS}", + "output_type": "error", + "traceback": [ + "TypeError: in Type{...} expression, expected UnionAll, got Type{AdvancedHMC.NUTS}", + "", + "Stacktrace:", + " [1] Sampler(ϵ::Float64, TAP::Float64)", + " @ Main ./In[31]:11", + " [2] top-level scope", + " @ In[32]:3" + ] } ], "source": [ @@ -203,45 +201,27 @@ "id": "3ac319cb", "metadata": {}, "source": [ - "## Sampling" + "### Sampling" ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "id": "c516fd54", "metadata": {}, "outputs": [ { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mProgressMeter by default refresh meters with additional information in IJulia via `IJulia.clear_output`, which clears all outputs in the cell. \n", - "\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m - To prevent this behaviour, do `ProgressMeter.ijulia_behavior(:append)`. \n", - "\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m - To disable this warning message, do `ProgressMeter.ijulia_behavior(:clear)`.\n", - "\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ ProgressMeter ~/.julia/packages/ProgressMeter/sN2xr/src/ProgressMeter.jl:618\u001b[39m\n", - "\u001b[32mSampling 100%|███████████████████████████████| Time: 0:00:04\u001b[39m\n", - "\u001b[34m iterations: 10000\u001b[39m\n", - "\u001b[34m ratio_divergent_transitions: 0.0\u001b[39m\n", - "\u001b[34m ratio_divergent_transitions_during_adaption: 0.0\u001b[39m\n", - "\u001b[34m n_steps: 31\u001b[39m\n", - "\u001b[34m is_accept: true\u001b[39m\n", - "\u001b[34m acceptance_rate: 0.9977556019563564\u001b[39m\n", - "\u001b[34m log_density: -55.59669800049129\u001b[39m\n", - "\u001b[34m hamiltonian_energy: 76.99245786344844\u001b[39m\n", - "\u001b[34m hamiltonian_energy_error: -0.037907257288452456\u001b[39m\n", - "\u001b[34m max_hamiltonian_energy_error: -0.08384075689365034\u001b[39m\n", - "\u001b[34m tree_depth: 4\u001b[39m\n", - "\u001b[34m numerical_error: false\u001b[39m\n", - "\u001b[34m step_size: 0.11952907411701275\u001b[39m\n", - "\u001b[34m nom_step_size: 0.11952907411701275\u001b[39m\n", - "\u001b[34m is_adapt: false\u001b[39m\n", - "\u001b[34m mass_matrix: DiagEuclideanMetric([1.8273790343807308, 0.4706 ...])\u001b[39m\n", - "\u001b[36m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mFinished 10000 sampling steps for 1 chains in 5.014627706 (s)\n", - "\u001b[36m\u001b[1m│ \u001b[22m\u001b[39m h = Hamiltonian(metric=DiagEuclideanMetric([1.8273790343807308, 0.4706 ...]), kinetic=GaussianKinetic())\n", - "\u001b[36m\u001b[1m│ \u001b[22m\u001b[39m κ = HMCKernel{AdvancedHMC.FullMomentumRefreshment, Trajectory{MultinomialTS, Leapfrog{Float64}, GeneralisedNoUTurn{Float64}}}(AdvancedHMC.FullMomentumRefreshment(), Trajectory{MultinomialTS}(integrator=Leapfrog(ϵ=0.12), tc=GeneralisedNoUTurn{Float64}(10, 1000.0)))\n", - "\u001b[36m\u001b[1m│ \u001b[22m\u001b[39m EBFMI_est = 0.5110910368914205\n", - "\u001b[36m\u001b[1m└ \u001b[22m\u001b[39m average_acceptance_rate = 0.9774544772681191\n" + "ename": "LoadError", + "evalue": "TypeError: in Type{...} expression, expected UnionAll, got Type{AdvancedHMC.NUTS}", + "output_type": "error", + "traceback": [ + "TypeError: in Type{...} expression, expected UnionAll, got Type{AdvancedHMC.NUTS}", + "", + "Stacktrace:", + " [1] sample(model::Model{typeof(funnel), (), (), (), Tuple{}, Tuple{}, ConditionContext{NamedTuple{(:x,), Tuple{Vector{Float64}}}, DefaultContext}}, ϵ::Float64, TAP::Float64, n_samples::Int64, n_adapts::Int64; initial_θ::Vector{Float64}, progress::Bool, kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})", + " @ AdvancedHMC ~/Cambdrige/AdvancedHMC.jl/src/sampler.jl:188", + " [2] top-level scope", + " @ In[14]:2" ] } ], @@ -261,10 +241,23 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "id": "2a803eb8", "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "LoadError", + "evalue": "UndefVarError: `samples` not defined", + "output_type": "error", + "traceback": [ + "UndefVarError: `samples` not defined", + "", + "Stacktrace:", + " [1] top-level scope", + " @ In[15]:1" + ] + } + ], "source": [ "theta_mchmc = [sample[1] for sample in samples]\n", "x10_mchmc = [sample[10+1] for sample in samples];" @@ -272,19 +265,21 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "id": "00f17868", "metadata": {}, "outputs": [ { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAArEAAAL3CAYAAACd2x1cAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAABSGElEQVR4nO3deZhdVZko7q9SSSpzDCEQyMg8CAISAXEABAGNA91Kc69oA3qx9QcOHRwCigH1CijigArN7StIq7cRRW1AEEQDtuIAJC20BBOkOiEkEIikkhAy1fn9YXP2OkXtyqmkqk6tqvd9njzPqn3W3nudU5XKl7W+/a2mSqVSCQAAyMiQRg8AAAC6SxALAEB2BLEAAGRHEAsAQHYEsQAAZEcQCwBAdgSxAABkRxALAEB2BLEAAGRHEAs0xMyZM6OpqSmampri+9//fmm/E044IZqamuK6667ru8F10NraGk1NTTFz5swXvfbC++hNL3xOXf350Y9+1Ktj6C8uuuiiaGpqiosuuqjRQwEabGijBwDwiU98Ik455ZQYOtSvpK6cdNJJMXny5E5fmz59eh+PBqCx/IsBNNSoUaPiT3/6U/zzP/9zvO9972v0cPq1uXPnxrHHHtvoYQD0C9IJgIb60Ic+FBERn/70p+O5555r8GgAyIUgFmioN77xjXHMMcfEihUr4ktf+lK3z7///vvj9NNPj+nTp0dLS0vstNNOcdJJJ8VPfvKTTvv/8Y9/jHnz5sWrXvWqmDJlSgwfPjwmTpwYJ5xwQnzve9/b0bdTtWLFivjQhz4U++67b4wYMSJGjRoV06ZNi+OPPz4uv/zyHrtPR8cee2w0NTXF/PnzO329LKc0Pb5q1ao455xzYtq0aTF8+PCYNm1afOADH4hnn332Rde77rrroqmpKc4888xYv359nH/++bH33ntHS0tLTJ48Oc4444xYvnx56XifeOKJmDNnThxwwAExatSoGDt2bLziFa+Ir33ta7Fly5Yd+CSAgU4QCzTcZZddFhERn//85+OZZ56p+7yvfOUrccQRR8R3v/vdmDhxYrzlLW+Jl770pTF//vyYPXt2fPrTn37ROVdccUV8+tOfjtWrV8fBBx8cf/u3fxv77bdf/OIXv4jTTjst5syZs8PvZ+XKlTFr1qz46le/Ghs3boyTTz453vKWt8Qee+wRCxcujM9+9rM7fI/esmzZsnj5y18eP/jBD+KII46I17/+9bF27dr42te+FieeeGJs3ry50/PWrFkTRx99dFx99dVx4IEHxhve8IaoVCpx/fXXx6te9apYs2bNi86555574qCDDoovfelL8fzzz8frX//6eNWrXhWPPvpofOADH4jZs2eX3g8gKgANMGPGjEpEVH75y19WKpVK5W//9m8rEVH5x3/8x5p+xx9/fCUiKtdee23N8dtvv73S1NRU2XnnnSt33313zWt/+MMfKlOnTq1ERGX+/Pk1r82fP7/y6KOPvmg8ixYtqp7z29/+tua1xx57rBIRlRkzZtT13i6++OJKRFTe+973Vtrb22te27RpU+VnP/tZXdd5QURUIqLyi1/8Ypt9jznmmC77zps3rxIRlXnz5nV6PCIqZ555ZuX555+vvrZ06dLKlClTKhFR+e53v1tz3rXXXls976STTqqsWbOm+trq1asrhx56aCUiKp/73OdqzluxYkVl4sSJlaampso3vvGNytatW6uvPf3005XXve51lYioXHzxxXWNHxh8zMQC/cLnPve5GDp0aHzjG9+I//qv/9pm/3nz5kWlUomrr746Xvva19a8dvDBB8cVV1wRERFXXnllzWvHHHNM7Lnnni+63n777RcXXnhhRESXJb/q8eSTT0ZExMknn/yi8lvDhg2L448/fruue9xxx3VaXuvMM8/cofGmpk6dGl//+tejpaWleuyFdIKIiJ/97Gednjd69Oi49tprY9y4cdVjEyZMiLlz53Z63pe//OV45pln4pxzzon3v//9MWRI8c/RxIkT4/rrr49hw4bF1772tahUKj32/oCBQ3UCoF/Yb7/94t3vfndcc801ceGFF8b1119f2vfpp5+O3/3udzFy5Mh485vf3GmfF57i//Wvf/2i19atWxe33XZbLFiwIJ5++unYtGlTRPw1jzUi4pFHHtmh93LEEUfEN77xjZg7d25UKpU48cQTY8yYMTt0zYjyEluvfvWrd/jaLzj++ONj1KhRLzp+wAEHRESU5rfOmjUrdtttt7rPu/XWWyMi4rTTTuv0elOmTIl99tkn/vjHP8bixYtj3333rf9NAIOCIBboNy666KL49re/Hd/5znfiIx/5SLzsZS/rtN9jjz0WlUolNmzYUDNj2JlVq1bVfH3zzTfHWWed1WXubVtbW/cHn3jXu94Vd955Z3znO9+Jt73tbdHc3BwHHnhgvPrVr463v/3t8brXvW67rtsXJbbK6s2+MMP6/PPP98h5f/7znyMi4jWvec02x7Rq1SpBLPAiglig39htt93iQx/6UFxyySVx/vnnV2frOmpvb4+IiDFjxsTb3va2uq+/fPnyOO2002LDhg3xsY99LE4//fSYOXNmjBkzJoYMGRJ33HFHnHTSSTu8fD1kyJD49re/HRdccEHceuut8atf/Sp+9atfxVVXXRVXXXVVvPnNb44f/vCH0dzcvEP32R4vfHZl0mX97ujueS+M4+1vf3uMHj26y74TJ07crjEBA5sgFuhXPv7xj8c111wTP/nJT+Kee+7ptM+0adMi4q/bsX7zm9+sO4C6+eabY8OGDfE3f/M31YoIqcWLF2//wDtx4IEHxoEHHhgf/ehHo1KpxM9//vN4xzveETfffHNcf/31cdZZZ/Xo/SIihg8fHhERa9eu7fT1evKN+8K0adNi8eLF8fGPfzxmzZrV6OEAGfJgF9CvjB8/Pi644IKIiPjYxz7WaZ/dd989Xvayl8XatWvj9ttvr/vaq1evjoiIGTNmvOi1SqUS3/3ud7djxPVpamqK448/Pt7xjndERMTChQt75T5TpkyJiIiHH374Ra8999xz8Ytf/KJX7ttdb3jDGyIierQ2LzC4CGKBfuecc86J6dOnx29/+9u49957O+3zQq3Vs846K26++eYXvV6pVOK3v/1t3HHHHdVjLzxk9P3vf7/6EFdExNatW+NTn/pUpw+BbY/rr78+7r///hcdX7t2bXUTgs4C6Z5wwgknRETE17/+9ZqHqdavXx/vfe97Y9myZb1y3+766Ec/Gi95yUviiiuuiC9+8YvVh+tSjz32WHz7299uwOiAHAhigX6npaWlulFB2Va0b37zm+MrX/lKrF69Ot7ylrfEPvvsE29605vi9NNPjxNPPDEmT54cRx11VPz85z+vOefwww+Pxx9/PPbdd99405veFKeddlrstddecdlll8XHP/7xHhn/TTfdFLNmzYopU6bE7Nmz453vfGfMnj07pk2bFgsXLoyDDjoozj777B65V0d/93d/F7NmzYqlS5fGS1/60njTm94Ub3zjG2OPPfaI+fPnx7vf/e5euW93TZ06NX784x/HhAkT4iMf+Uh1N7N3vvOd8eY3vzn23nvv2HPPPeNr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qSOKew9Lqha0JJsYPDeq9t5pCkFanWD6bcXY1+0xOulfpCMsS8aaVkwYtaroM2xd8R7SzQ0iaqsTpDbtU6QWDJmfpG0s76x3+SYIO7rZgZQDgN7X7ZnY0aNHV/Ngd9ttt3j00Uerrz399NM9NzIAACjR7ZnYo446Kv793/89DjjggHjjG98Y5513Xjz44INx0003xVFHHdUbYwSAAWdHUwpUOGCw63YQe8UVV8S6desiIuLiiy+OdevWxQ033BD77LOPygRQh7LUgrKNEsqOR9SmBIxekGyQMLZYxi9LIdg0ubh3uoyfeubQStFnWfnCzS4LiqX/shSCESuL/INpC4o8hTRVYNz9xWYOTR02OKiRVBhIzx8y/4Hyc17on37+2+z94vSPetIDpBAA9L5uB7F77rlntT169Oi4+uqre3RAANAfmfmE/qXbObF77rlnPPPMMy86/uyzz9YEuAAA0Fu6HcS2trbG1q1bX3R848aNsXx5ySPAAADQg+pOJ/i3f/u3avunP/1pjB8/vvr11q1b46677oqZM2f26OAgNzuSC1l2brrbVNmuXl0p2x1r6YlFe7dfFzmtaWmrvb+9ufS6z08uduBavV/xq2T3u5Oc06QU1orXFWW1Jv9La9Enyd+NpMxYOtZ0N7KI2nzZyn0PJtfqvLRVWr4sSkqflZHfOrBICYCBo+4g9pRTTomIiKampjjjjDNqXhs2bFjMnDkzvvjFL/bo4FL/+3//77j11ltj4cKFMXz48Hj22Wd77V4AAPRvdQex7e1/fcp4jz32iN///vex884799qgOrNp06Y49dRT45WvfGX83//7f/v03gAA9C/drk7w2GOPVdvPP/98jBgxoovePefiiy+OiIjrrruuT+4HZban5FKZes5NUwg69i/biSpKynI1J8vqe9yUHF9RPKyZluQavrK4TpoOEBGxvugWkxYUpbTSElsjVw2rttMyXu37zSzunaQcpPdOS3J1LLeVphrsyO5YdtYaPKQRwMDT7Qe72tvb4zOf+UxMmTIlxowZE3/+858jIuLCCy80QwoAQJ/odhD72c9+Nq677rr4/Oc/H8OHFzu5H3TQQfHP//zPPTq4HbVx48Zoa2ur+QMAQP66nU5w/fXXxzXXXBPHH398vO9976seP+SQQ2LRokXdutbcuXPjsssu67LPww8/HPvvv393hxkR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", - "text/plain": [ - "Figure(PyObject
)" - ] - }, - "metadata": {}, - "output_type": "display_data" + "ename": "LoadError", + "evalue": "UndefVarError: `x10_mchmc` not defined", + "output_type": "error", + "traceback": [ + "UndefVarError: `x10_mchmc` not defined", + "", + "Stacktrace:", + " [1] top-level scope", + " @ In[16]:8" + ] } ], "source": [ @@ -325,9 +320,34 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 33, "id": "486d475d", "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "AdvancedHMC.NUTS(500, 0.95, 10, 1000.0, 0.1, nothing, Leapfrog, AdvancedHMC.NUTS_kernel{MultinomialTS, GeneralisedNoUTurn}, AdvancedHMC.var\"#adaptor#38\"{Float64}(0.95))" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "using MCMCChains\n", + "\n", + "nadapts=500 \n", + "TAP=0.95\n", + "nuts = AdvancedHMC.NUTS(nadapts, TAP; init_ϵ=0.1)" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "id": "b0193663", + "metadata": {}, "outputs": [ { "name": "stderr", @@ -337,17 +357,17 @@ "\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m - To prevent this behaviour, do `ProgressMeter.ijulia_behavior(:append)`. \n", "\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m - To disable this warning message, do `ProgressMeter.ijulia_behavior(:clear)`.\n", "\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ ProgressMeter ~/.julia/packages/ProgressMeter/sN2xr/src/ProgressMeter.jl:618\u001b[39m\n", - "\r\u001b[32mSampling 100%|███████████████████████████████| Time: 0:00:03\u001b[39m\r\n", - "\u001b[34m iterations: 1000\u001b[39m\r\n", + "\r\u001b[32mSampling 100%|███████████████████████████████| Time: 0:00:02\u001b[39m\r\n", + "\u001b[34m iterations: 5000\u001b[39m\r\n", "\u001b[34m ratio_divergent_transitions: 0.0\u001b[39m\r\n", "\u001b[34m ratio_divergent_transitions_during_adaption: 0.0\u001b[39m\r\n", "\u001b[34m n_steps: 31\u001b[39m\r\n", "\u001b[34m is_accept: true\u001b[39m\r\n", - "\u001b[34m acceptance_rate: 0.9816437550853788\u001b[39m\r\n", - "\u001b[34m log_density: -56.98512987944265\u001b[39m\r\n", - "\u001b[34m hamiltonian_energy: 69.16094619031233\u001b[39m\r\n", - "\u001b[34m hamiltonian_energy_error: 0.0010654981857385337\u001b[39m\r\n", - "\u001b[34m max_hamiltonian_energy_error: 0.05359781209639891\u001b[39m\r\n", + "\u001b[34m acceptance_rate: 0.9972711825204867\u001b[39m\r\n", + "\u001b[34m log_density: -66.96166284016837\u001b[39m\r\n", + "\u001b[34m hamiltonian_energy: 77.91847431602888\u001b[39m\r\n", + "\u001b[34m hamiltonian_energy_error: 0.003880195070948389\u001b[39m\r\n", + "\u001b[34m max_hamiltonian_energy_error: -0.013804790095534258\u001b[39m\r\n", "\u001b[34m tree_depth: 5\u001b[39m\r\n", "\u001b[34m numerical_error: false\u001b[39m\r\n", "\u001b[34m step_size: 0.1\u001b[39m\r\n", @@ -359,80 +379,83 @@ { "data": { "text/plain": [ - "Chains MCMC chain (1000×34×1 Array{Real, 3}):\n", + "Chains MCMC chain (5000×34×1 Array{Real, 3}):\n", "\n", - "Iterations = 1:1:1000\n", + "Iterations = 1:1:5000\n", "Number of chains = 1\n", - "Samples per chain = 1000\n", + "Samples per chain = 5000\n", "parameters = θ, z1, z2, z3, z4, z5, z6, z7, z8, z9, z10, z11, z12, z13, z14, z15, z16, z17, z18, z19, z20\n", "internals = lp, n_steps, is_accept, acceptance_rate, log_density, hamiltonian_energy, hamiltonian_energy_error, max_hamiltonian_energy_error, tree_depth, numerical_error, step_size, nom_step_size, is_adapt\n", "\n", "Summary Statistics\n", - " \u001b[1m parameters \u001b[0m \u001b[1m mean \u001b[0m \u001b[1m std \u001b[0m \u001b[1m mcse \u001b[0m \u001b[1m ess_bulk \u001b[0m \u001b[1m ess_tail \u001b[0m \u001b[1m rhat \u001b[0m \u001b[1m \u001b[0m ⋯\n", - " \u001b[90m Symbol \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Real \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m \u001b[0m ⋯\n", + " \u001b[1m parameters \u001b[0m \u001b[1m mean \u001b[0m \u001b[1m std \u001b[0m \u001b[1m mcse \u001b[0m \u001b[1m ess_bulk \u001b[0m \u001b[1m rhat \u001b[0m \u001b[1m ess_per_se\u001b[0m ⋯\n", + " \u001b[90m Symbol \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Real \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Missin\u001b[0m ⋯\n", "\n", - " θ -0.1701 0.8877 0.1015 107.2505 85.6230 1.0013 ⋯\n", - " z1 0.5637 0.7028 0.0306 533.5203 657.9208 0.9992 ⋯\n", - " z2 0.5754 0.7386 0.0267 795.9805 619.4501 0.9997 ⋯\n", - " z3 -0.4002 0.6910 0.0189 1374.0798 542.6676 0.9993 ⋯\n", - " z4 0.0920 0.7204 0.0168 1843.4205 550.3231 0.9994 ⋯\n", - " z5 0.9176 0.7863 0.0431 323.1787 573.1358 1.0028 ⋯\n", - " z6 -1.5815 0.8393 0.0611 180.5255 182.3534 1.0003 ⋯\n", - " z7 -0.0286 0.7397 0.0170 1941.1363 587.1951 1.0004 ⋯\n", - " z8 0.2741 0.6673 0.0186 1293.5382 541.9376 1.0004 ⋯\n", - " z9 -1.5285 0.9058 0.0649 187.6804 384.1253 1.0032 ⋯\n", - " z10 -0.7848 0.7642 0.0366 429.3253 502.0009 0.9992 ⋯\n", - " z11 0.8904 0.7467 0.0385 372.7358 666.3289 0.9994 ⋯\n", - " z12 0.0491 0.7138 0.0162 1883.7889 664.5997 1.0002 ⋯\n", - " z13 0.0662 0.6866 0.0164 1766.0242 670.8974 1.0020 ⋯\n", - " z14 -0.2357 0.6711 0.0158 1758.4453 697.9642 0.9997 ⋯\n", - " z15 -0.0844 0.6940 0.0165 1755.5485 646.8239 0.9995 ⋯\n", - " z16 -0.6014 0.7425 0.0232 1094.2363 664.4580 0.9991 ⋯\n", - " z17 0.7843 0.7355 0.0275 712.4447 727.2978 1.0005 ⋯\n", - " z18 -0.2111 0.6812 0.0162 1684.4507 759.9554 0.9999 ⋯\n", - " z19 0.4824 0.7345 0.0218 1159.5168 490.4477 1.0002 ⋯\n", - " z20 0.5763 0.6983 0.0246 773.4011 580.6981 1.0020 ⋯\n", + " θ -0.1142 0.9101 0.0586 438.4964 1.0030 missin ⋯\n", + " z1 0.5951 0.7297 0.0125 3573.6057 1.0001 missin ⋯\n", + " z2 0.5975 0.7256 0.0127 3211.0596 1.0002 missin ⋯\n", + " z3 -0.4172 0.7031 0.0102 4921.0006 1.0003 missin ⋯\n", + " z4 0.0834 0.6897 0.0066 11053.8383 1.0001 missin ⋯\n", + " z5 0.9380 0.7870 0.0197 1558.6845 1.0005 missin ⋯\n", + " z6 -1.6607 0.9404 0.0338 713.5510 1.0015 missin ⋯\n", + " z7 -0.0488 0.7152 0.0072 9860.1140 1.0004 missin ⋯\n", + " z8 0.3373 0.7075 0.0088 6613.3255 1.0000 missin ⋯\n", + " z9 -1.5898 0.9030 0.0310 798.0804 1.0007 missin ⋯\n", + " z10 -0.8176 0.7483 0.0168 2042.7808 1.0007 missin ⋯\n", + " z11 0.9678 0.7936 0.0205 1456.7962 1.0009 missin ⋯\n", + " z12 0.0704 0.7093 0.0076 8631.8765 1.0014 missin ⋯\n", + " z13 0.0540 0.6963 0.0068 10316.4681 1.0004 missin ⋯\n", + " z14 -0.2689 0.6955 0.0082 7391.8059 1.0007 missin ⋯\n", + " z15 -0.0501 0.6776 0.0070 9489.4594 1.0001 missin ⋯\n", + " z16 -0.6249 0.7406 0.0131 3324.0001 1.0001 missin ⋯\n", + " z17 0.8342 0.7784 0.0177 1990.5056 1.0011 missin ⋯\n", + " z18 -0.2172 0.7234 0.0081 8076.9260 1.0007 missin ⋯\n", + " z19 0.5269 0.7269 0.0111 4450.8085 1.0000 missin ⋯\n", + " z20 0.6031 0.7451 0.0136 3051.5405 1.0002 missin ⋯\n", "\u001b[36m 1 column omitted\u001b[0m\n", "\n", "Quantiles\n", " \u001b[1m parameters \u001b[0m \u001b[1m 2.5% \u001b[0m \u001b[1m 25.0% \u001b[0m \u001b[1m 50.0% \u001b[0m \u001b[1m 75.0% \u001b[0m \u001b[1m 97.5% \u001b[0m\n", " \u001b[90m Symbol \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m\n", "\n", - " θ -2.5989 -0.4933 0.0009 0.3895 1.1431\n", - " z1 -0.7217 0.0839 0.5223 1.0107 1.9740\n", - " z2 -0.7759 0.0675 0.5078 1.0622 2.1982\n", - " z3 -1.7383 -0.8248 -0.3562 0.0761 0.8287\n", - " z4 -1.3976 -0.3373 0.0919 0.5566 1.5334\n", - " z5 -0.4609 0.3634 0.8315 1.4431 2.7049\n", - " z6 -3.2540 -2.1718 -1.5520 -0.9958 -0.0557\n", - " z7 -1.5612 -0.4782 -0.0007 0.4014 1.4314\n", - " z8 -0.9550 -0.1580 0.2422 0.6686 1.6978\n", - " z9 -3.3072 -2.1401 -1.5261 -0.8601 0.1242\n", - " z10 -2.3459 -1.2841 -0.7246 -0.2361 0.6525\n", - " z11 -0.4481 0.3820 0.8514 1.3697 2.5164\n", - " z12 -1.4653 -0.3635 0.0642 0.4844 1.4252\n", - " z13 -1.2855 -0.3572 0.0760 0.4913 1.4790\n", - " z14 -1.5725 -0.6669 -0.2090 0.1760 1.0970\n", - " z15 -1.4224 -0.5176 -0.0880 0.3558 1.2119\n", - " z16 -2.1895 -1.0814 -0.5403 -0.0635 0.6834\n", - " z17 -0.5683 0.2632 0.7212 1.2724 2.3639\n", - " z18 -1.5622 -0.6222 -0.1896 0.2423 1.0862\n", - " z19 -0.8552 -0.0154 0.4241 0.9518 2.0049\n", - " z20 -0.6794 0.0868 0.5229 1.0198 2.0579\n" + " θ -2.7268 -0.4391 0.0589 0.4664 1.1428\n", + " z1 -0.7259 0.0909 0.5531 1.0597 2.1330\n", + " z2 -0.7320 0.0968 0.5510 1.0765 2.1194\n", + " z3 -1.8865 -0.8567 -0.3753 0.0600 0.8964\n", + " z4 -1.2797 -0.3649 0.0767 0.5289 1.4626\n", + " z5 -0.4116 0.3645 0.9002 1.4369 2.6065\n", + " z6 -3.5659 -2.2948 -1.6398 -0.9795 0.0053\n", + " z7 -1.4645 -0.5076 -0.0417 0.4085 1.3643\n", + " z8 -0.9988 -0.1268 0.2998 0.7856 1.7950\n", + " z9 -3.4437 -2.1926 -1.5837 -0.9423 0.0058\n", + " z10 -2.4030 -1.3111 -0.7790 -0.2682 0.4994\n", + " z11 -0.3932 0.3855 0.9154 1.5127 2.5882\n", + " z12 -1.3413 -0.3642 0.0643 0.5040 1.5063\n", + " z13 -1.3358 -0.3946 0.0440 0.5027 1.4182\n", + " z14 -1.6791 -0.7329 -0.2367 0.1877 1.0967\n", + " z15 -1.4014 -0.4767 -0.0412 0.3713 1.3082\n", + " z16 -2.1662 -1.1304 -0.5729 -0.0965 0.7186\n", + " z17 -0.5451 0.2592 0.7955 1.3518 2.4927\n", + " z18 -1.7027 -0.6660 -0.1872 0.2486 1.1677\n", + " z19 -0.7848 0.0301 0.4696 1.0010 2.0437\n", + " z20 -0.8105 0.0845 0.5635 1.0963 2.1569\n" ] }, - "execution_count": 10, + "execution_count": 37, "metadata": {}, "output_type": "execute_result" + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mTail ESS calculation failed: OverflowError(\"4750 * 4503599627370496 overflowed for type Int64\")\n", + "\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ MCMCChains ~/.julia/packages/MCMCChains/OVsxE/src/stats.jl:319\u001b[39m\n" + ] } ], "source": [ - "using MCMCChains\n", - "\n", - "initial_ϵ=0.1 \n", - "TAP=0.95\n", - "nuts = AdvancedHMC.NUTSSampler(initial_ϵ, TAP, d)\n", - "Asamples = sample(funnel_model, nuts, 1000; chain_type=MCMCChains.Chains)" + "Asamples = sample(funnel_model, nuts, 5000; chain_type=MCMCChains.Chains)" ] }, { @@ -446,64 +469,24 @@ }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 38, "id": "9c61e0ab", "metadata": {}, - "outputs": [ - { - "ename": "LoadError", - "evalue": "MethodError: no method matching getindex(::AdvancedHMC.Transition{AdvancedHMC.PhasePoint{Vector{Float64}, AdvancedHMC.DualValue{Float64, Vector{Float64}}}, NamedTuple{(:n_steps, :is_accept, :acceptance_rate, :log_density, :hamiltonian_energy, :hamiltonian_energy_error, :max_hamiltonian_energy_error, :tree_depth, :numerical_error, :step_size, :nom_step_size, :is_adapt), Tuple{Int64, Bool, Float64, Float64, Float64, Float64, Float64, Int64, Bool, Float64, Float64, Bool}}}, ::Int64)", - "output_type": "error", - "traceback": [ - "MethodError: no method matching getindex(::AdvancedHMC.Transition{AdvancedHMC.PhasePoint{Vector{Float64}, AdvancedHMC.DualValue{Float64, Vector{Float64}}}, NamedTuple{(:n_steps, :is_accept, :acceptance_rate, :log_density, :hamiltonian_energy, :hamiltonian_energy_error, :max_hamiltonian_energy_error, :tree_depth, :numerical_error, :step_size, :nom_step_size, :is_adapt), Tuple{Int64, Bool, Float64, Float64, Float64, Float64, Float64, Int64, Bool, Float64, Float64, Bool}}}, ::Int64)", - "", - "Stacktrace:", - " [1] (::var\"#19#20\")(sample::AdvancedHMC.Transition{AdvancedHMC.PhasePoint{Vector{Float64}, AdvancedHMC.DualValue{Float64, Vector{Float64}}}, NamedTuple{(:n_steps, :is_accept, :acceptance_rate, :log_density, :hamiltonian_energy, :hamiltonian_energy_error, :max_hamiltonian_energy_error, :tree_depth, :numerical_error, :step_size, :nom_step_size, :is_adapt), Tuple{Int64, Bool, Float64, Float64, Float64, Float64, Float64, Int64, Bool, Float64, Float64, Bool}}})", - " @ Main ./none:0", - " [2] iterate", - " @ ./generator.jl:47 [inlined]", - " [3] collect(itr::Base.Generator{Vector{AdvancedHMC.Transition{AdvancedHMC.PhasePoint{Vector{Float64}, AdvancedHMC.DualValue{Float64, Vector{Float64}}}, NamedTuple{(:n_steps, :is_accept, :acceptance_rate, :log_density, :hamiltonian_energy, :hamiltonian_energy_error, :max_hamiltonian_energy_error, :tree_depth, :numerical_error, :step_size, :nom_step_size, :is_adapt), Tuple{Int64, Bool, Float64, Float64, Float64, Float64, Float64, Int64, Bool, Float64, Float64, Bool}}}}, var\"#19#20\"})", - " @ Base ./array.jl:782", - " [4] top-level scope", - " @ In[43]:1" - ] - } - ], - "source": [ - "theta_mchmc = [sample[1] for sample in Asamples]\n", - "x10_mchmc = [sample[10+1] for sample in Asamples];" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "1eeabe94", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "AdvancedHMC.DualValue{Float64, Vector{Float64}}(-30.568913420248535, [-1.5177868234276293, -0.2642441573758009, 2.9006618798256305, -0.49020897941818103, 0.3653601765991165, 2.6312133214525577, 0.10168289161602831, -1.6963705076408426, -2.00635197071912, -3.0012398194776444 … 3.7892210136171354, 0.9123812954243244, 1.4411600118405576, -1.1218982417030496, 0.567170185325859, 0.4590465066334209, 0.6414203316649082, 0.9499263148164698, 2.500361124794014, 0.6248394066847915])" - ] - }, - "execution_count": 21, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "Asamples[1].z.ℓκ" + "theta_mchmc = Vector(Asamples[\"θ\"][:, 1])\n", + "x10_mchmc =Vector(Asamples[\"z10\"][:, 1]);" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 39, "id": "8869229b", "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAArEAAAL3CAYAAACd2x1cAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAABSGElEQVR4nO3deZhdVZko7q9SSSpzDCEQyMg8CAISAXEABAGNA91Kc69oA3qx9QcOHRwCigH1CijigArN7StIq7cRRW1AEEQDtuIAJC20BBOkOiEkEIikkhAy1fn9YXP2OkXtyqmkqk6tqvd9njzPqn3W3nudU5XKl7W+/a2mSqVSCQAAyMiQRg8AAAC6SxALAEB2BLEAAGRHEAsAQHYEsQAAZEcQCwBAdgSxAABkRxALAEB2BLEAAGRHEAs0xMyZM6OpqSmampri+9//fmm/E044IZqamuK6667ru8F10NraGk1NTTFz5swXvfbC++hNL3xOXf350Y9+1Ktj6C8uuuiiaGpqiosuuqjRQwEabGijBwDwiU98Ik455ZQYOtSvpK6cdNJJMXny5E5fmz59eh+PBqCx/IsBNNSoUaPiT3/6U/zzP/9zvO9972v0cPq1uXPnxrHHHtvoYQD0C9IJgIb60Ic+FBERn/70p+O5555r8GgAyIUgFmioN77xjXHMMcfEihUr4ktf+lK3z7///vvj9NNPj+nTp0dLS0vstNNOcdJJJ8VPfvKTTvv/8Y9/jHnz5sWrXvWqmDJlSgwfPjwmTpwYJ5xwQnzve9/b0bdTtWLFivjQhz4U++67b4wYMSJGjRoV06ZNi+OPPz4uv/zyHrtPR8cee2w0NTXF/PnzO329LKc0Pb5q1ao455xzYtq0aTF8+PCYNm1afOADH4hnn332Rde77rrroqmpKc4888xYv359nH/++bH33ntHS0tLTJ48Oc4444xYvnx56XifeOKJmDNnThxwwAExatSoGDt2bLziFa+Ir33ta7Fly5Yd+CSAgU4QCzTcZZddFhERn//85+OZZ56p+7yvfOUrccQRR8R3v/vdmDhxYrzlLW+Jl770pTF//vyYPXt2fPrTn37ROVdccUV8+tOfjtWrV8fBBx8cf/u3fxv77bdf/OIXv4jTTjst5syZs8PvZ+XKlTFr1qz46le/Ghs3boyTTz453vKWt8Qee+wRCxcujM9+9rM7fI/esmzZsnj5y18eP/jBD+KII46I17/+9bF27dr42te+FieeeGJs3ry50/PWrFkTRx99dFx99dVx4IEHxhve8IaoVCpx/fXXx6te9apYs2bNi86555574qCDDoovfelL8fzzz8frX//6eNWrXhWPPvpofOADH4jZs2eX3g8gKgANMGPGjEpEVH75y19WKpVK5W//9m8rEVH5x3/8x5p+xx9/fCUiKtdee23N8dtvv73S1NRU2XnnnSt33313zWt/+MMfKlOnTq1ERGX+/Pk1r82fP7/y6KOPvmg8ixYtqp7z29/+tua1xx57rBIRlRkzZtT13i6++OJKRFTe+973Vtrb22te27RpU+VnP/tZXdd5QURUIqLyi1/8Ypt9jznmmC77zps3rxIRlXnz5nV6PCIqZ555ZuX555+vvrZ06dLKlClTKhFR+e53v1tz3rXXXls976STTqqsWbOm+trq1asrhx56aCUiKp/73OdqzluxYkVl4sSJlaampso3vvGNytatW6uvPf3005XXve51lYioXHzxxXWNHxh8zMQC/cLnPve5GDp0aHzjG9+I//qv/9pm/3nz5kWlUomrr746Xvva19a8dvDBB8cVV1wRERFXXnllzWvHHHNM7Lnnni+63n777RcXXnhhRESXJb/q8eSTT0ZExMknn/yi8lvDhg2L448/fruue9xxx3VaXuvMM8/cofGmpk6dGl//+tejpaWleuyFdIKIiJ/97Gednjd69Oi49tprY9y4cdVjEyZMiLlz53Z63pe//OV45pln4pxzzon3v//9MWRI8c/RxIkT4/rrr49hw4bF1772tahUKj32/oCBQ3UCoF/Yb7/94t3vfndcc801ceGFF8b1119f2vfpp5+O3/3udzFy5Mh485vf3GmfF57i//Wvf/2i19atWxe33XZbLFiwIJ5++unYtGlTRPw1jzUi4pFHHtmh93LEEUfEN77xjZg7d25UKpU48cQTY8yYMTt0zYjyEluvfvWrd/jaLzj++ONj1KhRLzp+wAEHRESU5rfOmjUrdtttt7rPu/XWWyMi4rTTTuv0elOmTIl99tkn/vjHP8bixYtj3333rf9NAIOCIBboNy666KL49re/Hd/5znfiIx/5SLzsZS/rtN9jjz0WlUolNmzYUDNj2JlVq1bVfH3zzTfHWWed1WXubVtbW/cHn3jXu94Vd955Z3znO9+Jt73tbdHc3BwHHnhgvPrVr463v/3t8brXvW67rtsXJbbK6s2+MMP6/PPP98h5f/7znyMi4jWvec02x7Rq1SpBLPAiglig39htt93iQx/6UFxyySVx/vnnV2frOmpvb4+IiDFjxsTb3va2uq+/fPnyOO2002LDhg3xsY99LE4//fSYOXNmjBkzJoYMGRJ33HFHnHTSSTu8fD1kyJD49re/HRdccEHceuut8atf/Sp+9atfxVVXXRVXXXVVvPnNb44f/vCH0dzcvEP32R4vfHZl0mX97ujueS+M4+1vf3uMHj26y74TJ07crjEBA5sgFuhXPv7xj8c111wTP/nJT+Kee+7ptM+0adMi4q/bsX7zm9+sO4C6+eabY8OGDfE3f/M31YoIqcWLF2//wDtx4IEHxoEHHhgf/ehHo1KpxM9//vN4xzveETfffHNcf/31cdZZZ/Xo/SIihg8fHhERa9eu7fT1evKN+8K0adNi8eLF8fGPfzxmzZrV6OEAGfJgF9CvjB8/Pi644IKIiPjYxz7WaZ/dd989Xvayl8XatWvj9ttvr/vaq1evjoiIGTNmvOi1SqUS3/3ud7djxPVpamqK448/Pt7xjndERMTChQt75T5TpkyJiIiHH374Ra8999xz8Ytf/KJX7ttdb3jDGyIierQ2LzC4CGKBfuecc86J6dOnx29/+9u49957O+3zQq3Vs846K26++eYXvV6pVOK3v/1t3HHHHdVjLzxk9P3vf7/6EFdExNatW+NTn/pUpw+BbY/rr78+7r///hcdX7t2bXUTgs4C6Z5wwgknRETE17/+9ZqHqdavXx/vfe97Y9myZb1y3+766Ec/Gi95yUviiiuuiC9+8YvVh+tSjz32WHz7299uwOiAHAhigX6npaWlulFB2Va0b37zm+MrX/lKrF69Ot7ylrfEPvvsE29605vi9NNPjxNPPDEmT54cRx11VPz85z+vOefwww+Pxx9/PPbdd99405veFKeddlrstddecdlll8XHP/7xHhn/TTfdFLNmzYopU6bE7Nmz453vfGfMnj07pk2bFgsXLoyDDjoozj777B65V0d/93d/F7NmzYqlS5fGS1/60njTm94Ub3zjG2OPPfaI+fPnx7vf/e5euW93TZ06NX784x/HhAkT4iMf+Uh1N7N3vvOd8eY3vzn23nvv2HPPPeNr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qSOKew9Lqha0JJsYPDeq9t5pCkFanWD6bcXY1+0xOulfpCMsS8aaVkwYtaroM2xd8R7SzQ0iaqsTpDbtU6QWDJmfpG0s76x3+SYIO7rZgZQDgN7X7ZnY0aNHV/Ngd9ttt3j00Uerrz399NM9NzIAACjR7ZnYo446Kv793/89DjjggHjjG98Y5513Xjz44INx0003xVFHHdUbYwSAAWdHUwpUOGCw63YQe8UVV8S6desiIuLiiy+OdevWxQ033BD77LOPygRQh7LUgrKNEsqOR9SmBIxekGyQMLZYxi9LIdg0ubh3uoyfeubQStFnWfnCzS4LiqX/shSCESuL/INpC4o8hTRVYNz9xWYOTR02OKiRVBhIzx8y/4Hyc17on37+2+z94vSPetIDpBAA9L5uB7F77rlntT169Oi4+uqre3RAANAfmfmE/qXbObF77rlnPPPMMy86/uyzz9YEuAAA0Fu6HcS2trbG1q1bX3R848aNsXx5ySPAAADQg+pOJ/i3f/u3avunP/1pjB8/vvr11q1b46677oqZM2f26OAgNzuSC1l2brrbVNmuXl0p2x1r6YlFe7dfFzmtaWmrvb+9ufS6z08uduBavV/xq2T3u5Oc06QU1orXFWW1Jv9La9Enyd+NpMxYOtZ0N7KI2nzZyn0PJtfqvLRVWr4sSkqflZHfOrBICYCBo+4g9pRTTomIiKampjjjjDNqXhs2bFjMnDkzvvjFL/bo4FL/+3//77j11ltj4cKFMXz48Hj22Wd77V4AAPRvdQex7e1/fcp4jz32iN///vex884799qgOrNp06Y49dRT45WvfGX83//7f/v03gAA9C/drk7w2GOPVdvPP/98jBgxoovePefiiy+OiIjrrruuT+4HZban5FKZes5NUwg69i/biSpKynI1J8vqe9yUHF9RPKyZluQavrK4TpoOEBGxvugWkxYUpbTSElsjVw2rttMyXu37zSzunaQcpPdOS3J1LLeVphrsyO5YdtYaPKQRwMDT7Qe72tvb4zOf+UxMmTIlxowZE3/+858jIuLCCy80QwoAQJ/odhD72c9+Nq677rr4/Oc/H8OHFzu5H3TQQfHP//zPPTq4HbVx48Zoa2ur+QMAQP66nU5w/fXXxzXXXBPHH398vO9976seP+SQQ2LRokXdutbcuXPjsssu67LPww8/HPvvv393hxkR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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAArEAAAL3CAYAAACd2x1cAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAABLwUlEQVR4nO3deZRdVZkw7rcyVchUhBCGkCIDASWChCaCDC3BIGEQGtuB9YEsgjS2/gC1g40BxYDaIoo4gELz+Qmi8jUiIh0ik2FqFFGGdKuMQUIgYchAUiFAZbq/P/hy776VusWt1HBrVz3PWrXWrnP3OWffW5XiZe/3vLuuUCgUAgAAMtKv1gMAAID2EsQCAJAdQSwAANkRxAIAkB1BLAAA2RHEAgCQHUEsAADZEcQCAJAdQSwAANkRxAI1MX78+Kirq4u6urr45S9/WbHf4YcfHnV1dXHNNdd03+BaWLRoUdTV1cX48eO3eG3z++hKmz+ntr5+/etfd+kYeooLLrgg6urq4oILLqj1UIAaG1DrAQB88YtfjOOPPz4GDPAnqS0zZsyInXbaqdXXdt11124eDUBt+S8GUFNDhgyJp556Kn70ox/Fpz71qVoPp0ebPXt2TJs2rdbDAOgRpBMANfXZz342IiK+8pWvxOuvv17j0QCQC0EsUFNHH310HHroofHiiy/Gd77znXaf//DDD8dJJ50Uu+66a9TX18d2220XM2bMiN/85jet9n/sscdizpw5cfDBB8cuu+wSgwYNilGjRsXhhx8ev/jFLzr6dopefPHF+OxnPxt77LFHDB48OIYMGRKNjY0xffr0uOSSSzrtPi1NmzYt6urq4p577mn19Uo5penxZcuWxRlnnBGNjY0xaNCgaGxsjLPOOitWrVq1xfWuueaaqKuri5kzZ8batWvj3HPPjUmTJkV9fX3stNNOccopp8SSJUsqjnfp0qUxa9as2HPPPWPIkCExfPjweM973hOXX355bNiwoQOfBNDbCWKBmrv44osjIuKb3/xmrFixourzvve978X+++8f1113XYwaNSqOO+64eNe73hX33HNPHHPMMfGVr3xli3MuvfTS+MpXvhIrV66MvffeO/7xH/8x3vGOd8Tdd98dJ5xwQsyaNavD7+ell16KqVOnxve///1obm6OI488Mo477riYMGFCLFiwIL72ta91+B5d5fnnn4+/+7u/ixtvvDH233//+MAHPhBr1qyJyy+/PI444ohYv359q+etXr06DjrooLjyyitj8uTJcdRRR0WhUIhrr702Dj744Fi9evUW59x3332x1157xXe+851488034wMf+EAcfPDB8cwzz8RZZ50VxxxzTMX7AUQBoAbGjRtXiIjCf/3XfxUKhULhH//xHwsRUfiXf/mXsn7Tp08vRETh6quvLjt+2223Ferq6grbb7994d577y177X/+538KY8eOLURE4Z577il77Z577ik888wzW4zniSeeKJ7z4IMPlr327LPPFiKiMG7cuKre24UXXliIiMInP/nJwqZNm8peW7duXeG3v/1tVdfZLCIKEVG4++6737bvoYce2mbfOXPmFCKiMGfOnFaPR0Rh5syZhTfffLP42uLFiwu77LJLISIK1113Xdl5V199dfG8GTNmFFavXl18beXKlYUpU6YUIqLw9a9/vey8F198sTBq1KhCXV1d4Yc//GFh48aNxdeWL19eeP/731+IiMKFF15Y1fiBvsdMLNAjfP3rX48BAwbED3/4w3juuefetv+cOXOiUCjElVdeGe973/vKXtt7773j0ksvjYiIyy67rOy1Qw89NCZOnLjF9d7xjnfE+eefHxHRZsmvarz88ssREXHkkUduUX5r4MCBMX369K267mGHHdZqea2ZM2d2aLypsWPHxg9+8IOor68vHtucThAR8dvf/rbV84YOHRpXX311jBgxonhs5MiRMXv27FbP++53vxsrVqyIM844Iz796U9Hv36l/xyNGjUqrr322hg4cGBcfvnlUSgUOu39Ab2H6gRAj/COd7wjPvGJT8RVV10V559/flx77bUV+y5fvjz++Mc/xjbbbBPHHntsq302P8X/+9//fovXXnvttbj11lvj0UcfjeXLl8e6desi4q081oiIJ598skPvZf/9948f/vCHMXv27CgUCnHEEUfEsGHDOnTNiMoltg455JAOX3uz6dOnx5AhQ7Y4vueee0ZEVMxvnTp1auy8885Vnzdv3ryIiDjhhBNavd4uu+wSu+++ezz22GPx9NNPxx577FH9mwD6BEEs0GNccMEF8bOf/Sx+/vOfx+c///l497vf3Wq/Z599NgqFQrzxxhtlM4atWbZsWdn3c+fOjVNPPbXN3Numpqb2Dz5x8sknx5133hk///nP48Mf/nD0798/Jk+eHIccckh85CMfife///1bdd3uKLFVqd7s5hnWN998s1PO+9vf/hYREX//93//tmNatmyZIBbYgiAW6DF23nnn+OxnPxsXXXRRnHvuucXZupY2bdoUERHDhg2LD3/4w1Vff8mSJXHCCSfEG2+8Eeecc06cdNJJMX78+Bg2bFj069cv7rjjjpgxY0aHl6/79esXP/vZz+K8886LefPmxe9+97v43e9+F1dccUVcccUVceyxx8ZNN90U/fv379B9tsbmz66SdFm/Pdp73uZxfOQjH4mhQ4e22XfUqFFbNSagdxPEAj3KF77whbjqqqviN7/5Tdx3332t9mlsbIyIt7Zj/fGPf1x1ADV37tx444034kMf+lCxIkLq6aef3vqBt2Ly5MkxefLk+Nd//dcoFApx1113xYknnhhz586Na6+9Nk499dROvV9ExKBBgyIiYs2aNa2+Xk2+cXdobGyMp59+Or7whS/E1KlTaz0cIEMe7AJ6lIaGhjjvvPMiIuKcc85ptc+YMWPi3e9+d6xZsyZuu+22qq+9cuXKiIgYN27cFq8VCoW47rrrtmLE1amrq4vp06fHiSeeGBERCxYs6JL77LLLLhER8fjjj2/x2uuvvx533313l9y3vY466qiIiE6tzQv0LYJYoMc544wzYtddd40HH3wwHnjggVb7bK61euqpp8bcuXO3eL1QKMSDDz4Yd9xxR/HY5oeMfvnLXxYf4oqI2LhxY3z5y19u9SGwrXHttdfGww8/vMXxNWvWFDchaC2Q7gyHH354RET84Ac/KHuYau3atfHJT34ynn/++S65b3v967/+a2y77bZx6aWXxre//e3iw3WpZ599Nn72s5/VYHRADgSxQI9TX19f3Kig0la0xx57bHzve9+LlStXxnHHHRe77757fPCDH4yTTjopjjjiiNhpp53ive99b9x1111l5+y3337xwgsvxB577BEf/OAH44QTTojddtstLr744vjCF77QKeP/1a9+FVOnTo1ddtkljjnmmPj4xz8exxxzTDQ2NsaCBQtir732itNPP71T7tXSxz72sZg6dWosXrw43vWud8UHP/jBOProo2PChAlxzz33xCc+8YkuuW97jR07Nm6++eYYOXJkfP7zny/uZvbxj388jj322Jg0aVJMnDgxLr/88loPFeihBLFAj3TyySfH3nvv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K7xdmNuFZs+eHRdffHGbfR5//PG444474he/+EXce++90b9//1i0aFFMmDAhHn300ZgyZUrFc1vOxK5atSrGjRsXixcvbvNDoaSpqSkaGxvj+eefjxEjRtR6ONnwubWfz2zrvPrqqzF+/PhYtGhRjBw5stbDAeiwQqEQa9asiTFjxkS/fpUzX2saxC5btixWrFjRZp+JEyfGxz72sZg7d27U1dUVj2/cuDH69+8fJ510UvzkJz+p6n5NTU3R0NAQq1ev9h/JKvnMto7Prf18ZlvH5wb0VTVNJxg9enSMHv32hc6///3vx9e+9rXi90uXLo0ZM2bE9ddfHwcccEBXDhEAgB4oi5zYXXfdtez7YcOGRUTEbrvtFmPHjq3FkAAAqKGsSmx1VH19fcyZMyfq6+trPZRs+My2js+t/XxmW8fnBvRVNc2JBQCArdGnZmIBAOgdBLEAAGRHEAsAQHYEsQAAZKdPB7Hz5s2LAw44ILbZZpsYOXJkHH/88bUeUjaam5tjypQpUVdXFwsWLKj1cHqsRYsWxWmnnRYTJkyIbbbZJnbbbbeYM2dOrFu3rtZD63F+8IMfxPjx42Pw4MFxwAEHxB//+MdaD6nHuuiii+I973lPDB8+PHbYYYc4/vjj48kn7eUL9C19Noi98cYb4+STT45TTz01/vu//zt+97vfxYknnljrYWXjnHPOiTFjxtR6GD3eE088EZs2bYp///d/j7/+9a/xne98J6688so477zzaj20HuX666+PWbNmxZw5c+KRRx6JffbZJ2bMmBGvvPJKrYfWI917771xxhlnxB/+8Ie48847Y/369XHEEUfE2rVraz00gG7TJ0tsbdiwIcaPHx8XXnhhnHbaabUeTnZuvfXWmDVrVtx4443xrne9Kx599NGYMmVKrYeVjW9961txxRVXxN/+9rdaD6XHOOCAA+I973lPXH755RERsWnTpmhsbIyzzjorZs+eXePR9XzLli2LHXbYIe6999543/veV+vhAHSLPjkT+8gjj8SSJUuiX79+se+++8bOO+8cRx11VPzlL3+p9dB6vJdffjlOP/30+OlPfxpDhgyp9XCytHr16thuu+1qPYweY926dfHwww/H4YcfXjzWr1+/OPzww+OBBx6o4cjysXr16ogIv1dAn9Ing9jNM2AXXHBBfOlLX4pbbrklRo4cGdOmTYuVK1fWeHQ9V6FQiJkzZ8anPvWpmDp1aq2Hk6WFCxfGZZddFv/8z/9c66H0GMuXL4+NGzfGjjvuWHZ8xx13jJdeeqlGo8rHpk2b4nOf+1wcfPDBsddee9V6OADdplcFsbNnz466uro2vzbnKEZEfPGLX4wPf/jDsd9++8XVV18ddXV1ccMNN9T4XXS/aj+3yy67LNasWRPnnnturYdcc9V+ZqklS5bEkUceGR/96Efj9NNPr9HI6W3OOOOM+Mtf/hL/8R//UeuhAHSrAbUeQGc6++yzY+bMmW32mThxYrz44osRETF58uTi8fr6+pg4cWIsXry4K4fYI1X7ud11113xwAMPbLFH+9SpU+Okk06Kn/zkJ104yp6l2s9ss6VLl8Zhhx0WBx10UFx11VVdPLq8bL/99tG/f/94+eWXy46//PLLsdNOO9VoVHk488wz45Zbbon77rsvxo4dW+vhAHSrXhXEjh49OkaPHv22/fbbb7+or6+PJ598Mg455JCIiFi/fn0sWrQoxo0b19XD7HGq/dy+//3vx9e+9rXi90uXLo0ZM2bE9ddfHwcccEBXDrHHqfYzi3hrBvawww4rzvj369erFkA6bNCgQbHffvvF/Pnzi2XuNm3aFPPnz48zzzyztoProQqFQpx11llx0003xT333BMTJkyo9ZAAul2vCmKrNWLEiPjUpz4Vc+bMicbGxhg3blx861vfioiIj370ozUeXc+16667ln0/bNiwiIjYbbfdzAJVsGTJkpg2bVqMGzcuLrnkkli2bFnxNbOMJbNmzYpTTjklpk6dGvvvv39897vfjbVr18app55a66H1SGeccUZcd911cfPNN8fw4cOLucMNDQ2xzTbb1Hh0AN2jTwaxEW+VORowYECcfPLJ8cYbb8QBBxwQd911V4wcObLWQ6MXufPOO2PhwoWxcOHCLQL9PljdrqITTjghli1bFl/+8pfjpZdeiilTpsRtt922xcNevOWKK66IiIhp06aVHb/66qvfNs0FoLfok3ViAQDIm+Q8AACyI4gFACA7glgAALIjiAUAIDuCWAAAsiOIBQAgO4JYAACyI4gFACA7gljoBC+++GKceOKJsccee0S/fv3ic5/7XKv9brjhhnjnO98ZgwcPjr333jt+85vfdO9AAaCXEMRCJ2hubo7Ro0fHl770pdhnn31a7fP73/8+/tf/+l9x2mmnxaOPPhrHH398HH/88fGXv/ylm0cLAPmz7SxUYdmyZbH33nvHZz7zmTjvvPMi4q2gdNq0aXHrrbfG9OnTi32nTZsWU6ZMie9+97tl1zjhhBNi7dq1ccsttxSPvfe9740pU6bElVde2S3vAwB6CzOxUIXRo0fHj3/847jgggvioYceijVr1sTJJ58cZ555ZlkA25YHHnggDj/88LJjM2bMiAceeKArhgwAvdqAWg8AcnH00UfH6aefHieddFJMnTo1hg4dGhdddFHV57/00kux4447lh3bcccd46WXXursoQJAr2cmFtrhkksuiQ0bNsQNN9wQP//5z6O+vr7WQwKAPkkQC+3wzDPPxNKlS2PTpk2xaNGidp270047xcsvv1x27OWXX46ddtqpE0cIAH2DIBaqtG7duvj4xz8eJ5xwQnz1q1+Nf/qnf4pXXnml6vMPPPDAmD9/ftmxO++8Mw488MDOHioA9HpyYqFKX/ziF2P16tXx/e9/P4YNGxa/+c1v4hOf+ESx2sCCBQsiIuK1116LZcuWxYIFC2LQoEExefLkiIj47Gc/G4ceemh8+9vfjmOOOSb+4z/+Ix566KG46qqravWWACBbSmxBFe655574wAc+EHfffXcccsghERGxaNGi2GeffeIb3/hGfPrTn466urotzhs3blxZ2sENN9wQX/rSl2LRokWx++67xze/+c04+uiju+ttAECvIYgFACA7cmIBAMiOIBYAgOwIYgEAyI4gFgCA7AhiAQDIjiAWAIDsCGIBAMiOIBYAgOwIYgEAyI4gFgCA7AhiAQDIjiAWAIDs/P+iGOtamRlcnwAAAABJRU5ErkJggg==", "text/plain": [ "Figure(PyObject
)" ] diff --git a/src/AdvancedHMC.jl b/src/AdvancedHMC.jl index 8e3ed470..9d9f99b7 100644 --- a/src/AdvancedHMC.jl +++ b/src/AdvancedHMC.jl @@ -65,30 +65,6 @@ export Trajectory, MultinomialTS, find_good_stepsize -# Useful defaults - -struct NUTS{TS,TC} end - -""" -$(SIGNATURES) - -Convenient constructor for the no-U-turn sampler (NUTS). -This falls back to `HMCKernel(Trajectory{TS}(int, TC(args...; kwargs...)))` where - -- `TS<:Union{MultinomialTS, SliceTS}` is the type for trajectory sampler -- `TC<:Union{ClassicNoUTurn, GeneralisedNoUTurn, StrictGeneralisedNoUTurn}` is the type for termination criterion. - -See [`ClassicNoUTurn`](@ref), [`GeneralisedNoUTurn`](@ref) and [`StrictGeneralisedNoUTurn`](@ref) for details in parameters. -""" -NUTS{TS,TC}(int::AbstractIntegrator, args...; kwargs...) where {TS,TC} = - HMCKernel(Trajectory{TS}(int, TC(args...; kwargs...))) -NUTS(int::AbstractIntegrator, args...; kwargs...) = - HMCKernel(Trajectory{MultinomialTS}(int, GeneralisedNoUTurn(args...; kwargs...))) -NUTS(ϵ::AbstractScalarOrVec{<:Real}) = - HMCKernel(Trajectory{MultinomialTS}(Leapfrog(ϵ), GeneralisedNoUTurn())) - -export NUTS - # Deprecations for trajectory.jl abstract type AbstractTrajectory end @@ -169,6 +145,7 @@ include("diagnosis.jl") include("sampler.jl") export sample +include("constructors.jl") include("abstractmcmc.jl") ## Without explicit AD backend diff --git a/src/abstractmcmc.jl b/src/abstractmcmc.jl index 6ee4f4cc..7e1222f6 100644 --- a/src/abstractmcmc.jl +++ b/src/abstractmcmc.jl @@ -27,9 +27,6 @@ struct HMCState{ adaptor::TAdapt end -################ -# No glue code # -################ function AbstractMCMC.sample( model::DynamicPPL.Model, sampler::AbstractMCMC.AbstractSampler, @@ -65,153 +62,51 @@ function AbstractMCMC.sample( callback = HMCProgressCallback(N, progress = progress, verbose = verbose) progress = false # don't use AMCMC's progress-funtionality end - return AbstractMCMC.mcmcsample( - rng, - model, - sampler, - N; - param_names = vsyms, - progress = progress, - verbose = verbose, - callback = callback, - kwargs..., - ) -end -### - -""" - $(TYPEDSIGNATURES) -A convenient wrapper around `AbstractMCMC.sample` avoiding explicit construction of [`HMCSampler`](@ref). -""" -function AbstractMCMC.sample( - model::LogDensityModel, - kernel::AbstractMCMCKernel, - metric::AbstractMetric, - adaptor::AbstractAdaptor, - N::Integer; - kwargs..., -) - return AbstractMCMC.sample( - Random.GLOBAL_RNG, - model, - kernel, - metric, - adaptor, - N; - kwargs..., - ) -end + # unpack model + # TODO: is there a more efficient way to do this? + ctxt = model.context + vi = DynamicPPL.VarInfo(model, ctxt) + dists = _get_dists(vi) + dist_lengths = [length(dist) for dist in dists] + vsyms = _name_variables(vi, dist_lengths) -function AbstractMCMC.sample( - rng::Random.AbstractRNG, - model::LogDensityModel, - kernel::AbstractMCMCKernel, - metric::AbstractMetric, - adaptor::AbstractAdaptor, - N::Integer; - progress = true, - verbose = false, - callback = nothing, - kwargs..., -) - sampler = HMCSampler(kernel, metric, adaptor) - if callback === nothing - callback = HMCProgressCallback(N, progress = progress, verbose = verbose) - progress = false # don't use AMCMC's progress-funtionality - end + # make model from Turing output + ℓ = LogDensityProblemsAD.ADgradient(DynamicPPL.LogDensityFunction(vi, model, ctxt)) + d = LogDensityProblems.dimension(ℓ) + model = AbstractMCMC.LogDensityModel(ℓ) + return AbstractMCMC.mcmcsample( rng, model, sampler, N; + param_names = vsyms, progress = progress, verbose = verbose, callback = callback, - kwargs..., - ) -end - -function AbstractMCMC.sample( - model::LogDensityModel, - kernel::AbstractMCMCKernel, - metric::AbstractMetric, - adaptor::AbstractAdaptor, - parallel::AbstractMCMC.AbstractMCMCEnsemble, - N::Integer, - nchains::Integer; - kwargs..., -) - return AbstractMCMC.sample( - Random.GLOBAL_RNG, - model, - kernel, - metric, - adaptor, - N, - nchains; - kwargs..., - ) -end - -function AbstractMCMC.sample( - rng::Random.AbstractRNG, - model::LogDensityModel, - kernel::AbstractMCMCKernel, - metric::AbstractMetric, - adaptor::AbstractAdaptor, - parallel::AbstractMCMC.AbstractMCMCEnsemble, - N::Integer, - nchains::Integer; - progress = true, - verbose = false, - callback = nothing, - kwargs..., -) - sampler = HMCSampler(kernel, metric, adaptor) - if callback === nothing - callback = HMCProgressCallback(N, progress = progress, verbose = verbose) - progress = false # don't use AMCMC's progress-funtionality - end - - return AbstractMCMC.mcmcsample( - rng, - model, - sampler, - parallel, - N, - nchains; - progress = progress, - verbose = verbose, - callback = callback, + vi = vi, + d = d, kwargs..., ) end function AbstractMCMC.step( rng::AbstractRNG, - model::DynamicPPL.model, - spl::HMCSampler, - vi # what type is this?; + model,#::DynamicPPL.model, + spl::AbstractMCMC.AbstractSampler; init_params = nothing, kwargs..., ) - # unpack model - ctxt = model.context - vi = DynamicPPL.VarInfo(model, ctxt) - # make model from Turing output - ℓ = LogDensityProblemsAD.ADgradient(DynamicPPL.LogDensityFunction(vi, model, ctxt)) - model = AbstractMCMC.LogDensityModel(ℓ) + vi = kwargs[:vi] + d = kwargs[:d] + n_adapts = spl.n_adapts # We will need to implement this but it is going to be # Interesting how to plug the transforms along the sampling # processes - #vi_t = Turing.link!!(vi, model) - dists = _get_dists(vi) - dist_lengths = [length(dist) for dist in dists] - vsyms = _name_variables(vi, dist_lengths) - d = LogDensityProblems.dimension(ℓ) + # vi_t = Turing.link!!(vi, model) # Define metric if spl.metric == nothing @@ -224,17 +119,18 @@ function AbstractMCMC.step( hamiltonian = Hamiltonian(metric, model) # Find good eps if not provided one - if iszero(spl.alg.ϵ) + # Before it was spl.alg.ϵ to allow prior sampling + if iszero(spl.ϵ) # Extract parameters. theta = vi[spl] - ϵ = AHMC.find_good_stepsize(rng, hamiltonian, theta) - @info "Found initial step size" ϵ + ϵ = find_good_stepsize(rng, hamiltonian, theta) + println(string("Found initial step size ", ϵ)) else - ϵ = spl.alg.ϵ + ϵ = spl.ϵ end integrator = spl.integrator(ϵ) - κ = spl.kernel(integrator) + kernel = spl.kernel(integrator) adaptor = spl.adaptor(metric, integrator) spl = HMCSampler(kernel, metric, adaptor) @@ -246,16 +142,22 @@ function AbstractMCMC.step( h, t = AdvancedHMC.sample_init(rng, hamiltonian, init_params) # Compute next transition and state. - state = HMCState(0, t, h.metric, κ, adaptor) + state = HMCState(0, t, h.metric, kernel, adaptor) # Take actual first step. - return AbstractMCMC.step(rng, model, spl, state; kwargs...) + return AbstractMCMC.step( + rng, + model, + spl, + state; + n_adapts = n_adapts, + kwargs...) end function AbstractMCMC.step( rng::AbstractRNG, model::LogDensityModel, - spl::HMCSampler, + spl::AbstractMCMC.AbstractSampler, state::HMCState; nadapts::Int = 0, kwargs..., diff --git a/src/constructors.jl b/src/constructors.jl index 2550a4be..c14bc76a 100644 --- a/src/constructors.jl +++ b/src/constructors.jl @@ -28,6 +28,32 @@ struct HMCSampler{K,M,A} <: AbstractMCMC.AbstractSampler end HMCSampler(kernel, metric) = HMCSampler(kernel, metric, Adaptation.NoAdaptation()) +######## +# NUTS # +######## + +struct NUTS_kernel{TS,TC} end + +""" +$(SIGNATURES) + +Convenient constructor for the no-U-turn sampler (NUTS). +This falls back to `HMCKernel(Trajectory{TS}(int, TC(args...; kwargs...)))` where + +- `TS<:Union{MultinomialTS, SliceTS}` is the type for trajectory sampler +- `TC<:Union{ClassicNoUTurn, GeneralisedNoUTurn, StrictGeneralisedNoUTurn}` is the type for termination criterion. + +See [`ClassicNoUTurn`](@ref), [`GeneralisedNoUTurn`](@ref) and [`StrictGeneralisedNoUTurn`](@ref) for details in parameters. +""" +NUTS_kernel{TS,TC}(int::AbstractIntegrator, args...; kwargs...) where {TS,TC} = + HMCKernel(Trajectory{TS}(int, TC(args...; kwargs...))) +NUTS_kernel(int::AbstractIntegrator, args...; kwargs...) = + HMCKernel(Trajectory{MultinomialTS}(int, GeneralisedNoUTurn(args...; kwargs...))) +NUTS_kernel(ϵ::AbstractScalarOrVec{<:Real}) = + HMCKernel(Trajectory{MultinomialTS}(Leapfrog(ϵ), GeneralisedNoUTurn())) + +export NUTS + """ NUTS(n_adapts::Int, δ::Float64; max_depth::Int=10, Δ_max::Float64=1000.0, init_ϵ::Float64=0.0) @@ -51,31 +77,29 @@ Arguments: """ struct NUTS <: AdaptiveHamiltonian n_adapts::Int # number of samples with adaption for ϵ - δ::Float64 # target accept rate + TAP::Float64 # target accept rate max_depth::Int # maximum tree depth Δ_max::Float64 # maximum error ϵ::Float64 # (initial) step size metric integrator + kernel + adaptor end function NUTS( n_adapts::Int, - δ::Float64, - space::Symbol...; + TAP::Float64; # Target Acceptance Probability max_depth::Int=10, Δ_max::Float64=1000.0, init_ϵ::Float64=0.0, metric=nothing, integrator=Leapfrog, -) - NUTS(n_adapts, δ, max_depth, Δ_max, init_ϵ, metric, integrator) -end - -function NUTS(ϵ::Float64, TAP::Float64) - metric = DiagEuclideanMetric(d) - integrator = Leapfrog(ϵ) - kernel = NUTS{MultinomialTS, GeneralisedNoUTurn} - adaptor(metric, integrator) = StanHMCAdaptor(MassMatrixAdaptor(metric), StepSizeAdaptor(TAP, integrator)) - return HMCSampler(kernel, metric, adaptor) -end + kernel = NUTS_kernel{MultinomialTS, GeneralisedNoUTurn} +) + function adaptor(metric, integrator) + return StanHMCAdaptor(MassMatrixAdaptor(metric), + StepSizeAdaptor(TAP, integrator)) + end + NUTS(n_adapts, TAP, max_depth, Δ_max, init_ϵ, metric, integrator, kernel, adaptor) +end From 612e10be177942441057f0ea53de95cf5b7b9e5c Mon Sep 17 00:00:00 2001 From: jaimerz Date: Mon, 5 Jun 2023 16:48:59 +0100 Subject: [PATCH 12/27] axing hmc --- Lab.ipynb | 333 +++++++++----------------------------------- src/AdvancedHMC.jl | 7 +- src/abstractmcmc.jl | 66 --------- src/constructors.jl | 153 ++++++++++++++++---- src/turing_utils.jl | 19 --- 5 files changed, 197 insertions(+), 381 deletions(-) delete mode 100644 src/turing_utils.jl diff --git a/Lab.ipynb b/Lab.ipynb index 1d4b06a6..383d1a52 100644 --- a/Lab.ipynb +++ b/Lab.ipynb @@ -38,8 +38,19 @@ "name": "stderr", "output_type": "stream", "text": [ - "\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling AdvancedHMC [0bf59076-c3b1-5ca4-86bd-e02cd72cde3d]\n", - "\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling Turing [fce5fe82-541a-59a6-adf8-730c64b5f9a0]\n" + "\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling Turing [fce5fe82-541a-59a6-adf8-730c64b5f9a0]\n", + "WARNING: Method definition sample(DynamicPPL.Model{F, argnames, defaultnames, missings, Targs, Tdefaults, Ctx} where Ctx<:AbstractPPL.AbstractContext where Tdefaults where Targs where missings where defaultnames where argnames where F, AbstractMCMC.AbstractSampler, Integer) in module AdvancedHMC at /home/jaimerz/Cambdrige/AdvancedHMC.jl/src/abstractmcmc.jl:30 overwritten in module Inference at /home/jaimerz/Cambdrige/Turing.jl/src/inference/Inference.jl:249.\n", + " ** incremental compilation may be fatally broken for this module **\n", + "\n", + "WARNING: Method definition kwcall(Any, typeof(StatsBase.sample), DynamicPPL.Model{F, argnames, defaultnames, missings, Targs, Tdefaults, Ctx} where Ctx<:AbstractPPL.AbstractContext where Tdefaults where Targs where missings where defaultnames where argnames where F, AbstractMCMC.AbstractSampler, Integer) in module AdvancedHMC at /home/jaimerz/Cambdrige/AdvancedHMC.jl/src/abstractmcmc.jl:30 overwritten in module Inference at /home/jaimerz/Cambdrige/Turing.jl/src/inference/Inference.jl:249.\n", + " ** incremental compilation may be fatally broken for this module **\n", + "\n", + "WARNING: Method definition sample(Random.AbstractRNG, DynamicPPL.Model{F, argnames, defaultnames, missings, Targs, Tdefaults, Ctx} where Ctx<:AbstractPPL.AbstractContext where Tdefaults where Targs where missings where defaultnames where argnames where F, AbstractMCMC.AbstractSampler, Integer) in module AdvancedHMC at /home/jaimerz/Cambdrige/AdvancedHMC.jl/src/abstractmcmc.jl:51 overwritten in module Inference at /home/jaimerz/Cambdrige/Turing.jl/src/inference/Inference.jl:270.\n", + " ** incremental compilation may be fatally broken for this module **\n", + "\n", + "WARNING: Method definition kwcall(Any, typeof(StatsBase.sample), Random.AbstractRNG, DynamicPPL.Model{F, argnames, defaultnames, missings, Targs, Tdefaults, Ctx} where Ctx<:AbstractPPL.AbstractContext where Tdefaults where Targs where missings where defaultnames where argnames where F, AbstractMCMC.AbstractSampler, Integer) in module AdvancedHMC at /home/jaimerz/Cambdrige/AdvancedHMC.jl/src/abstractmcmc.jl:51 overwritten in module Inference at /home/jaimerz/Cambdrige/Turing.jl/src/inference/Inference.jl:270.\n", + " ** incremental compilation may be fatally broken for this module **\n", + "\n" ] } ], @@ -120,217 +131,28 @@ "funnel_model = funnel() | (;x)" ] }, - { - "attachments": {}, - "cell_type": "markdown", - "id": "10dfa4cc", - "metadata": {}, - "source": [ - "## Turing interface" - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "id": "be8a75dd", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Sampler" - ] - }, - "execution_count": 31, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "struct Sampler\n", - " metric\n", - " integrator\n", - " adaptor\n", - " proposal\n", - "end\n", - "\n", - "Sampler(ϵ::Number, TAP::Number) = begin\n", - " metric = DiagEuclideanMetric(d)\n", - " integrator = Leapfrog(ϵ)\n", - " proposal = AdvancedHMC.NUTS{MultinomialTS, GeneralisedNoUTurn}(integrator)\n", - " adaptor = StanHMCAdaptor(MassMatrixAdaptor(metric), StepSizeAdaptor(TAP, integrator))\n", - " \n", - " Sampler(\n", - " metric,\n", - " integrator,\n", - " adaptor,\n", - " proposal)\n", - "end" - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "id": "baaf795f", - "metadata": {}, - "outputs": [ - { - "ename": "LoadError", - "evalue": "TypeError: in Type{...} expression, expected UnionAll, got Type{AdvancedHMC.NUTS}", - "output_type": "error", - "traceback": [ - "TypeError: in Type{...} expression, expected UnionAll, got Type{AdvancedHMC.NUTS}", - "", - "Stacktrace:", - " [1] Sampler(ϵ::Float64, TAP::Float64)", - " @ Main ./In[31]:11", - " [2] top-level scope", - " @ In[32]:3" - ] - } - ], - "source": [ - "initial_θ = randn(21)\n", - "initial_ϵ = 0.1 #find_good_stepsize(hamiltonian, initial_θ)\n", - "spl = Sampler(initial_ϵ, 0.95)" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "id": "3ac319cb", - "metadata": {}, - "source": [ - "### Sampling" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "c516fd54", - "metadata": {}, - "outputs": [ - { - "ename": "LoadError", - "evalue": "TypeError: in Type{...} expression, expected UnionAll, got Type{AdvancedHMC.NUTS}", - "output_type": "error", - "traceback": [ - "TypeError: in Type{...} expression, expected UnionAll, got Type{AdvancedHMC.NUTS}", - "", - "Stacktrace:", - " [1] sample(model::Model{typeof(funnel), (), (), (), Tuple{}, Tuple{}, ConditionContext{NamedTuple{(:x,), Tuple{Vector{Float64}}}, DefaultContext}}, ϵ::Float64, TAP::Float64, n_samples::Int64, n_adapts::Int64; initial_θ::Vector{Float64}, progress::Bool, kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})", - " @ AdvancedHMC ~/Cambdrige/AdvancedHMC.jl/src/sampler.jl:188", - " [2] top-level scope", - " @ In[14]:2" - ] - } - ], - "source": [ - "n_samples, n_adapts = 10_000, 1_000\n", - "samples, stats = sample(funnel_model, 0.1, 0.95, n_samples, n_adapts; initial_θ=initial_θ);" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "id": "7839a767", - "metadata": {}, - "source": [ - "### Plotting" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "2a803eb8", - "metadata": {}, - "outputs": [ - { - "ename": "LoadError", - "evalue": "UndefVarError: `samples` not defined", - "output_type": "error", - "traceback": [ - "UndefVarError: `samples` not defined", - "", - "Stacktrace:", - " [1] top-level scope", - " @ In[15]:1" - ] - } - ], - "source": [ - "theta_mchmc = [sample[1] for sample in samples]\n", - "x10_mchmc = [sample[10+1] for sample in samples];" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "00f17868", - "metadata": {}, - "outputs": [ - { - "ename": "LoadError", - "evalue": "UndefVarError: `x10_mchmc` not defined", - "output_type": "error", - "traceback": [ - "UndefVarError: `x10_mchmc` not defined", - "", - "Stacktrace:", - " [1] top-level scope", - " @ In[16]:8" - ] - } - ], - "source": [ - "fig, axis = plt.subplots(2, 2, figsize=(8,8))\n", - "fig.suptitle(\"Neal's Funnel\", fontsize=16)\n", - "\n", - "fig.delaxes(axis[1,2])\n", - "fig.subplots_adjust(hspace=0)\n", - "fig.subplots_adjust(wspace=0)\n", - "\n", - "axis[1,1].hist(x10_mchmc, bins=100, range=[-6,2])\n", - "axis[1,1].set_yticks([])\n", - "\n", - "axis[2,2].hist(theta_mchmc, bins=100, orientation=\"horizontal\", range=[-4, 2])\n", - "axis[2,2].set_xticks([])\n", - "axis[2,2].set_yticks([])\n", - "\n", - "axis[2,1].hist2d(x10_mchmc, theta_mchmc, bins=100, range=[[-6,2],[-4, 2]])\n", - "axis[2,1].set_xlabel(\"x10\")\n", - "axis[2,1].set_ylabel(\"theta\");" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "id": "440a65f3", - "metadata": {}, - "source": [] - }, { "attachments": {}, "cell_type": "markdown", "id": "d852c160", "metadata": {}, "source": [ - "## Sampling w AbstractMCMC" + "## Sampling" ] }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 11, "id": "486d475d", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "AdvancedHMC.NUTS(500, 0.95, 10, 1000.0, 0.1, nothing, Leapfrog, AdvancedHMC.NUTS_kernel{MultinomialTS, GeneralisedNoUTurn}, AdvancedHMC.var\"#adaptor#38\"{Float64}(0.95))" + "NUTS(500, 0.95, 10, 1000.0, 0.1, nothing, Leapfrog, AdvancedHMC.NUTS_kernel{MultinomialTS, GeneralisedNoUTurn}, AdvancedHMC.var\"#adaptor#38\"{Float64}(0.95))" ] }, - "execution_count": 33, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } @@ -345,7 +167,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 12, "id": "b0193663", "metadata": {}, "outputs": [ @@ -353,27 +175,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mProgressMeter by default refresh meters with additional information in IJulia via `IJulia.clear_output`, which clears all outputs in the cell. \n", - "\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m - To prevent this behaviour, do `ProgressMeter.ijulia_behavior(:append)`. \n", - "\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m - To disable this warning message, do `ProgressMeter.ijulia_behavior(:clear)`.\n", - "\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ ProgressMeter ~/.julia/packages/ProgressMeter/sN2xr/src/ProgressMeter.jl:618\u001b[39m\n", - "\r\u001b[32mSampling 100%|███████████████████████████████| Time: 0:00:02\u001b[39m\r\n", - "\u001b[34m iterations: 5000\u001b[39m\r\n", - "\u001b[34m ratio_divergent_transitions: 0.0\u001b[39m\r\n", - "\u001b[34m ratio_divergent_transitions_during_adaption: 0.0\u001b[39m\r\n", - "\u001b[34m n_steps: 31\u001b[39m\r\n", - "\u001b[34m is_accept: true\u001b[39m\r\n", - "\u001b[34m acceptance_rate: 0.9972711825204867\u001b[39m\r\n", - "\u001b[34m log_density: -66.96166284016837\u001b[39m\r\n", - "\u001b[34m hamiltonian_energy: 77.91847431602888\u001b[39m\r\n", - "\u001b[34m hamiltonian_energy_error: 0.003880195070948389\u001b[39m\r\n", - "\u001b[34m max_hamiltonian_energy_error: -0.013804790095534258\u001b[39m\r\n", - "\u001b[34m tree_depth: 5\u001b[39m\r\n", - "\u001b[34m numerical_error: false\u001b[39m\r\n", - "\u001b[34m step_size: 0.1\u001b[39m\r\n", - "\u001b[34m nom_step_size: 0.1\u001b[39m\r\n", - "\u001b[34m is_adapt: false\u001b[39m\r\n", - "\u001b[34m mass_matrix: DiagEuclideanMetric([1.0, 1.0, 1.0, 1.0, 1.0, 1 ...])\u001b[39m\n" + "\u001b[32mSampling: 100%|█████████████████████████████████████████| Time: 0:00:03\u001b[39m\n" ] }, { @@ -388,60 +190,59 @@ "internals = lp, n_steps, is_accept, acceptance_rate, log_density, hamiltonian_energy, hamiltonian_energy_error, max_hamiltonian_energy_error, tree_depth, numerical_error, step_size, nom_step_size, is_adapt\n", "\n", "Summary Statistics\n", - " \u001b[1m parameters \u001b[0m \u001b[1m mean \u001b[0m \u001b[1m std \u001b[0m \u001b[1m mcse \u001b[0m \u001b[1m ess_bulk \u001b[0m \u001b[1m rhat \u001b[0m \u001b[1m ess_per_se\u001b[0m ⋯\n", - " \u001b[90m Symbol \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Real \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Missin\u001b[0m ⋯\n", + " \u001b[1m parameters \u001b[0m \u001b[1m mean \u001b[0m \u001b[1m std \u001b[0m \u001b[1m mcse \u001b[0m \u001b[1m ess_bulk \u001b[0m \u001b[1m rhat \u001b[0m \u001b[1m ess_per_sec\u001b[0m ⋯\n", + " \u001b[90m Symbol \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Real \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Missing\u001b[0m ⋯\n", "\n", - " θ -0.1142 0.9101 0.0586 438.4964 1.0030 missin ⋯\n", - " z1 0.5951 0.7297 0.0125 3573.6057 1.0001 missin ⋯\n", - " z2 0.5975 0.7256 0.0127 3211.0596 1.0002 missin ⋯\n", - " z3 -0.4172 0.7031 0.0102 4921.0006 1.0003 missin ⋯\n", - " z4 0.0834 0.6897 0.0066 11053.8383 1.0001 missin ⋯\n", - " z5 0.9380 0.7870 0.0197 1558.6845 1.0005 missin ⋯\n", - " z6 -1.6607 0.9404 0.0338 713.5510 1.0015 missin ⋯\n", - " z7 -0.0488 0.7152 0.0072 9860.1140 1.0004 missin ⋯\n", - " z8 0.3373 0.7075 0.0088 6613.3255 1.0000 missin ⋯\n", - " z9 -1.5898 0.9030 0.0310 798.0804 1.0007 missin ⋯\n", - " z10 -0.8176 0.7483 0.0168 2042.7808 1.0007 missin ⋯\n", - " z11 0.9678 0.7936 0.0205 1456.7962 1.0009 missin ⋯\n", - " z12 0.0704 0.7093 0.0076 8631.8765 1.0014 missin ⋯\n", - " z13 0.0540 0.6963 0.0068 10316.4681 1.0004 missin ⋯\n", - " z14 -0.2689 0.6955 0.0082 7391.8059 1.0007 missin ⋯\n", - " z15 -0.0501 0.6776 0.0070 9489.4594 1.0001 missin ⋯\n", - " z16 -0.6249 0.7406 0.0131 3324.0001 1.0001 missin ⋯\n", - " z17 0.8342 0.7784 0.0177 1990.5056 1.0011 missin ⋯\n", - " z18 -0.2172 0.7234 0.0081 8076.9260 1.0007 missin ⋯\n", - " z19 0.5269 0.7269 0.0111 4450.8085 1.0000 missin ⋯\n", - " z20 0.6031 0.7451 0.0136 3051.5405 1.0002 missin ⋯\n", - "\u001b[36m 1 column omitted\u001b[0m\n", + " θ -0.1245 1.0501 0.1363 159.9420 1.0123 missing ⋯\n", + " z1 0.6028 0.7378 0.0177 1736.2126 1.0017 missing ⋯\n", + " z2 0.6061 0.7430 0.0174 1793.1890 1.0015 missing ⋯\n", + " z3 -0.4356 0.7286 0.0113 4746.5545 1.0012 missing ⋯\n", + " z4 0.0796 0.6841 0.0067 9836.9935 1.0023 missing ⋯\n", + " z5 0.9369 0.7826 0.0328 530.2843 1.0051 missing ⋯\n", + " z6 -1.6807 0.9300 0.0582 228.9274 1.0084 missing ⋯\n", + " z7 -0.0498 0.7094 0.0076 8877.0102 1.0035 missing ⋯\n", + " z8 0.3309 0.7145 0.0085 7189.7997 1.0000 missing ⋯\n", + " z9 -1.6002 0.9044 0.0540 261.9790 1.0070 missing ⋯\n", + " z10 -0.8282 0.7553 0.0249 906.6986 1.0033 missing ⋯\n", + " z11 0.9554 0.7815 0.0317 597.5777 1.0036 missing ⋯\n", + " z12 0.0578 0.6967 0.0075 8507.8578 1.0024 missing ⋯\n", + " z13 0.0516 0.7147 0.0078 8416.6638 1.0026 missing ⋯\n", + " z14 -0.2623 0.7044 0.0087 6737.3813 1.0007 missing ⋯\n", + " z15 -0.0670 0.6931 0.0075 8511.0613 1.0045 missing ⋯\n", + " z16 -0.6259 0.7454 0.0163 2211.5436 1.0016 missing ⋯\n", + " z17 0.8255 0.7503 0.0254 875.9028 1.0038 missing ⋯\n", + " z18 -0.2208 0.6699 0.0081 6823.9830 1.0050 missing ⋯\n", + " z19 0.5351 0.7360 0.0137 2951.7044 1.0014 missing ⋯\n", + " z20 0.6126 0.7359 0.0174 1771.7843 1.0001 missing ⋯\n", "\n", "Quantiles\n", " \u001b[1m parameters \u001b[0m \u001b[1m 2.5% \u001b[0m \u001b[1m 25.0% \u001b[0m \u001b[1m 50.0% \u001b[0m \u001b[1m 75.0% \u001b[0m \u001b[1m 97.5% \u001b[0m\n", " \u001b[90m Symbol \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m\n", "\n", - " θ -2.7268 -0.4391 0.0589 0.4664 1.1428\n", - " z1 -0.7259 0.0909 0.5531 1.0597 2.1330\n", - " z2 -0.7320 0.0968 0.5510 1.0765 2.1194\n", - " z3 -1.8865 -0.8567 -0.3753 0.0600 0.8964\n", - " z4 -1.2797 -0.3649 0.0767 0.5289 1.4626\n", - " z5 -0.4116 0.3645 0.9002 1.4369 2.6065\n", - " z6 -3.5659 -2.2948 -1.6398 -0.9795 0.0053\n", - " z7 -1.4645 -0.5076 -0.0417 0.4085 1.3643\n", - " z8 -0.9988 -0.1268 0.2998 0.7856 1.7950\n", - " z9 -3.4437 -2.1926 -1.5837 -0.9423 0.0058\n", - " z10 -2.4030 -1.3111 -0.7790 -0.2682 0.4994\n", - " z11 -0.3932 0.3855 0.9154 1.5127 2.5882\n", - " z12 -1.3413 -0.3642 0.0643 0.5040 1.5063\n", - " z13 -1.3358 -0.3946 0.0440 0.5027 1.4182\n", - " z14 -1.6791 -0.7329 -0.2367 0.1877 1.0967\n", - " z15 -1.4014 -0.4767 -0.0412 0.3713 1.3082\n", - " z16 -2.1662 -1.1304 -0.5729 -0.0965 0.7186\n", - " z17 -0.5451 0.2592 0.7955 1.3518 2.4927\n", - " z18 -1.7027 -0.6660 -0.1872 0.2486 1.1677\n", - " z19 -0.7848 0.0301 0.4696 1.0010 2.0437\n", - " z20 -0.8105 0.0845 0.5635 1.0963 2.1569\n" + " θ -3.4951 -0.4026 0.0872 0.4837 1.1338\n", + " z1 -0.7462 0.0891 0.5548 1.0843 2.1593\n", + " z2 -0.7566 0.0868 0.5530 1.0948 2.1339\n", + " z3 -1.9759 -0.8944 -0.3959 0.0595 0.8991\n", + " z4 -1.2991 -0.3403 0.0688 0.5048 1.4345\n", + " z5 -0.4169 0.3524 0.9037 1.4556 2.5339\n", + " z6 -3.5930 -2.3300 -1.6655 -1.0109 0.0192\n", + " z7 -1.4794 -0.4880 -0.0334 0.3924 1.3136\n", + " z8 -0.9799 -0.1342 0.2952 0.7901 1.8262\n", + " z9 -3.4083 -2.2233 -1.5918 -0.9458 0.0267\n", + " z10 -2.4206 -1.3260 -0.7786 -0.2545 0.4690\n", + " z11 -0.3675 0.3674 0.9071 1.4885 2.5373\n", + " z12 -1.3281 -0.3874 0.0547 0.5148 1.4525\n", + " z13 -1.3551 -0.3883 0.0379 0.4945 1.5401\n", + " z14 -1.7416 -0.7128 -0.2161 0.1898 1.1052\n", + " z15 -1.4698 -0.5130 -0.0572 0.3674 1.3257\n", + " z16 -2.2292 -1.1115 -0.5676 -0.0968 0.7127\n", + " z17 -0.4812 0.2640 0.7886 1.3232 2.4005\n", + " z18 -1.6047 -0.6439 -0.1929 0.2034 1.1123\n", + " z19 -0.8135 0.0234 0.4921 1.0112 2.0545\n", + " z20 -0.7205 0.0985 0.5524 1.0887 2.1886\n" ] }, - "execution_count": 37, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" }, @@ -469,7 +270,7 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 13, "id": "9c61e0ab", "metadata": {}, "outputs": [], @@ -480,13 +281,13 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 14, "id": "8869229b", "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAArEAAAL3CAYAAACd2x1cAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAABLwUlEQVR4nO3deZRdVZkw7rcyVchUhBCGkCIDASWChCaCDC3BIGEQGtuB9YEsgjS2/gC1g40BxYDaIoo4gELz+Qmi8jUiIh0ik2FqFFGGdKuMQUIgYchAUiFAZbq/P/hy776VusWt1HBrVz3PWrXWrnP3OWffW5XiZe/3vLuuUCgUAgAAMtKv1gMAAID2EsQCAJAdQSwAANkRxAIAkB1BLAAA2RHEAgCQHUEsAADZEcQCAJAdQSwAANkRxAI1MX78+Kirq4u6urr45S9/WbHf4YcfHnV1dXHNNdd03+BaWLRoUdTV1cX48eO3eG3z++hKmz+ntr5+/etfd+kYeooLLrgg6urq4oILLqj1UIAaG1DrAQB88YtfjOOPPz4GDPAnqS0zZsyInXbaqdXXdt11124eDUBt+S8GUFNDhgyJp556Kn70ox/Fpz71qVoPp0ebPXt2TJs2rdbDAOgRpBMANfXZz342IiK+8pWvxOuvv17j0QCQC0EsUFNHH310HHroofHiiy/Gd77znXaf//DDD8dJJ50Uu+66a9TX18d2220XM2bMiN/85jet9n/sscdizpw5cfDBB8cuu+wSgwYNilGjRsXhhx8ev/jFLzr6dopefPHF+OxnPxt77LFHDB48OIYMGRKNjY0xffr0uOSSSzrtPi1NmzYt6urq4p577mn19Uo5penxZcuWxRlnnBGNjY0xaNCgaGxsjLPOOitWrVq1xfWuueaaqKuri5kzZ8batWvj3HPPjUmTJkV9fX3stNNOccopp8SSJUsqjnfp0qUxa9as2HPPPWPIkCExfPjweM973hOXX355bNiwoQOfBNDbCWKBmrv44osjIuKb3/xmrFixourzvve978X+++8f1113XYwaNSqOO+64eNe73hX33HNPHHPMMfGVr3xli3MuvfTS+MpXvhIrV66MvffeO/7xH/8x3vGOd8Tdd98dJ5xwQsyaNavD7+ell16KqVOnxve///1obm6OI488Mo477riYMGFCLFiwIL72ta91+B5d5fnnn4+/+7u/ixtvvDH233//+MAHPhBr1qyJyy+/PI444ohYv359q+etXr06DjrooLjyyitj8uTJcdRRR0WhUIhrr702Dj744Fi9evUW59x3332x1157xXe+851488034wMf+EAcfPDB8cwzz8RZZ50VxxxzTMX7AUQBoAbGjRtXiIjCf/3XfxUKhULhH//xHwsRUfiXf/mXsn7Tp08vRETh6quvLjt+2223Ferq6grbb7994d577y177X/+538KY8eOLURE4Z577il77Z577ik888wzW4zniSeeKJ7z4IMPlr327LPPFiKiMG7cuKre24UXXliIiMInP/nJwqZNm8peW7duXeG3v/1tVdfZLCIKEVG4++6737bvoYce2mbfOXPmFCKiMGfOnFaPR0Rh5syZhTfffLP42uLFiwu77LJLISIK1113Xdl5V199dfG8GTNmFFavXl18beXKlYUpU6YUIqLw9a9/vey8F198sTBq1KhCXV1d4Yc//GFh48aNxdeWL19eeP/731+IiMKFF15Y1fiBvsdMLNAjfP3rX48BAwbED3/4w3juuefetv+cOXOiUCjElVdeGe973/vKXtt7773j0ksvjYiIyy67rOy1Qw89NCZOnLjF9d7xjnfE+eefHxHRZsmvarz88ssREXHkkUduUX5r4MCBMX369K267mGHHdZqea2ZM2d2aLypsWPHxg9+8IOor68vHtucThAR8dvf/rbV84YOHRpXX311jBgxonhs5MiRMXv27FbP++53vxsrVqyIM844Iz796U9Hv36l/xyNGjUqrr322hg4cGBcfvnlUSgUOu39Ab2H6gRAj/COd7wjPvGJT8RVV10V559/flx77bUV+y5fvjz++Mc/xjbbbBPHHntsq302P8X/+9//fovXXnvttbj11lvj0UcfjeXLl8e6desi4q081oiIJ598skPvZf/9948f/vCHMXv27CgUCnHEEUfEsGHDOnTNiMoltg455JAOX3uz6dOnx5AhQ7Y4vueee0ZEVMxvnTp1auy8885Vnzdv3ryIiDjhhBNavd4uu+wSu+++ezz22GPx9NNPxx577FH9mwD6BEEs0GNccMEF8bOf/Sx+/vOfx+c///l497vf3Wq/Z599NgqFQrzxxhtlM4atWbZsWdn3c+fOjVNPPbXN3Numpqb2Dz5x8sknx5133hk///nP48Mf/nD0798/Jk+eHIccckh85CMfife///1bdd3uKLFVqd7s5hnWN998s1PO+9vf/hYREX//93//tmNatmyZIBbYgiAW6DF23nnn+OxnPxsXXXRRnHvuucXZupY2bdoUERHDhg2LD3/4w1Vff8mSJXHCCSfEG2+8Eeecc06cdNJJMX78+Bg2bFj069cv7rjjjpgxY0aHl6/79esXP/vZz+K8886LefPmxe9+97v43e9+F1dccUVcccUVceyxx8ZNN90U/fv379B9tsbmz66SdFm/Pdp73uZxfOQjH4mhQ4e22XfUqFFbNSagdxPEAj3KF77whbjqqqviN7/5Tdx3332t9mlsbIyIt7Zj/fGPf1x1ADV37tx444034kMf+lCxIkLq6aef3vqBt2Ly5MkxefLk+Nd//dcoFApx1113xYknnhhz586Na6+9Nk499dROvV9ExKBBgyIiYs2aNa2+Xk2+cXdobGyMp59+Or7whS/E1KlTaz0cIEMe7AJ6lIaGhjjvvPMiIuKcc85ptc+YMWPi3e9+d6xZsyZuu+22qq+9cuXKiIgYN27cFq8VCoW47rrrtmLE1amrq4vp06fHiSeeGBERCxYs6JL77LLLLhER8fjjj2/x2uuvvx533313l9y3vY466qiIiE6tzQv0LYJYoMc544wzYtddd40HH3wwHnjggVb7bK61euqpp8bcuXO3eL1QKMSDDz4Yd9xxR/HY5oeMfvnLXxYf4oqI2LhxY3z5y19u9SGwrXHttdfGww8/vMXxNWvWFDchaC2Q7gyHH354RET84Ac/KHuYau3atfHJT34ynn/++S65b3v967/+a2y77bZx6aWXxre//e3iw3WpZ599Nn72s5/VYHRADgSxQI9TX19f3Kig0la0xx57bHzve9+LlStXxnHHHRe77757fPCDH4yTTjopjjjiiNhpp53ive99b9x1111l5+y3337xwgsvxB577BEf/OAH44QTTojddtstLr744vjCF77QKeP/1a9+FVOnTo1ddtkljjnmmPj4xz8exxxzTDQ2NsaCBQtir732itNPP71T7tXSxz72sZg6dWosXrw43vWud8UHP/jBOProo2PChAlxzz33xCc+8YkuuW97jR07Nm6++eYYOXJkfP7zny/uZvbxj388jj322Jg0aVJMnDgxLr/88loPFeihBLFAj3TyySfH3nvv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K7xdmNuFZs+eHRdffHGbfR5//PG444474he/+EXce++90b9//1i0aFFMmDAhHn300ZgyZUrFc1vOxK5atSrGjRsXixcvbvNDoaSpqSkaGxvj+eefjxEjRtR6ONnwubWfz2zrvPrqqzF+/PhYtGhRjBw5stbDAeiwQqEQa9asiTFjxkS/fpUzX2saxC5btixWrFjRZp+JEyfGxz72sZg7d27U1dUVj2/cuDH69+8fJ510UvzkJz+p6n5NTU3R0NAQq1ev9h/JKvnMto7Prf18ZlvH5wb0VTVNJxg9enSMHv32hc6///3vx9e+9rXi90uXLo0ZM2bE9ddfHwcccEBXDhEAgB4oi5zYXXfdtez7YcOGRUTEbrvtFmPHjq3FkAAAqKGsSmx1VH19fcyZMyfq6+trPZRs+My2js+t/XxmW8fnBvRVNc2JBQCArdGnZmIBAOgdBLEAAGRHEAsAQHYEsQAAZKdPB7Hz5s2LAw44ILbZZpsYOXJkHH/88bUeUjaam5tjypQpUVdXFwsWLKj1cHqsRYsWxWmnnRYTJkyIbbbZJnbbbbeYM2dOrFu3rtZD63F+8IMfxPjx42Pw4MFxwAEHxB//+MdaD6nHuuiii+I973lPDB8+PHbYYYc4/vjj48kn7eUL9C19Noi98cYb4+STT45TTz01/vu//zt+97vfxYknnljrYWXjnHPOiTFjxtR6GD3eE088EZs2bYp///d/j7/+9a/xne98J6688so477zzaj20HuX666+PWbNmxZw5c+KRRx6JffbZJ2bMmBGvvPJKrYfWI917771xxhlnxB/+8Ie48847Y/369XHEEUfE2rVraz00gG7TJ0tsbdiwIcaPHx8XXnhhnHbaabUeTnZuvfXWmDVrVtx4443xrne9Kx599NGYMmVKrYeVjW9961txxRVXxN/+9rdaD6XHOOCAA+I973lPXH755RERsWnTpmhsbIyzzjorZs+eXePR9XzLli2LHXbYIe6999543/veV+vhAHSLPjkT+8gjj8SSJUuiX79+se+++8bOO+8cRx11VPzlL3+p9dB6vJdffjlOP/30+OlPfxpDhgyp9XCytHr16thuu+1qPYweY926dfHwww/H4YcfXjzWr1+/OPzww+OBBx6o4cjysXr16ogIv1dAn9Ing9jNM2AXXHBBfOlLX4pbbrklRo4cGdOmTYuVK1fWeHQ9V6FQiJkzZ8anPvWpmDp1aq2Hk6WFCxfGZZddFv/8z/9c66H0GMuXL4+NGzfGjjvuWHZ8xx13jJdeeqlGo8rHpk2b4nOf+1wcfPDBsddee9V6OADdplcFsbNnz466uro2vzbnKEZEfPGLX4wPf/jDsd9++8XVV18ddXV1ccMNN9T4XXS/aj+3yy67LNasWRPnnnturYdcc9V+ZqklS5bEkUceGR/96Efj9NNPr9HI6W3OOOOM+Mtf/hL/8R//UeuhAHSrAbUeQGc6++yzY+bMmW32mThxYrz44osRETF58uTi8fr6+pg4cWIsXry4K4fYI1X7ud11113xwAMPbLFH+9SpU+Okk06Kn/zkJ104yp6l2s9ss6VLl8Zhhx0WBx10UFx11VVdPLq8bL/99tG/f/94+eWXy46//PLLsdNOO9VoVHk488wz45Zbbon77rsvxo4dW+vhAHSrXhXEjh49OkaPHv22/fbbb7+or6+PJ598Mg455JCIiFi/fn0sWrQoxo0b19XD7HGq/dy+//3vx9e+9rXi90uXLo0ZM2bE9ddfHwcccEBXDrHHqfYzi3hrBvawww4rzvj369erFkA6bNCgQbHffvvF/Pnzi2XuNm3aFPPnz48zzzyztoProQqFQpx11llx0003xT333BMTJkyo9ZAAul2vCmKrNWLEiPjUpz4Vc+bMicbGxhg3blx861vfioiIj370ozUeXc+16667ln0/bNiwiIjYbbfdzAJVsGTJkpg2bVqMGzcuLrnkkli2bFnxNbOMJbNmzYpTTjklpk6dGvvvv39897vfjbVr18app55a66H1SGeccUZcd911cfPNN8fw4cOLucMNDQ2xzTbb1Hh0AN2jTwaxEW+VORowYECcfPLJ8cYbb8QBBxwQd911V4wcObLWQ6MXufPOO2PhwoWxcOHCLQL9PljdrqITTjghli1bFl/+8pfjpZdeiilTpsRtt922xcNevOWKK66IiIhp06aVHb/66qvfNs0FoLfok3ViAQDIm+Q8AACyI4gFACA7glgAALIjiAUAIDuCWAAAsiOIBQAgO4JYAACyI4gFACA7gljoBC+++GKceOKJsccee0S/fv3ic5/7XKv9brjhhnjnO98ZgwcPjr333jt+85vfdO9AAaCXEMRCJ2hubo7Ro0fHl770pdhnn31a7fP73/8+/tf/+l9x2mmnxaOPPhrHH398HH/88fGXv/ylm0cLAPmz7SxUYdmyZbH33nvHZz7zmTjvvPMi4q2gdNq0aXHrrbfG9OnTi32nTZsWU6ZMie9+97tl1zjhhBNi7dq1ccsttxSPvfe9740pU6bElVde2S3vAwB6CzOxUIXRo0fHj3/847jgggvioYceijVr1sTJJ58cZ555ZlkA25YHHnggDj/88LJjM2bMiAceeKArhgwAvdqAWg8AcnH00UfH6aefHieddFJMnTo1hg4dGhdddFHV57/00kux4447lh3bcccd46WXXursoQJAr2cmFtrhkksuiQ0bNsQNN9wQP//5z6O+vr7WQwKAPkkQC+3wzDPPxNKlS2PTpk2xaNGidp270047xcsvv1x27OWXX46ddtqpE0cIAH2DIBaqtG7duvj4xz8eJ5xwQnz1q1+Nf/qnf4pXXnml6vMPPPDAmD9/ftmxO++8Mw488MDOHioA9HpyYqFKX/ziF2P16tXx/e9/P4YNGxa/+c1v4hOf+ESx2sCCBQsiIuK1116LZcuWxYIFC2LQoEExefLkiIj47Gc/G4ceemh8+9vfjmOOOSb+4z/+Ix566KG46qqravWWACBbSmxBFe655574wAc+EHfffXcccsghERGxaNGi2GeffeIb3/hGfPrTn466urotzhs3blxZ2sENN9wQX/rSl2LRokWx++67xze/+c04+uiju+ttAECvIYgFACA7cmIBAMiOIBYAgOwIYgEAyI4gFgCA7AhiAQDIjiAWAIDsCGIBAMiOIBYAgOwIYgEAyI4gFgCA7AhiAQDIjiAWAIDs/P+iGOtamRlcnwAAAABJRU5ErkJggg==", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAArEAAAL3CAYAAACd2x1cAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAABLCUlEQVR4nO3de5iVZb04/O8AMgQCigIeGBnxTJqYqHkoMSxP5baD23dnbrF+Vr7aYWMlWIpWO7XMSi3NXzvNXe5tdjIj2xqK7YosD1RuD9tDEwaKKDEgySCw3j98WetewzzjGpiZNffM53NdXNe9nnU/z3OvNRy+3Pf3+d4NpVKpFAAAkJFB9R4AAAB0lSAWAIDsCGIBAMiOIBYAgOwIYgEAyI4gFgCA7AhiAQDIjiAWAIDsCGIBAMiOIBaoi+bm5mhoaIiGhob4/ve/X9jv6KOPjoaGhrjhhht6b3DttLS0RENDQzQ3N2/y3sbP0ZM2fk+d/frxj3/co2PoKy666KJoaGiIiy66qN5DAepsSL0HAPCpT30qTjrppBgyxF9JnTnmmGNihx126PC9XXbZpZdHA1Bf/sUA6mr48OHxv//7v/HNb34zPvShD9V7OH3arFmzYtq0afUeBkCfIJ0AqKuPfvSjERHxmc98Jv7+97/XeTQA5EIQC9TV8ccfH0ceeWQ888wz8eUvf7nL599///1x6qmnxi677BKNjY0xZsyYOOaYY+JnP/tZh/0ffvjhmDNnThx++OGx8847x9ChQ2O77baLo48+Or73ve9t6ccpe+aZZ+KjH/1o7LnnnjFs2LAYPnx4NDU1xfTp0+Pyyy/vtvu0N23atGhoaIj58+d3+H5RTml6fNmyZXH22WdHU1NTDB06NJqamuLDH/5wrFixYpPr3XDDDdHQ0BAzZsyI1atXx+zZs2P33XePxsbG2GGHHeL000+PxYsXF453yZIlMXPmzNhnn31i+PDhMXLkyDjooIPi6quvjnXr1m3BNwH0d4JYoO4uu+yyiIj4whe+EC+88ELN5331q1+Ngw8+OG666abYbrvt4sQTT4zXvva1MX/+/DjhhBPiM5/5zCbnXHHFFfGZz3wmli9fHvvtt1+8853vjL322ivuvvvuOOWUU2LmzJlb/HmeffbZmDp1alx55ZXR1tYWxx57bJx44omx6667xsKFC+Nzn/vcFt+jpzz99NPx+te/Pn7wgx/EwQcfHG95y1ti1apVcfXVV8db3/rWePnllzs8r7W1NQ477LC49tprY/LkyXHcccdFqVSKG2+8MQ4//PBobW3d5Jxf/vKXse+++8aXv/zlWLNmTbzlLW+Jww8/PJ588sn48Ic/HCeccELh/QCiBFAHEydOLEVE6b//+79LpVKp9M53vrMUEaV/+Zd/qeo3ffr0UkSUrr/++qrjP//5z0sNDQ2l7bffvnTPPfdUvffHP/6xNGHChFJElObPn1/13vz580tPPvnkJuN59NFHy+fce++9Ve/9+c9/LkVEaeLEiTV9tosvvrgUEaUPfOADpQ0bNlS9t3bt2tIvfvGLmq6zUUSUIqJ09913v2rfI488stO+c+bMKUVEac6cOR0ej4jSjBkzSmvWrCm/t2jRotLOO+9ciojSTTfdVHXe9ddfXz7vmGOOKbW2tpbfW758eWnKlCmliCh9/vOfrzrvmWeeKW233XalhoaG0te//vXS+vXry+89//zzpTe/+c2liChdfPHFNY0fGHjMxAJ9wuc///kYMmRIfP3rX4+//OUvr9p/zpw5USqV4tprr403velNVe/tt99+ccUVV0RExFVXXVX13pFHHhmTJk3a5Hp77bVXXHDBBRERnZb8qsXSpUsjIuLYY4/dpPzWVlttFdOnT9+s6x511FEdlteaMWPGFo03NWHChPja174WjY2N5WMb0wkiIn7xi190eN6IESPi+uuvj1GjRpWPbbvttjFr1qwOz/vKV74SL7zwQpx99tlx1llnxaBBlX+Otttuu7jxxhtjq622iquvvjpKpVK3fT6g/1CdAOgT9tprr3jf+94X1113XVxwwQVx4403FvZ9/vnn43e/+1285jWvibe//e0d9tn4FP9vfvObTd578cUX4/bbb48HH3wwnn/++Vi7dm1EvJLHGhHx2GOPbdFnOfjgg+PrX/96zJo1K0qlUrz1rW+NrbfeeouuGVFcYuuII47Y4mtvNH369Bg+fPgmx/fZZ5+IiML81qlTp8aOO+5Y83lz586NiIhTTjmlw+vtvPPOsccee8TDDz8cjz/+eOy55561fwhgQBDEAn3GRRddFN/5znfiu9/9bnz84x+P173udR32+/Of/xylUileeumlqhnDjixbtqzq9W233RZnnHFGp7m3K1eu7PrgE6eddlrceeed8d3vfjfe9a53xeDBg2Py5MlxxBFHxLvf/e5485vfvFnX7Y0SW0X1ZjfOsK5Zs6ZbznvqqaciIuKNb3zjq45p2bJlglhgE4JYoM/Ycccd46Mf/WhccsklMXv27PJsXXsbNmyIiIitt9463vWud9V8/cWLF8cpp5wSL730Unzyk5+MU089NZqbm2PrrbeOQYMGxR133BHHHHPMFi9fDxo0KL7zne/E+eefH3Pnzo1f//rX8etf/zquueaauOaaa+Ltb397/OhHP4rBgwdv0X02x8bvrki6rN8VXT1v4zje/e53x4gRIzrtu912223WmID+TRAL9CnnnXdeXHfddfGzn/0sfvnLX3bYp6mpKSJe2Y71W9/6Vs0B1G233RYvvfRSvOMd7yhXREg9/vjjmz/wDkyePDkmT54cn/jEJ6JUKsVdd90V73nPe+K2226LG2+8Mc4444xuvV9ExNChQyMiYtWqVR2+X0u+cW9oamqKxx9/PM4777yYOnVqvYcDZMiDXUCfMnr06Dj//PMjIuKTn/xkh3122mmneN3rXherVq2Kn//85zVfe/ny5RERMXHixE3eK5VKcdNNN23GiGvT0NAQ06dPj/e85z0REbFw4cIeuc/OO+8cERGPPPLIJu/9/e9/j7vvvrtH7ttVxx13XEREt9bmBQYWQSzQ55x99tmxyy67xL333hsLFizosM/GWqtnnHFG3HbbbZu8XyqV4t5774077rijfGzjQ0bf//73yw9xRUSsX78+Lrzwwg4fAtscN954Y9x///2bHF+1alV5E4KOAunucPTRR0dExNe+9rWqh6lWr14dH/jAB+Lpp5/ukft21Sc+8YnYZptt4oorrogvfelL5YfrUn/+85/jO9/5Th1GB+RAEAv0OY2NjeWNCoq2on37298eX/3qV2P58uVx4oknxh577BFve9vb4tRTT423vvWtscMOO8Qb3vCGuOuuu6rOOfDAA+Ovf/1r7LnnnvG2t70tTjnllNhtt93isssui/POO69bxv/DH/4wpk6dGjvvvHOccMIJ8d73vjdOOOGEaGpqioULF8a+++4bZ555Zrfcq71//Md/jKlTp8aiRYvita99bbztbW+L448/PnbdddeYP39+vO997+uR+3bVhAkT4tZbb41tt902Pv7xj5d3M3vve98bb3/722P33XePSZMmxdVXX13voQJ9lCAW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fitXrozRo0dHa2urfyRr5DvbPL63rvOdbR7fGzBQ1TWdYOzYsTF27NhX7XfllVfG5z73ufLrJUuWxDHHHBM333xzHHLIIT05RAAA+qAscmJ32WWXqtdbb711RETstttuMWHChHoMCQCAOsqqxNaWamxsjDlz5kRjY2O9h5IN39nm8b11ne9s8/jegIGqrjmxAACwOQbUTCwAAP2DIBYAgOwIYgEAyI4gFgCA7AzoIHbu3LlxyCGHxGte85rYdttt46STTqr3kLLR1tYWU6ZMiYaGhli4cGG9h9NntbS0xPvf//7Ydddd4zWveU3stttuMWfOnFi7dm29h9bnfO1rX4vm5uYYNmxYHHLIIfG73/2u3kPqsy655JI46KCDYuTIkTFu3Lg46aST4rHHHqv3sAB61YANYn/wgx/EaaedFmeccUb84Q9/iF//+tfxnve8p97DysYnP/nJ2Gmnneo9jD7v0UcfjQ0bNsQ3vvGN+J//+Z/48pe/HNdee22cf/759R5an3LzzTfHzJkzY86cOfHAAw/E/vvvH8ccc0w899xz9R5an3TPPffE2WefHb/97W/jzjvvjJdffjne+ta3xurVq+s9NIBeMyBLbK1bty6am5vj4osvjve///31Hk52br/99pg5c2b84Ac/iNe+9rXx4IMPxpQpU+o9rGx88YtfjGuuuSaeeuqpeg+lzzjkkEPioIMOiquvvjoiIjZs2BBNTU3x4Q9/OGbNmlXn0fV9y5Yti3HjxsU999wTb3rTm+o9HIBeMSBnYh944IFYvHhxDBo0KA444IDYcccd47jjjouHHnqo3kPr85YuXRpnnnlm/Pu//3sMHz683sPJUmtra4wZM6bew+gz1q5dG/fff38cffTR5WODBg2Ko48+OhYsWFDHkeWjtbU1IsLvK2BAGZBB7MYZsIsuuig+/elPx09/+tPYdtttY9q0abF8+fI6j67vKpVKMWPGjPjQhz4UU6dOrfdwsvTEE0/EVVddFR/84AfrPZQ+4/nnn4/169fH+PHjq46PHz8+nn322TqNKh8bNmyIj33sY3H44YfHvvvuW+/hAPSafhXEzpo1KxoaGjr9tTFHMSLiU5/6VLzrXe+KAw88MK6//vpoaGiIW265pc6fovfV+r1dddVVsWrVqpg9e3a9h1x3tX5nqcWLF8exxx4bJ598cpx55pl1Gjn9zdlnnx0PPfRQ/Od//me9hwLQq4bUewDd6dxzz40ZM2Z02mfSpEnxzDPPRETE5MmTy8cbGxtj0qRJsWjRop4cYp9U6/d21113xYIFCzbZo33q1Klx6qmnxre//e0eHGXfUut3ttGSJUviqKOOisMOOyyuu+66Hh5dXrbffvsYPHhwLF26tOr40qVLY4cddqjTqPJwzjnnxE9/+tP45S9/GRMmTKj3cAB6Vb8KYseOHRtjx4591X4HHnhgNDY2xmOPPRZHHHFERES8/PLL0dLSEhMnTuzpYfY5tX5vV155ZXzuc58rv16yZEkcc8wxcfPNN8chhxzSk0Psc2r9ziJemYE96qijyjP+gwb1qwWQLTZ06NA48MADY968eeUydxs2bIh58+bFOeecU9/B9VGlUik+/OEPx49+9KOYP39+7LrrrvUeEkCv61dBbK1GjRoVH/rQh2LOnDnR1NQUEydOjC9+8YsREXHyySfXeXR91y677FL1euutt46IiN12280sUIHFixfHtGnTYuLEiXH55ZfHsmXLyu+ZZayYOXNmnH766TF16tQ4+OCD4ytf+UqsXr06zjjjjHoPrU86++yz46abbopbb701Ro4cWc4dHj16dLzmNa+p8+gAeseADGIjXilzNGTIkDjttNPipZdeikMOOSTuuuuu2Hbbbes9NPqRO++8M5544ol44oknNgn0B2B1u0KnnHJKLFu2LC688MJ49tlnY8qUKfHzn/98k4e9eMU111wTERHTpk2rOn799de/apoLQH8xIOvEAgCQN8l5AABkRxALAEB2BLEAAGRHEAsAQHYEsQAAZEcQCwBAdgSxAABkRxALAEB2BLHQDZ555pl4z3veE3vuuWcMGjQoPvaxj3XY75Zbbom99947hg0bFvvtt1/87Gc/692BAkA/IYiFbtDW1hZjx46NT3/607H//vt32Oc3v/lN/NM//VO8//3vjwcffDBOOumkOOmkk+Khhx7q5dECQP5sOws1WLZsWey3337xkY98JM4///yIeCUonTZtWtx+++0xffr0ct9p06bFlClT4itf+UrVNU455ZRYvXp1/PSnPy0fe8Mb3hBTpkyJa6+9tlc+BwD0F2ZioQZjx46Nb33rW3HRRRfFfffdF6tWrYrTTjstzjnnnKoAtjMLFiyIo48+uurYMcccEwsWLOiJIQNAvzak3gOAXBx//PFx5plnxqmnnhpTp06NESNGxCWXXFLz+c8++2yMHz++6tj48ePj2Wef7e6hAkC/ZyYWuuDyyy+PdevWxS233BLf/e53o7Gxsd5DAoABSRALXfDkk0/GkiVLYsOGDdHS0tKlc3fYYYdYunRp1bGlS5fGDjvs0I0jBICBQRALNVq7dm28973vjVNOOSU++9nPxv/5P/8nnnvuuZrPP/TQQ2PevHlVx+6888449NBDu3uoANDvyYmFGn3qU5+K1tbWuPLKK2PrrbeOn/3sZ/G+972vXG1g4cKFERHx4osvxrJly2LhwoUxdOjQmDx5ckREfPSjH40jjzwyvvSlL8UJJ5wQ//mf/xn33XdfXHfddfX6SACQLSW2oAbz58+Pt7zlLXH33XfHEUccERERLS0tsf/++8ell14aZ511VjQ0NGxy3sSJE6vSDm655Zb49Kc/HS0tLbHHHnvEF77whTj++ON762MAQL8hiAUAIDtyYgEAyI4gFgCA7AhiAQDIjiAWAIDsCGIBAMiOIBYAgOwIYgEAyI4gFgCA7AhiAQDIjiAWAIDsCGIBAMiOIBYAgOz8f5USp03MEzpJAAAAAElFTkSuQmCC", "text/plain": [ "Figure(PyObject
)" ] diff --git a/src/AdvancedHMC.jl b/src/AdvancedHMC.jl index 9d9f99b7..397687c7 100644 --- a/src/AdvancedHMC.jl +++ b/src/AdvancedHMC.jl @@ -80,6 +80,7 @@ struct StaticTrajectory{TS} end Trajectory{EndPointTS}(Leapfrog(ϵ), FixedNSteps(L)), ) +#= struct HMCDA{TS} end @deprecate HMCDA{TS}(int::AbstractIntegrator, λ) where {TS} HMCKernel( Trajectory{TS}(int, FixedIntegrationTime(λ)), @@ -90,10 +91,11 @@ struct HMCDA{TS} end @deprecate HMCDA(ϵ::AbstractScalarOrVec{<:Real}, λ) HMCKernel( Trajectory{EndPointTS}(Leapfrog(ϵ), FixedIntegrationTime(λ)), ) +=# @deprecate find_good_eps find_good_stepsize -export StaticTrajectory, HMCDA, find_good_eps +export StaticTrajectory, find_good_eps #HMCDA, include("adaptation/Adaptation.jl") using .Adaptation @@ -200,9 +202,6 @@ function Hamiltonian(metric::AbstractMetric, ℓπ, kind::Union{Symbol,Val}; kwa return Hamiltonian(metric, ℓ) end -### Turing Interface -include("turing_utils.jl") - ### Init struct DiffEqIntegrator{T<:AbstractScalarOrVec{<:AbstractFloat},DiffEqSolver} <: diff --git a/src/abstractmcmc.jl b/src/abstractmcmc.jl index 7e1222f6..b455b063 100644 --- a/src/abstractmcmc.jl +++ b/src/abstractmcmc.jl @@ -1,4 +1,3 @@ - """ HMCState @@ -27,71 +26,6 @@ struct HMCState{ adaptor::TAdapt end -function AbstractMCMC.sample( - model::DynamicPPL.Model, - sampler::AbstractMCMC.AbstractSampler, - N::Integer; - progress = true, - verbose = false, - callback = nothing, - kwargs..., -) - return AbstractMCMC.sample( - Random.GLOBAL_RNG, - model, - sampler, - N; - progress = progress, - verbose = verbose, - callback = callback, - kwargs..., - ) -end - -function AbstractMCMC.sample( - rng::Random.AbstractRNG, - model::DynamicPPL.Model, - sampler::AbstractMCMC.AbstractSampler, - N::Integer; - progress = true, - verbose = false, - callback = nothing, - kwargs..., -) - if callback === nothing - callback = HMCProgressCallback(N, progress = progress, verbose = verbose) - progress = false # don't use AMCMC's progress-funtionality - end - - # unpack model - # TODO: is there a more efficient way to do this? - ctxt = model.context - vi = DynamicPPL.VarInfo(model, ctxt) - dists = _get_dists(vi) - dist_lengths = [length(dist) for dist in dists] - vsyms = _name_variables(vi, dist_lengths) - - # make model from Turing output - ℓ = LogDensityProblemsAD.ADgradient(DynamicPPL.LogDensityFunction(vi, model, ctxt)) - d = LogDensityProblems.dimension(ℓ) - model = AbstractMCMC.LogDensityModel(ℓ) - - - return AbstractMCMC.mcmcsample( - rng, - model, - sampler, - N; - param_names = vsyms, - progress = progress, - verbose = verbose, - callback = callback, - vi = vi, - d = d, - kwargs..., - ) -end - function AbstractMCMC.step( rng::AbstractRNG, model,#::DynamicPPL.model, diff --git a/src/constructors.jl b/src/constructors.jl index c14bc76a..b405a8f2 100644 --- a/src/constructors.jl +++ b/src/constructors.jl @@ -32,27 +32,9 @@ HMCSampler(kernel, metric) = HMCSampler(kernel, metric, Adaptation.NoAdaptation( # NUTS # ######## -struct NUTS_kernel{TS,TC} end - -""" -$(SIGNATURES) - -Convenient constructor for the no-U-turn sampler (NUTS). -This falls back to `HMCKernel(Trajectory{TS}(int, TC(args...; kwargs...)))` where - -- `TS<:Union{MultinomialTS, SliceTS}` is the type for trajectory sampler -- `TC<:Union{ClassicNoUTurn, GeneralisedNoUTurn, StrictGeneralisedNoUTurn}` is the type for termination criterion. - -See [`ClassicNoUTurn`](@ref), [`GeneralisedNoUTurn`](@ref) and [`StrictGeneralisedNoUTurn`](@ref) for details in parameters. -""" -NUTS_kernel{TS,TC}(int::AbstractIntegrator, args...; kwargs...) where {TS,TC} = - HMCKernel(Trajectory{TS}(int, TC(args...; kwargs...))) -NUTS_kernel(int::AbstractIntegrator, args...; kwargs...) = - HMCKernel(Trajectory{MultinomialTS}(int, GeneralisedNoUTurn(args...; kwargs...))) -NUTS_kernel(ϵ::AbstractScalarOrVec{<:Real}) = - HMCKernel(Trajectory{MultinomialTS}(Leapfrog(ϵ), GeneralisedNoUTurn())) - -export NUTS +function NUTS_kernel(integrator) + return HMCKernel(Trajectory{MultinomialTS}(integrator, GeneralisedNoUTurn())) +end """ NUTS(n_adapts::Int, δ::Float64; max_depth::Int=10, Δ_max::Float64=1000.0, init_ϵ::Float64=0.0) @@ -77,7 +59,7 @@ Arguments: """ struct NUTS <: AdaptiveHamiltonian n_adapts::Int # number of samples with adaption for ϵ - TAP::Float64 # target accept rate + TAP::Float64 # target accept rate max_depth::Int # maximum tree depth Δ_max::Float64 # maximum error ϵ::Float64 # (initial) step size @@ -94,12 +76,131 @@ function NUTS( Δ_max::Float64=1000.0, init_ϵ::Float64=0.0, metric=nothing, - integrator=Leapfrog, - kernel = NUTS_kernel{MultinomialTS, GeneralisedNoUTurn} -) + integrator=Leapfrog) function adaptor(metric, integrator) return StanHMCAdaptor(MassMatrixAdaptor(metric), StepSizeAdaptor(TAP, integrator)) end - NUTS(n_adapts, TAP, max_depth, Δ_max, init_ϵ, metric, integrator, kernel, adaptor) + NUTS(n_adapts, TAP, max_depth, Δ_max, init_ϵ, metric, integrator, NUTS_kernel, adaptor) end + +export NUTS +####### +# HMC # +####### + +function HMC_kernel(n_leapfrog) + function kernel(integrator) + return HMCKernel(Trajectory{EndPointTS}(integrator, FixedNSteps(n_leapfrog))) + end + return kernel +end + +""" + HMC(ϵ::Float64, n_leapfrog::Int) + +Hamiltonian Monte Carlo sampler with static trajectory. + +Arguments: + +- `ϵ::Float64` : The leapfrog step size to use. +- `n_leapfrog::Int` : The number of leapfrog steps to use. + +Usage: + +```julia +HMC(0.05, 10) +``` + +Tips: + +- If you are receiving gradient errors when using `HMC`, try reducing the leapfrog step size `ϵ`, e.g. + +```julia +# Original step size +sample(gdemo([1.5, 2]), HMC(0.1, 10), 1000) + +# Reduced step size +sample(gdemo([1.5, 2]), HMC(0.01, 10), 1000) +``` +""" +struct HMC <: StaticHamiltonian + ϵ::Float64 # leapfrog step size + n_leapfrog::Int # leapfrog step number + metric + integrator + kernel +end + +function HMC( + ϵ::Float64, + n_leapfrog::Int; + metric=nothing, + integrator=Leapfrog) + kernel = HMC_kernel(n_leapfrog) + adaptor = Adaptation.NoAdaptation() + return HMC(ϵ, n_leapfrog, metric, integrator, kernel, adaptor) +end + +export HMC +######### +# HMCDA # +######### + +function HMCDA_kernel(λ) + function kernel(integrator) + return HMCKernel(Trajectory{EndPointTS}(integrator, FixedIntegrationTime(λ))) + end + return kernel +end + +""" + HMCDA(n_adapts::Int, δ::Float64, λ::Float64; ϵ::Float64=0.0) + +Hamiltonian Monte Carlo sampler with Dual Averaging algorithm. + +Usage: + +```julia +HMCDA(200, 0.65, 0.3) +``` + +Arguments: + +- `n_adapts::Int` : Numbers of samples to use for adaptation. +- `δ::Float64` : Target acceptance rate. 65% is often recommended. +- `λ::Float64` : Target leapfrog length. +- `ϵ::Float64=0.0` : Initial step size; 0 means automatically search by Turing. + +For more information, please view the following paper ([arXiv link](https://arxiv.org/abs/1111.4246)): + +- Hoffman, Matthew D., and Andrew Gelman. "The No-U-turn sampler: adaptively + setting path lengths in Hamiltonian Monte Carlo." Journal of Machine Learning + Research 15, no. 1 (2014): 1593-1623. +""" +struct HMCDA <: AdaptiveHamiltonian + n_adapts :: Int # number of samples with adaption for ϵ + TAP :: Float64 # target accept rate + λ :: Float64 # target leapfrog length + ϵ :: Float64 # (initial) step size + metric + integrator + kernel +end + +function HMCDA( + n_adapts::Int, + TAP::Float64, + λ::Float64; + ϵ::Float64=0.0, + metric=nothing, + integrator=Leapfrog) + kernel = HMCDA_kernel(λ) + function adaptor(metric, integrator) + return StanHMCAdaptor(MassMatrixAdaptor(metric), + StepSizeAdaptor(TAP, integrator)) + end + return HMCDA(n_adapts, TAP, λ, ϵ, metric, integrator, kernel, adaptor) +end + +export HMCDA \ No newline at end of file diff --git a/src/turing_utils.jl b/src/turing_utils.jl deleted file mode 100644 index 8f4cd52c..00000000 --- a/src/turing_utils.jl +++ /dev/null @@ -1,19 +0,0 @@ -function _get_dists(vi::VarInfo) - mds = values(vi.metadata) - return [md.dists[1] for md in mds] -end - -function _name_variables(vi::VarInfo, dist_lengths::AbstractVector) - vsyms = keys(vi) - names = [] - for (vsym, dist_length) in zip(vsyms, dist_lengths) - if dist_length==1 - name = [vsym] - append!(names, name) - else - name = [DynamicPPL.VarName(Symbol(vsym, i,)) for i in 1:dist_length] - append!(names, name) - end - end - return names -end \ No newline at end of file From 3bbc668c67bc9fd99dd652f86e862873202ee6e1 Mon Sep 17 00:00:00 2001 From: jaimerz Date: Tue, 6 Jun 2023 09:56:39 +0100 Subject: [PATCH 13/27] HMC + HMCDA --- Lab.ipynb | 476 +++++++++++++++++++++++++++++++++++++------- src/abstractmcmc.jl | 13 +- src/constructors.jl | 2 + 3 files changed, 414 insertions(+), 77 deletions(-) diff --git a/Lab.ipynb b/Lab.ipynb index 383d1a52..495daa33 100644 --- a/Lab.ipynb +++ b/Lab.ipynb @@ -38,19 +38,8 @@ "name": "stderr", "output_type": "stream", "text": [ - "\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling Turing [fce5fe82-541a-59a6-adf8-730c64b5f9a0]\n", - "WARNING: Method definition sample(DynamicPPL.Model{F, argnames, defaultnames, missings, Targs, Tdefaults, Ctx} where Ctx<:AbstractPPL.AbstractContext where Tdefaults where Targs where missings where defaultnames where argnames where F, AbstractMCMC.AbstractSampler, Integer) in module AdvancedHMC at /home/jaimerz/Cambdrige/AdvancedHMC.jl/src/abstractmcmc.jl:30 overwritten in module Inference at /home/jaimerz/Cambdrige/Turing.jl/src/inference/Inference.jl:249.\n", - " ** incremental compilation may be fatally broken for this module **\n", - "\n", - "WARNING: Method definition kwcall(Any, typeof(StatsBase.sample), DynamicPPL.Model{F, argnames, defaultnames, missings, Targs, Tdefaults, Ctx} where Ctx<:AbstractPPL.AbstractContext where Tdefaults where Targs where missings where defaultnames where argnames where F, AbstractMCMC.AbstractSampler, Integer) in module AdvancedHMC at /home/jaimerz/Cambdrige/AdvancedHMC.jl/src/abstractmcmc.jl:30 overwritten in module Inference at /home/jaimerz/Cambdrige/Turing.jl/src/inference/Inference.jl:249.\n", - " ** incremental compilation may be fatally broken for this module **\n", - "\n", - "WARNING: Method definition sample(Random.AbstractRNG, DynamicPPL.Model{F, argnames, defaultnames, missings, Targs, Tdefaults, Ctx} where Ctx<:AbstractPPL.AbstractContext where Tdefaults where Targs where missings where defaultnames where argnames where F, AbstractMCMC.AbstractSampler, Integer) in module AdvancedHMC at /home/jaimerz/Cambdrige/AdvancedHMC.jl/src/abstractmcmc.jl:51 overwritten in module Inference at /home/jaimerz/Cambdrige/Turing.jl/src/inference/Inference.jl:270.\n", - " ** incremental compilation may be fatally broken for this module **\n", - "\n", - "WARNING: Method definition kwcall(Any, typeof(StatsBase.sample), Random.AbstractRNG, DynamicPPL.Model{F, argnames, defaultnames, missings, Targs, Tdefaults, Ctx} where Ctx<:AbstractPPL.AbstractContext where Tdefaults where Targs where missings where defaultnames where argnames where F, AbstractMCMC.AbstractSampler, Integer) in module AdvancedHMC at /home/jaimerz/Cambdrige/AdvancedHMC.jl/src/abstractmcmc.jl:51 overwritten in module Inference at /home/jaimerz/Cambdrige/Turing.jl/src/inference/Inference.jl:270.\n", - " ** incremental compilation may be fatally broken for this module **\n", - "\n" + "\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling AdvancedHMC [0bf59076-c3b1-5ca4-86bd-e02cd72cde3d]\n", + "\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling Turing [fce5fe82-541a-59a6-adf8-730c64b5f9a0]\n" ] } ], @@ -69,7 +58,8 @@ "#What we are tweaking\n", "using Revise\n", "using AdvancedHMC\n", - "using Turing" + "using Turing\n", + "using MCMCChains" ] }, { @@ -142,24 +132,22 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 10, "id": "486d475d", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "NUTS(500, 0.95, 10, 1000.0, 0.1, nothing, Leapfrog, AdvancedHMC.NUTS_kernel{MultinomialTS, GeneralisedNoUTurn}, AdvancedHMC.var\"#adaptor#38\"{Float64}(0.95))" + "NUTS(500, 0.95, 10, 1000.0, 0.1, nothing, Leapfrog, AdvancedHMC.NUTS_kernel, AdvancedHMC.var\"#adaptor#36\"{Float64}(0.95))" ] }, - "execution_count": 11, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "using MCMCChains\n", - "\n", "nadapts=500 \n", "TAP=0.95\n", "nuts = AdvancedHMC.NUTS(nadapts, TAP; init_ϵ=0.1)" @@ -167,7 +155,55 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 11, + "id": "9e114ad8", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "HMC(0.1, 20, nothing, Leapfrog, AdvancedHMC.var\"#kernel#37\"{Int64}(20), AdvancedHMC.Adaptation.NoAdaptation())" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ϵ=0.1\n", + "n_leapfrog=20\n", + "hmc = AdvancedHMC.HMC(ϵ, n_leapfrog)" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "1f729dc6", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "HMCDA(500, 0.95, 1.0, 0.1, nothing, Leapfrog, AdvancedHMC.var\"#kernel#39\"{Float64}(1.0), AdvancedHMC.var\"#adaptor#41\"{Float64}(0.95))" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "n_adapts = 500\n", + "TAP = 0.95\n", + "λ = 0.1 * 10\n", + "#ϵ = 0.1\n", + "hmcda = AdvancedHMC.HMCDA(n_adapts, TAP, λ; ϵ = 0.1)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, "id": "b0193663", "metadata": {}, "outputs": [ @@ -175,7 +211,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "\u001b[32mSampling: 100%|█████████████████████████████████████████| Time: 0:00:03\u001b[39m\n" + "\u001b[32mSampling: 100%|█████████████████████████████████████████| Time: 0:00:01\u001b[39m\n" ] }, { @@ -193,56 +229,245 @@ " \u001b[1m parameters \u001b[0m \u001b[1m mean \u001b[0m \u001b[1m std \u001b[0m \u001b[1m mcse \u001b[0m \u001b[1m ess_bulk \u001b[0m \u001b[1m rhat \u001b[0m \u001b[1m ess_per_sec\u001b[0m ⋯\n", " \u001b[90m Symbol \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Real \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Missing\u001b[0m ⋯\n", "\n", - " θ -0.1245 1.0501 0.1363 159.9420 1.0123 missing ⋯\n", - " z1 0.6028 0.7378 0.0177 1736.2126 1.0017 missing ⋯\n", - " z2 0.6061 0.7430 0.0174 1793.1890 1.0015 missing ⋯\n", - " z3 -0.4356 0.7286 0.0113 4746.5545 1.0012 missing ⋯\n", - " z4 0.0796 0.6841 0.0067 9836.9935 1.0023 missing ⋯\n", - " z5 0.9369 0.7826 0.0328 530.2843 1.0051 missing ⋯\n", - " z6 -1.6807 0.9300 0.0582 228.9274 1.0084 missing ⋯\n", - " z7 -0.0498 0.7094 0.0076 8877.0102 1.0035 missing ⋯\n", - " z8 0.3309 0.7145 0.0085 7189.7997 1.0000 missing ⋯\n", - " z9 -1.6002 0.9044 0.0540 261.9790 1.0070 missing ⋯\n", - " z10 -0.8282 0.7553 0.0249 906.6986 1.0033 missing ⋯\n", - " z11 0.9554 0.7815 0.0317 597.5777 1.0036 missing ⋯\n", - " z12 0.0578 0.6967 0.0075 8507.8578 1.0024 missing ⋯\n", - " z13 0.0516 0.7147 0.0078 8416.6638 1.0026 missing ⋯\n", - " z14 -0.2623 0.7044 0.0087 6737.3813 1.0007 missing ⋯\n", - " z15 -0.0670 0.6931 0.0075 8511.0613 1.0045 missing ⋯\n", - " z16 -0.6259 0.7454 0.0163 2211.5436 1.0016 missing ⋯\n", - " z17 0.8255 0.7503 0.0254 875.9028 1.0038 missing ⋯\n", - " z18 -0.2208 0.6699 0.0081 6823.9830 1.0050 missing ⋯\n", - " z19 0.5351 0.7360 0.0137 2951.7044 1.0014 missing ⋯\n", - " z20 0.6126 0.7359 0.0174 1771.7843 1.0001 missing ⋯\n", + " θ -0.1180 0.8918 0.0516 497.3398 1.0002 missing ⋯\n", + " z1 0.5920 0.7269 0.0124 3607.5608 1.0000 missing ⋯\n", + " z2 0.5912 0.7400 0.0127 3386.0620 1.0005 missing ⋯\n", + " z3 -0.4256 0.7000 0.0098 5323.0029 1.0004 missing ⋯\n", + " z4 0.0743 0.6814 0.0073 8757.5379 1.0008 missing ⋯\n", + " z5 0.9319 0.7723 0.0184 1696.3329 0.9999 missing ⋯\n", + " z6 -1.6536 0.9149 0.0311 801.4377 1.0004 missing ⋯\n", + " z7 -0.0498 0.7171 0.0075 9030.3631 1.0000 missing ⋯\n", + " z8 0.3338 0.7226 0.0093 6253.4095 1.0007 missing ⋯\n", + " z9 -1.5802 0.9010 0.0291 900.8439 1.0000 missing ⋯\n", + " z10 -0.8056 0.7616 0.0163 2218.7884 1.0035 missing ⋯\n", + " z11 0.9576 0.7914 0.0190 1718.1613 0.9998 missing ⋯\n", + " z12 0.0679 0.7042 0.0073 9395.4880 0.9999 missing ⋯\n", + " z13 0.0561 0.6843 0.0070 9631.4300 0.9999 missing ⋯\n", + " z14 -0.2671 0.7052 0.0079 7992.4405 1.0000 missing ⋯\n", + " z15 -0.0521 0.6733 0.0073 8613.7655 0.9999 missing ⋯\n", + " z16 -0.6179 0.7313 0.0129 3328.0256 1.0000 missing ⋯\n", + " z17 0.8264 0.7844 0.0159 2509.9702 1.0005 missing ⋯\n", + " z18 -0.2097 0.7015 0.0078 8122.3041 1.0051 missing ⋯\n", + " z19 0.5291 0.7248 0.0115 4220.6762 1.0001 missing ⋯\n", + " z20 0.5970 0.7292 0.0127 3383.3664 0.9998 missing ⋯\n", + "\n", + "Quantiles\n", + " \u001b[1m parameters \u001b[0m \u001b[1m 2.5% \u001b[0m \u001b[1m 25.0% \u001b[0m \u001b[1m 50.0% \u001b[0m \u001b[1m 75.0% \u001b[0m \u001b[1m 97.5% \u001b[0m\n", + " \u001b[90m Symbol \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m\n", + "\n", + " θ -2.5416 -0.4747 0.0390 0.4590 1.1537\n", + " z1 -0.7047 0.0921 0.5510 1.0453 2.1409\n", + " z2 -0.7889 0.0895 0.5429 1.0686 2.1609\n", + " z3 -1.9046 -0.8617 -0.3783 0.0508 0.8605\n", + " z4 -1.2626 -0.3735 0.0690 0.5175 1.4600\n", + " z5 -0.4274 0.3732 0.8874 1.4313 2.5683\n", + " z6 -3.4849 -2.2786 -1.6280 -0.9832 -0.0301\n", + " z7 -1.4607 -0.5193 -0.0470 0.4133 1.3563\n", + " z8 -1.0207 -0.1398 0.2918 0.7910 1.8147\n", + " z9 -3.4393 -2.1816 -1.5626 -0.9319 0.0087\n", + " z10 -2.4388 -1.3093 -0.7529 -0.2538 0.5373\n", + " z11 -0.3913 0.3713 0.8971 1.4990 2.5927\n", + " z12 -1.3150 -0.3712 0.0568 0.5035 1.4841\n", + " z13 -1.2734 -0.3864 0.0396 0.4871 1.4179\n", + " z14 -1.7026 -0.7334 -0.2398 0.1944 1.1073\n", + " z15 -1.3984 -0.4751 -0.0543 0.3735 1.2905\n", + " z16 -2.1514 -1.1028 -0.5649 -0.0955 0.7127\n", + " z17 -0.5451 0.2484 0.7843 1.3380 2.5413\n", + " z18 -1.6400 -0.6403 -0.1903 0.2345 1.1440\n", + " z19 -0.7690 0.0311 0.4650 1.0076 2.0926\n", + " z20 -0.7488 0.0910 0.5526 1.0886 2.0959\n" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mTail ESS calculation failed: OverflowError(\"4750 * 4503599627370496 overflowed for type Int64\")\n", + "\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ MCMCChains ~/.julia/packages/MCMCChains/OVsxE/src/stats.jl:319\u001b[39m\n" + ] + } + ], + "source": [ + "nuts_samples = sample(funnel_model, nuts, 5000; chain_type=MCMCChains.Chains)" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "f610b909", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[32mSampling: 100%|█████████████████████████████████████████| Time: 0:00:01\u001b[39m\n" + ] + }, + { + "data": { + "text/plain": [ + "Chains MCMC chain (5000×32×1 Array{Real, 3}):\n", + "\n", + "Iterations = 1:1:5000\n", + "Number of chains = 1\n", + "Samples per chain = 5000\n", + "parameters = θ, z1, z2, z3, z4, z5, z6, z7, z8, z9, z10, z11, z12, z13, z14, z15, z16, z17, z18, z19, z20\n", + "internals = lp, n_steps, is_accept, acceptance_rate, log_density, hamiltonian_energy, hamiltonian_energy_error, numerical_error, step_size, nom_step_size, is_adapt\n", + "\n", + "Summary Statistics\n", + " \u001b[1m parameters \u001b[0m \u001b[1m mean \u001b[0m \u001b[1m std \u001b[0m \u001b[1m mcse \u001b[0m \u001b[1m ess_bulk \u001b[0m \u001b[1m rhat \u001b[0m \u001b[1m ess_per_se\u001b[0m ⋯\n", + " \u001b[90m Symbol \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Real \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Missin\u001b[0m ⋯\n", + "\n", + " θ -0.0750 0.8795 0.0490 551.7009 1.0008 missin ⋯\n", + " z1 0.6041 0.7343 0.0095 6000.9070 1.0004 missin ⋯\n", + " z2 0.6107 0.7176 0.0089 6785.2022 1.0028 missin ⋯\n", + " z3 -0.4193 0.7077 0.0060 14325.0623 1.0002 missin ⋯\n", + " z4 0.0834 0.6742 0.0050 18494.8500 1.0072 missin ⋯\n", + " z5 0.9500 0.7787 0.0135 3364.6234 1.0000 missin ⋯\n", + " z6 -1.6855 0.8960 0.0241 1266.1999 1.0027 missin ⋯\n", + " z7 -0.0490 0.7051 0.0052 18494.8500 1.0006 missin ⋯\n", + " z8 0.3341 0.7126 0.0055 18494.8500 1.0015 missin ⋯\n", + " z9 -1.6223 0.8843 0.0236 1312.6566 1.0001 missin ⋯\n", + " z10 -0.8295 0.7582 0.0127 3429.3864 0.9998 missin ⋯\n", + " z11 0.9615 0.7872 0.0140 3052.0483 1.0018 missin ⋯\n", + " z12 0.0541 0.6729 0.0049 18494.8500 1.0000 missin ⋯\n", + " z13 0.0543 0.7000 0.0051 18494.8500 1.0003 missin ⋯\n", + " z14 -0.2669 0.7530 0.0055 18494.8500 1.0016 missin ⋯\n", + " z15 -0.0568 0.7136 0.0052 18494.8500 1.0009 missin ⋯\n", + " z16 -0.6375 0.7384 0.0093 6500.0324 1.0014 missin ⋯\n", + " z17 0.8424 0.7532 0.0127 3510.3162 1.0002 missin ⋯\n", + " z18 -0.2251 0.7035 0.0052 18494.8500 1.0002 missin ⋯\n", + " z19 0.5360 0.7194 0.0081 8726.9399 1.0004 missin ⋯\n", + " z20 0.6007 0.7267 0.0087 7271.5314 1.0009 missin ⋯\n", + "\u001b[36m 1 column omitted\u001b[0m\n", + "\n", + "Quantiles\n", + " \u001b[1m parameters \u001b[0m \u001b[1m 2.5% \u001b[0m \u001b[1m 25.0% \u001b[0m \u001b[1m 50.0% \u001b[0m \u001b[1m 75.0% \u001b[0m \u001b[1m 97.5% \u001b[0m\n", + " \u001b[90m Symbol \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m\n", + "\n", + " θ -2.4282 -0.4389 0.0580 0.4795 1.1923\n", + " z1 -0.7647 0.0978 0.5593 1.0548 2.1575\n", + " z2 -0.6690 0.1134 0.5655 1.0806 2.0803\n", + " z3 -1.8981 -0.8655 -0.3851 0.0415 0.9493\n", + " z4 -1.2934 -0.3562 0.0796 0.5224 1.4341\n", + " z5 -0.4388 0.3936 0.8982 1.4558 2.5911\n", + " z6 -3.5315 -2.2664 -1.6508 -1.0529 -0.0526\n", + " z7 -1.4229 -0.5108 -0.0556 0.4044 1.3742\n", + " z8 -1.0005 -0.1429 0.2995 0.7960 1.7744\n", + " z9 -3.4531 -2.2113 -1.6011 -0.9886 -0.0088\n", + " z10 -2.4234 -1.3065 -0.8015 -0.2990 0.5524\n", + " z11 -0.4675 0.3967 0.9297 1.4827 2.5910\n", + " z12 -1.2747 -0.3848 0.0452 0.4930 1.4019\n", + " z13 -1.3316 -0.3963 0.0415 0.5167 1.4520\n", + " z14 -1.8244 -0.7521 -0.2420 0.2252 1.2084\n", + " z15 -1.5205 -0.5109 -0.0512 0.4051 1.3591\n", + " z16 -2.2031 -1.1009 -0.5982 -0.1265 0.7402\n", + " z17 -0.5013 0.3109 0.7918 1.3174 2.4249\n", + " z18 -1.6453 -0.6880 -0.2037 0.2383 1.1083\n", + " z19 -0.7986 0.0345 0.5024 1.0042 2.0255\n", + " z20 -0.7399 0.0991 0.5676 1.0776 2.0989\n" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mTail ESS calculation failed: OverflowError(\"4750 * 4503599627370496 overflowed for type Int64\")\n", + "\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ MCMCChains ~/.julia/packages/MCMCChains/OVsxE/src/stats.jl:319\u001b[39m\n" + ] + } + ], + "source": [ + "hmc_samples = sample(funnel_model, hmc, 5000; chain_type=MCMCChains.Chains)" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "88df45a3", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[32mSampling: 100%|█████████████████████████████████████████| Time: 0:00:00\u001b[39m\n" + ] + }, + { + "data": { + "text/plain": [ + "Chains MCMC chain (5000×32×1 Array{Real, 3}):\n", + "\n", + "Iterations = 1:1:5000\n", + "Number of chains = 1\n", + "Samples per chain = 5000\n", + "parameters = θ, z1, z2, z3, z4, z5, z6, z7, z8, z9, z10, z11, z12, z13, z14, z15, z16, z17, z18, z19, z20\n", + "internals = lp, n_steps, is_accept, acceptance_rate, log_density, hamiltonian_energy, hamiltonian_energy_error, numerical_error, step_size, nom_step_size, is_adapt\n", + "\n", + "Summary Statistics\n", + " \u001b[1m parameters \u001b[0m \u001b[1m mean \u001b[0m \u001b[1m std \u001b[0m \u001b[1m mcse \u001b[0m \u001b[1m ess_bulk \u001b[0m \u001b[1m rhat \u001b[0m \u001b[1m ess_per_sec\u001b[0m ⋯\n", + " \u001b[90m Symbol \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Real \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Missing\u001b[0m ⋯\n", + "\n", + " θ -0.1591 0.9362 0.0666 348.6466 1.0009 missing ⋯\n", + " z1 0.5591 0.7099 0.0163 1920.3022 1.0007 missing ⋯\n", + " z2 0.6117 0.7315 0.0163 2095.0534 1.0014 missing ⋯\n", + " z3 -0.4060 0.7099 0.0152 2243.3603 0.9999 missing ⋯\n", + " z4 0.0829 0.6762 0.0121 3154.9764 1.0003 missing ⋯\n", + " z5 0.9303 0.7863 0.0238 1121.4073 1.0002 missing ⋯\n", + " z6 -1.6197 0.9277 0.0387 545.2135 1.0001 missing ⋯\n", + " z7 -0.0679 0.6910 0.0118 3451.4193 1.0009 missing ⋯\n", + " z8 0.3141 0.7068 0.0125 3238.4297 1.0003 missing ⋯\n", + " z9 -1.5437 0.8985 0.0383 524.5211 0.9998 missing ⋯\n", + " z10 -0.7786 0.7469 0.0207 1332.0454 1.0002 missing ⋯\n", + " z11 0.9259 0.7657 0.0247 978.3012 0.9998 missing ⋯\n", + " z12 0.0360 0.6756 0.0120 3200.7165 0.9999 missing ⋯\n", + " z13 0.0496 0.6994 0.0123 3262.0220 1.0017 missing ⋯\n", + " z14 -0.2572 0.6892 0.0127 3015.8925 1.0005 missing ⋯\n", + " z15 -0.0772 0.6872 0.0123 3142.8340 0.9998 missing ⋯\n", + " z16 -0.6354 0.7243 0.0188 1543.1627 1.0000 missing ⋯\n", + " z17 0.8027 0.7463 0.0198 1429.8788 1.0000 missing ⋯\n", + " z18 -0.1998 0.6993 0.0128 3058.1828 1.0011 missing ⋯\n", + " z19 0.4990 0.7138 0.0162 1990.1035 0.9999 missing ⋯\n", + " z20 0.5991 0.7320 0.0176 1798.1173 1.0001 missing ⋯\n", "\n", "Quantiles\n", " \u001b[1m parameters \u001b[0m \u001b[1m 2.5% \u001b[0m \u001b[1m 25.0% \u001b[0m \u001b[1m 50.0% \u001b[0m \u001b[1m 75.0% \u001b[0m \u001b[1m 97.5% \u001b[0m\n", " \u001b[90m Symbol \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m\n", "\n", - " θ -3.4951 -0.4026 0.0872 0.4837 1.1338\n", - " z1 -0.7462 0.0891 0.5548 1.0843 2.1593\n", - " z2 -0.7566 0.0868 0.5530 1.0948 2.1339\n", - " z3 -1.9759 -0.8944 -0.3959 0.0595 0.8991\n", - " z4 -1.2991 -0.3403 0.0688 0.5048 1.4345\n", - " z5 -0.4169 0.3524 0.9037 1.4556 2.5339\n", - " z6 -3.5930 -2.3300 -1.6655 -1.0109 0.0192\n", - " z7 -1.4794 -0.4880 -0.0334 0.3924 1.3136\n", - " z8 -0.9799 -0.1342 0.2952 0.7901 1.8262\n", - " z9 -3.4083 -2.2233 -1.5918 -0.9458 0.0267\n", - " z10 -2.4206 -1.3260 -0.7786 -0.2545 0.4690\n", - " z11 -0.3675 0.3674 0.9071 1.4885 2.5373\n", - " z12 -1.3281 -0.3874 0.0547 0.5148 1.4525\n", - " z13 -1.3551 -0.3883 0.0379 0.4945 1.5401\n", - " z14 -1.7416 -0.7128 -0.2161 0.1898 1.1052\n", - " z15 -1.4698 -0.5130 -0.0572 0.3674 1.3257\n", - " z16 -2.2292 -1.1115 -0.5676 -0.0968 0.7127\n", - " z17 -0.4812 0.2640 0.7886 1.3232 2.4005\n", - " z18 -1.6047 -0.6439 -0.1929 0.2034 1.1123\n", - " z19 -0.8135 0.0234 0.4921 1.0112 2.0545\n", - " z20 -0.7205 0.0985 0.5524 1.0887 2.1886\n" + " θ -2.7158 -0.5225 0.0006 0.4202 1.1458\n", + " z1 -0.7621 0.0626 0.5251 1.0158 2.0148\n", + " z2 -0.6895 0.1030 0.5557 1.0781 2.1310\n", + " z3 -1.9125 -0.8562 -0.3812 0.0738 0.9304\n", + " z4 -1.2650 -0.3448 0.0718 0.5129 1.4662\n", + " z5 -0.4034 0.3424 0.8884 1.4430 2.5752\n", + " z6 -3.5512 -2.2256 -1.5758 -0.9400 0.0111\n", + " z7 -1.4500 -0.5098 -0.0553 0.3693 1.3051\n", + " z8 -1.0449 -0.1419 0.2867 0.7819 1.7623\n", + " z9 -3.4110 -2.1455 -1.5218 -0.8838 0.0088\n", + " z10 -2.3515 -1.2726 -0.7209 -0.2350 0.5200\n", + " z11 -0.4021 0.3659 0.8909 1.4133 2.5680\n", + " z12 -1.3001 -0.3863 0.0434 0.4503 1.3794\n", + " z13 -1.3456 -0.3851 0.0440 0.4963 1.4311\n", + " z14 -1.7195 -0.7027 -0.2230 0.1933 1.0674\n", + " z15 -1.4567 -0.5102 -0.0682 0.3588 1.3193\n", + " z16 -2.1807 -1.0864 -0.5986 -0.1333 0.6827\n", + " z17 -0.4832 0.2573 0.7535 1.2873 2.3884\n", + " z18 -1.6664 -0.6388 -0.1691 0.2458 1.1591\n", + " z19 -0.8211 0.0140 0.4454 0.9640 2.0001\n", + " z20 -0.7174 0.0954 0.5386 1.0655 2.2082\n" ] }, - "execution_count": 12, + "execution_count": 27, "metadata": {}, "output_type": "execute_result" }, @@ -256,7 +481,7 @@ } ], "source": [ - "Asamples = sample(funnel_model, nuts, 5000; chain_type=MCMCChains.Chains)" + "hmcda_samples = sample(funnel_model, hmcda, 5000; chain_type=MCMCChains.Chains)" ] }, { @@ -270,24 +495,120 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 29, "id": "9c61e0ab", "metadata": {}, "outputs": [], "source": [ - "theta_mchmc = Vector(Asamples[\"θ\"][:, 1])\n", - "x10_mchmc =Vector(Asamples[\"z10\"][:, 1]);" + "theta_nuts = Vector(nuts_samples[\"θ\"][:, 1])\n", + "x10_nuts =Vector(nuts_samples[\"z10\"][:, 1]);" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "id": "0b0923f1", + "metadata": {}, + "outputs": [], + "source": [ + "theta_hmc = Vector(hmc_samples[\"θ\"][:, 1])\n", + "x10_hmc =Vector(hmc_samples[\"z10\"][:, 1]);" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "fec8ace5", + "metadata": {}, + "outputs": [], + "source": [ + "theta_hmcda = Vector(hmcda_samples[\"θ\"][:, 1])\n", + "x10_hmcda =Vector(hmcda_samples[\"z10\"][:, 1]);" ] }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 39, "id": "8869229b", "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAArEAAAL3CAYAAACd2x1cAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAABLCUlEQVR4nO3de5iVZb04/O8AMgQCigIeGBnxTJqYqHkoMSxP5baD23dnbrF+Vr7aYWMlWIpWO7XMSi3NXzvNXe5tdjIj2xqK7YosD1RuD9tDEwaKKDEgySCw3j98WetewzzjGpiZNffM53NdXNe9nnU/z3OvNRy+3Pf3+d4NpVKpFAAAkJFB9R4AAAB0lSAWAIDsCGIBAMiOIBYAgOwIYgEAyI4gFgCA7AhiAQDIjiAWAIDsCGIBAMiOIBaoi+bm5mhoaIiGhob4/ve/X9jv6KOPjoaGhrjhhht6b3DttLS0RENDQzQ3N2/y3sbP0ZM2fk+d/frxj3/co2PoKy666KJoaGiIiy66qN5DAepsSL0HAPCpT30qTjrppBgyxF9JnTnmmGNihx126PC9XXbZpZdHA1Bf/sUA6mr48OHxv//7v/HNb34zPvShD9V7OH3arFmzYtq0afUeBkCfIJ0AqKuPfvSjERHxmc98Jv7+97/XeTQA5EIQC9TV8ccfH0ceeWQ888wz8eUvf7nL599///1x6qmnxi677BKNjY0xZsyYOOaYY+JnP/tZh/0ffvjhmDNnThx++OGx8847x9ChQ2O77baLo48+Or73ve9t6ccpe+aZZ+KjH/1o7LnnnjFs2LAYPnx4NDU1xfTp0+Pyyy/vtvu0N23atGhoaIj58+d3+H5RTml6fNmyZXH22WdHU1NTDB06NJqamuLDH/5wrFixYpPr3XDDDdHQ0BAzZsyI1atXx+zZs2P33XePxsbG2GGHHeL000+PxYsXF453yZIlMXPmzNhnn31i+PDhMXLkyDjooIPi6quvjnXr1m3BNwH0d4JYoO4uu+yyiIj4whe+EC+88ELN5331q1+Ngw8+OG666abYbrvt4sQTT4zXvva1MX/+/DjhhBPiM5/5zCbnXHHFFfGZz3wmli9fHvvtt1+8853vjL322ivuvvvuOOWUU2LmzJlb/HmeffbZmDp1alx55ZXR1tYWxx57bJx44omx6667xsKFC+Nzn/vcFt+jpzz99NPx+te/Pn7wgx/EwQcfHG95y1ti1apVcfXVV8db3/rWePnllzs8r7W1NQ477LC49tprY/LkyXHcccdFqVSKG2+8MQ4//PBobW3d5Jxf/vKXse+++8aXv/zlWLNmTbzlLW+Jww8/PJ588sn48Ic/HCeccELh/QCiBFAHEydOLEVE6b//+79LpVKp9M53vrMUEaV/+Zd/qeo3ffr0UkSUrr/++qrjP//5z0sNDQ2l7bffvnTPPfdUvffHP/6xNGHChFJElObPn1/13vz580tPPvnkJuN59NFHy+fce++9Ve/9+c9/LkVEaeLEiTV9tosvvrgUEaUPfOADpQ0bNlS9t3bt2tIvfvGLmq6zUUSUIqJ09913v2rfI488stO+c+bMKUVEac6cOR0ej4jSjBkzSmvWrCm/t2jRotLOO+9ciojSTTfdVHXe9ddfXz7vmGOOKbW2tpbfW758eWnKlCmliCh9/vOfrzrvmWeeKW233XalhoaG0te//vXS+vXry+89//zzpTe/+c2liChdfPHFNY0fGHjMxAJ9wuc///kYMmRIfP3rX4+//OUvr9p/zpw5USqV4tprr403velNVe/tt99+ccUVV0RExFVXXVX13pFHHhmTJk3a5Hp77bVXXHDBBRERnZb8qsXSpUsjIuLYY4/dpPzWVlttFdOnT9+s6x511FEdlteaMWPGFo03NWHChPja174WjY2N5WMb0wkiIn7xi190eN6IESPi+uuvj1GjRpWPbbvttjFr1qwOz/vKV74SL7zwQpx99tlx1llnxaBBlX+Otttuu7jxxhtjq622iquvvjpKpVK3fT6g/1CdAOgT9tprr3jf+94X1113XVxwwQVx4403FvZ9/vnn43e/+1285jWvibe//e0d9tn4FP9vfvObTd578cUX4/bbb48HH3wwnn/++Vi7dm1EvJLHGhHx2GOPbdFnOfjgg+PrX/96zJo1K0qlUrz1rW+NrbfeeouuGVFcYuuII47Y4mtvNH369Bg+fPgmx/fZZ5+IiML81qlTp8aOO+5Y83lz586NiIhTTjmlw+vtvPPOsccee8TDDz8cjz/+eOy55561fwhgQBDEAn3GRRddFN/5znfiu9/9bnz84x+P173udR32+/Of/xylUileeumlqhnDjixbtqzq9W233RZnnHFGp7m3K1eu7PrgE6eddlrceeed8d3vfjfe9a53xeDBg2Py5MlxxBFHxLvf/e5485vfvFnX7Y0SW0X1ZjfOsK5Zs6ZbznvqqaciIuKNb3zjq45p2bJlglhgE4JYoM/Ycccd46Mf/WhccsklMXv27PJsXXsbNmyIiIitt9463vWud9V8/cWLF8cpp5wSL730Unzyk5+MU089NZqbm2PrrbeOQYMGxR133BHHHHPMFi9fDxo0KL7zne/E+eefH3Pnzo1f//rX8etf/zquueaauOaaa+Ltb397/OhHP4rBgwdv0X02x8bvrki6rN8VXT1v4zje/e53x4gRIzrtu912223WmID+TRAL9CnnnXdeXHfddfGzn/0sfvnLX3bYp6mpKSJe2Y71W9/6Vs0B1G233RYvvfRSvOMd7yhXREg9/vjjmz/wDkyePDkmT54cn/jEJ6JUKsVdd90V73nPe+K2226LG2+8Mc4444xuvV9ExNChQyMiYtWqVR2+X0u+cW9oamqKxx9/PM4777yYOnVqvYcDZMiDXUCfMnr06Dj//PMjIuKTn/xkh3122mmneN3rXherVq2Kn//85zVfe/ny5RERMXHixE3eK5VKcdNNN23GiGvT0NAQ06dPj/e85z0REbFw4cIeuc/OO+8cERGPPPLIJu/9/e9/j7vvvrtH7ttVxx13XEREt9bmBQYWQSzQ55x99tmxyy67xL333hsLFizosM/GWqtnnHFG3HbbbZu8XyqV4t5774077rijfGzjQ0bf//73yw9xRUSsX78+Lrzwwg4fAtscN954Y9x///2bHF+1alV5E4KOAunucPTRR0dExNe+9rWqh6lWr14dH/jAB+Lpp5/ukft21Sc+8YnYZptt4oorrogvfelL5YfrUn/+85/jO9/5Th1GB+RAEAv0OY2NjeWNCoq2on37298eX/3qV2P58uVx4oknxh577BFve9vb4tRTT423vvWtscMOO8Qb3vCGuOuuu6rOOfDAA+Ovf/1r7LnnnvG2t70tTjnllNhtt93isssui/POO69bxv/DH/4wpk6dGjvvvHOccMIJ8d73vjdOOOGEaGpqioULF8a+++4bZ555Zrfcq71//Md/jKlTp8aiRYvita99bbztbW+L448/PnbdddeYP39+vO997+uR+3bVhAkT4tZbb41tt902Pv7xj5d3M3vve98bb3/722P33XePSZMmxdVXX13voQJ9lCAW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fitXrozRo0dHa2urfyRr5DvbPL63rvOdbR7fGzBQ1TWdYOzYsTF27NhX7XfllVfG5z73ufLrJUuWxDHHHBM333xzHHLIIT05RAAA+qAscmJ32WWXqtdbb711RETstttuMWHChHoMCQCAOsqqxNaWamxsjDlz5kRjY2O9h5IN39nm8b11ne9s8/jegIGqrjmxAACwOQbUTCwAAP2DIBYAgOwIYgEAyI4gFgCA7AzoIHbu3LlxyCGHxGte85rYdttt46STTqr3kLLR1tYWU6ZMiYaGhli4cGG9h9NntbS0xPvf//7Ydddd4zWveU3stttuMWfOnFi7dm29h9bnfO1rX4vm5uYYNmxYHHLIIfG73/2u3kPqsy655JI46KCDYuTIkTFu3Lg46aST4rHHHqv3sAB61YANYn/wgx/EaaedFmeccUb84Q9/iF//+tfxnve8p97DysYnP/nJ2Gmnneo9jD7v0UcfjQ0bNsQ3vvGN+J//+Z/48pe/HNdee22cf/759R5an3LzzTfHzJkzY86cOfHAAw/E/vvvH8ccc0w899xz9R5an3TPPffE2WefHb/97W/jzjvvjJdffjne+ta3xurVq+s9NIBeMyBLbK1bty6am5vj4osvjve///31Hk52br/99pg5c2b84Ac/iNe+9rXx4IMPxpQpU+o9rGx88YtfjGuuuSaeeuqpeg+lzzjkkEPioIMOiquvvjoiIjZs2BBNTU3x4Q9/OGbNmlXn0fV9y5Yti3HjxsU999wTb3rTm+o9HIBeMSBnYh944IFYvHhxDBo0KA444IDYcccd47jjjouHHnqo3kPr85YuXRpnnnlm/Pu//3sMHz683sPJUmtra4wZM6bew+gz1q5dG/fff38cffTR5WODBg2Ko48+OhYsWFDHkeWjtbU1IsLvK2BAGZBB7MYZsIsuuig+/elPx09/+tPYdtttY9q0abF8+fI6j67vKpVKMWPGjPjQhz4UU6dOrfdwsvTEE0/EVVddFR/84AfrPZQ+4/nnn4/169fH+PHjq46PHz8+nn322TqNKh8bNmyIj33sY3H44YfHvvvuW+/hAPSafhXEzpo1KxoaGjr9tTFHMSLiU5/6VLzrXe+KAw88MK6//vpoaGiIW265pc6fovfV+r1dddVVsWrVqpg9e3a9h1x3tX5nqcWLF8exxx4bJ598cpx55pl1Gjn9zdlnnx0PPfRQ/Od//me9hwLQq4bUewDd6dxzz40ZM2Z02mfSpEnxzDPPRETE5MmTy8cbGxtj0qRJsWjRop4cYp9U6/d21113xYIFCzbZo33q1Klx6qmnxre//e0eHGXfUut3ttGSJUviqKOOisMOOyyuu+66Hh5dXrbffvsYPHhwLF26tOr40qVLY4cddqjTqPJwzjnnxE9/+tP45S9/GRMmTKj3cAB6Vb8KYseOHRtjx4591X4HHnhgNDY2xmOPPRZHHHFERES8/PLL0dLSEhMnTuzpYfY5tX5vV155ZXzuc58rv16yZEkcc8wxcfPNN8chhxzSk0Psc2r9ziJemYE96qijyjP+gwb1qwWQLTZ06NA48MADY968eeUydxs2bIh58+bFOeecU9/B9VGlUik+/OEPx49+9KOYP39+7LrrrvUeEkCv61dBbK1GjRoVH/rQh2LOnDnR1NQUEydOjC9+8YsREXHyySfXeXR91y677FL1euutt46IiN12280sUIHFixfHtGnTYuLEiXH55ZfHsmXLyu+ZZayYOXNmnH766TF16tQ4+OCD4ytf+UqsXr06zjjjjHoPrU86++yz46abbopbb701Ro4cWc4dHj16dLzmNa+p8+gAeseADGIjXilzNGTIkDjttNPipZdeikMOOSTuuuuu2Hbbbes9NPqRO++8M5544ol44oknNgn0B2B1u0KnnHJKLFu2LC688MJ49tlnY8qUKfHzn/98k4e9eMU111wTERHTpk2rOn799de/apoLQH8xIOvEAgCQN8l5AABkRxALAEB2BLEAAGRHEAsAQHYEsQAAZEcQCwBAdgSxAABkRxALAEB2BLHQDZ555pl4z3veE3vuuWcMGjQoPvaxj3XY75Zbbom99947hg0bFvvtt1/87Gc/692BAkA/IYiFbtDW1hZjx46NT3/607H//vt32Oc3v/lN/NM//VO8//3vjwcffDBOOumkOOmkk+Khhx7q5dECQP5sOws1WLZsWey3337xkY98JM4///yIeCUonTZtWtx+++0xffr0ct9p06bFlClT4itf+UrVNU455ZRYvXp1/PSnPy0fe8Mb3hBTpkyJa6+9tlc+BwD0F2ZioQZjx46Nb33rW3HRRRfFfffdF6tWrYrTTjstzjnnnKoAtjMLFiyIo48+uurYMcccEwsWLOiJIQNAvzak3gOAXBx//PFx5plnxqmnnhpTp06NESNGxCWXXFLz+c8++2yMHz++6tj48ePj2Wef7e6hAkC/ZyYWuuDyyy+PdevWxS233BLf/e53o7Gxsd5DAoABSRALXfDkk0/GkiVLYsOGDdHS0tKlc3fYYYdYunRp1bGlS5fGDjvs0I0jBICBQRALNVq7dm28973vjVNOOSU++9nPxv/5P/8nnnvuuZrPP/TQQ2PevHlVx+6888449NBDu3uoANDvyYmFGn3qU5+K1tbWuPLKK2PrrbeOn/3sZ/G+972vXG1g4cKFERHx4osvxrJly2LhwoUxdOjQmDx5ckREfPSjH40jjzwyvvSlL8UJJ5wQ//mf/xn33XdfXHfddfX6SACQLSW2oAbz58+Pt7zlLXH33XfHEUccERERLS0tsf/++8ell14aZ511VjQ0NGxy3sSJE6vSDm655Zb49Kc/HS0tLbHHHnvEF77whTj++ON762MAQL8hiAUAIDtyYgEAyI4gFgCA7AhiAQDIjiAWAIDsCGIBAMiOIBYAgOwIYgEAyI4gFgCA7AhiAQDIjiAWAIDsCGIBAMiOIBYAgOz8f5USp03MEzpJAAAAAElFTkSuQmCC", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAArEAAAL3CAYAAACd2x1cAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAABUwklEQVR4nO3deXhU5f3//9eQDQgkBAhLJCQsUlxZBBG1iqLiUi1i1c9HpeBCi4qV4tKgKGK1iFutK24Ftyoq+lFEVAqKpSItSvy6AIISQDZZJGGRrPP7g1/OuSeZM8wkk0zumefjuriuO2fuc849k8W39/0+79vn9/v9AgAAACzSLNYDAAAAACJFEAsAAADrEMQCAADAOgSxAAAAsA5BLAAAAKxDEAsAAADrEMQCAADAOgSxAAAAsA5BLAAAAKxDEAs0oPz8fPl8Pvl8Pr3++uue/U477TT5fD7NnDkz4Pjo0aPl8/k0evTokPeZOXOmfD6f8vPzJUkfffSRc99I/t1xxx3ONauqqjRz5kydfvrp6tChg1JSUtS2bVv16tVL5513nu69914VFRXV7YOJUHl5uRYsWKCbbrpJAwcOVJs2bZSSkqJOnTrpvPPO09y5cz3P3bBhg5588kn97ne/0zHHHKO0tDT5fD5dddVV9RrTHXfcUevza968uTp06KA+ffpo9OjReumll7R///46Xd/8Hnbq1El79+4N2u+HH35w+sVS9edh/gxJ7vs42M9wfVT//If616ZNmwa7f1NT/XensX4/gVhJjvUAgERx6623avjw4UpObvhfu06dOmnUqFG1jhcWFuqLL75Qx44ddeaZZ9Z6vW/fvpKkvXv36txzz9WHH34oSerfv79OOukkJSUl6fvvv9d7772nOXPmqGXLlho3blyDvhdJWrRokU4//XRJB97biSeeqPT0dH3zzTeaM2eO5syZo9/97neaPn16rWBu9uzZ+uMf/9hgYzM/y8rKShUXF2vlypV67rnn9Nxzz2n8+PF65JFH9D//8z91vsfWrVv1wAMP6Pbbb4/WsONSenq6fvOb3wR9rWXLlo08GgANjSAWaAQtW7bUt99+q2eeeUZjx45t8Pv17t271qyudGC27IsvvvB83ez34YcfKicnR/PmzdPRRx8d8HpxcbFmz56tzp07R3nkwTVr1kwXXHCBrr/+ev3yl78MeG3WrFm69NJL9dRTT+mEE07Qb3/724DXu3Xrpuuuu079+/dX//799eqrr+ruu++O2ti8PsvvvvtOd9xxh1588UX97//+r3bu3Klrrrkm4uu3aNFC+/fv1/3336+rr75a2dnZURh1fGrfvn3In2sA8YV0AqARXH/99ZKkO++8U/v27YvxaA7ulVdekSRNnjy5VgArSZmZmbriiit01llnNcp4Tj31VL3++uu1AlhJuvjii52l6ueff77W67/+9a/18MMPa/To0Tr66KMbZSZcknr06KEXXnhBN910k6QDPwPff/99xNfJycnRb37zG+3evVt33XVXtIcJANYiiAUawdlnn62TTz5Zmzdv1l//+tdYD+egtm7dKknq0KFDjEcSnn79+kk6kP/a1Nx9993KyclRRUVFnb/3d999t5KTkzV9+nStXbs2onMrKir0zDPPaMiQIWrbtq3S0tLUrVs3XX311Z6f1xtvvKGrrrpKRx55pLKystS8eXN169ZNV1xxhVatWlWn9xDMP//5T5177rnq2LGjUlJSlJWVpUMPPVSXXXaZPv7446jdx1RUVBSQPx6MV06pefzDDz/UGWecoaysLLVo0UL9+/cP+j9RkjRkyBD5fD599NFHKiws1IgRI9S+fXulpaXp8MMP1wMPPCC/3+85ngULFmjEiBHq3LmzUlNT1aFDB51//vlasmRJXT4CIG4QxAKNZNq0aZKke++9Vzt27IjxaELr2rWrJGn69OkqLS2N8WgObvXq1ZLUaOkNkUhJSdHFF18sSZo/f36drnHooYdqzJgxKisr06RJk8I+b/fu3Tr99NM1ZswYffbZZzr66KN13nnnKS0tTdOnT1e/fv20fPnyWudddNFFevnll9WiRQudeuqpGjZsmJo1a6YZM2bomGOO0SeffFKn92F67rnndMYZZ2ju3Lnq1q2bLrjgAp100knKyMjQK6+8ojfeeKPe92gof//73zV06FDt3LlTZ555pvr27avly5dr1KhReuihhzzPe//99zVo0CCtXLlSp59+ugYPHqxvv/1WN954o2fe9o033qjTTjtNb731lrp27arhw4ere/fueuutt/TLX/5SM2bMaKB3CVjAD6DB5OXl+SX5//Wvf/n9fr9/xIgRfkn+P/7xjwH9hg4d6pfknzFjRsDxUaNG+SX5R40aFfI+M2bM8Evy5+Xlhew3efJkvyT/ySefHLLfX//6V78kvyR/x44d/WPGjPE/++yz/s8//9xfUVER8tzGtnnzZn9mZqZfkv/hhx8+aP/qz+DKK6+s133D/Sz9fr//xRdfdD7P8vLysK7/4Ycf+iX5e/To4ff7D7zP9PR0v8/n8y9fvtzpt2HDBufaNV1yySV+Sf5f/epX/q1btwa8Vv09PvTQQ2t9T1955RX/nj17Ao5VVVX5H3vsMb8k/xFHHOGvqqoKeL3685g8eXJY769bt24BvxumrVu3+j///POwruP3h//z7/f7/WvXrj1o3+rf27Vr1wY9npKS4p8zZ07QMWRmZvr37dsX8NrJJ5/sfI+mT58e8NqCBQv8Pp/Pn5SU5N+wYUPAa0899ZRfkr9nz57+L774IuC1RYsW+Vu3bu1PTU31f/vtt2GNH4g3zMQCjegvf/mLkpOT9fjjj2vdunWxHo6n8ePH6+6771Z6erq2bt2qp59+WldeeaX69++vrKwsjRo1KqrLynVVUVGhyy67TMXFxTrqqKP0+9//PtZDCqp9+/ZOe+fOnXW6RqdOnfTHP/5Rfr9fBQUFB+2/YsUKvfzyy8rJydE//vGPWqkh48eP19lnn63Vq1dr3rx5Aa9dfPHFSk9PDzjm8/l0zTXXaPDgwfr666+1YsWKOr2Palu3blVmZqZOPPHEWq916NDBSRGJxLp16zxLbH300Uf1Gq/puuuu069+9auAY6NHj1bv3r1VXFysZcuWBT1vxIgRtX5Gq2e6KysrnWog0oESd9Xlyl555ZVaueknnXSSbrvtNpWVlenJJ5+MwrsC7EMQCzSiX/ziF7riiitUWlqq2267LdbDCemWW27RDz/8oJkzZ+ryyy9Xnz59lJSUpN27d+v5559Xv3799O6778Z0jGPHjtWCBQvUrl07vf7660pNTY3peLxUVVU57frUc73pppvUvn17vf/++wEBTzDvvvuu/H6/zjrrLLVu3TponyFDhkhS0PSANWvW6NFHH9X48eN15ZVXavTo0Ro9erSTL13f/4k59thjVVxcrN/+9rf67LPPAj6jukpPT9eoUaOC/uvUqVO9r1/t3HPPDXr8sMMOkyRt3Lix3uctX75cmzZtUo8ePXTMMccEPS/U9w9IBJTYAhpZddmll156STfeeGPQp/+rVQc8/hAPfZivR7vgfZs2bZwgQJJ++uknvfnmm5o0aZI2b96sUaNGad26dQetwbl9+3bdeOONtY737t07rFnFYK6//no9++yzysrK0vz589WrV686XSeYZ555RosXL651vKCgQL179474etu3b5d04PuTlZVV53FlZGRo0qRJGj9+vP70pz9p6dKlnn2rKyE8++yzevbZZ0Ned9u2bU67srJS48aN05NPPhny566kpCTC0Qd6/PHH9atf/UovvPCCXnjhBbVu3VoDBw7UqaeeqpEjRzp52ZForBJbXmPLyMiQJM8NLiI5r/r799133x3099r8/gGJhCAWaGSdO3fW9ddfr6lTp2rixIkhd5uqXtL12q2p2p49eyRJrVq1it5Ag8jKytIVV1yhfv36qX///tq+fbv+/e9/OxsRhBrfc889V+v4ySefXKcg9oYbbtDDDz+sNm3a6IMPPqjT0nMoixcvDjre6iXjSH3++eeSDgTt9S3xdfXVV+uhhx7Sf//7X73++usaPHhw0H7VM5t9+/ZVnz59Ql5z0KBBTvtvf/ubpk+frk6dOunBBx/U8ccfr44dO6p58+aSpEsuuUQvv/zyQf/H6mAOO+wwrVq1Sh988IEWLlyoTz75RP/617+0cOFC3XnnnXr22Wd12WWX1esedXWwWeFmzeq2iBnJedVj6NSpk4YNGxayr5muAiQSglggBv70pz/pqaee0rvvvhuylFD1zM2aNWtCXq/66fy6zF7VRb9+/dS+fXtt377dmWUMJT8/v95BT7Wbb75ZDz74oDIzM/XBBx9owIABUbmuaebMmVGb0SsvL9err74qSTrjjDPqfb3U1FT9+c9/1siRI3Xrrbfqgw8+CNovNzdXknTCCSfo0UcfDfv61WN98skndd5559V6vfpnLRqSk5N19tln6+yzz5Z0YHb3wQcf1JQpU/T73/9e559/fq3c3PqqTjnZvXt30NfLy8u1efPmqN6zLqq/f+3atWMDB8ADObFADGRmZuqWW26RdCAo83LqqadKkv7f//t/noFseXm53n777YD+9XWwgHPXrl3OcnKXLl2ics9wFBQU6L777lNmZqbmz5+vgQMHNtq96+rWW2/Vpk2blJKSErXtby+99FL16dNHq1ev1tNPPx20T/VGFG+//bbn8nYw1Q+e5eXl1Xrt66+/VmFhYeQDDlNGRobuuOMOtWnTRvv27dO3334b9XtkZ2crNTVVO3fu1I8//ljr9ffff18VFRVRv2+kBg4cqPbt2+ubb77R119/HevhAE0SQSwQI9dee626du2qpUuXehYtHzBggIYOHSq/36/LLrus1gzRzz//rKuvvlrr1q1Tdna2rrzyyqiM7dhjj9Xjjz8e9En6LVu2aNSoUSorK1NeXp7ncna0TZo0SdOmTVObNm2sCGC///57/fa3v9V9990nSXr00UeDBoZ14fP5NHXqVEnyrEvar18/XXDBBdqwYYNGjBhRq3C/dCBN5aWXXnIe1pLch4wee+yxgGX1zZs367e//W1UArx9+/bpwQcfDJrL+a9//Uu7du1SUlJSg/wPUkpKik466SRJB36mzPf4xRdfaNy4cVG/Z12kpKRo8uTJ8vv9Ov/884PmaFdWVmrhwoX69NNPYzBCIPZIJwBiJC0tTXfeeadGjx4dcivaF198UWeccYaWLl2q7t276/jjj1fnzp1VXFysJUuWaMeOHWrbtq1mz56tNm3aRGVsq1ev1rXXXqs//OEPOuqoo9SjRw8lJydr48aNWrp0qcrLy9W2bVu98sorjbKN69tvv627775bktSzZ0899thjQfu1b99e999/f8CxzZs36/zzz3e+/uGHH5xrHnfccc7xxx9/XP379494bCtXrnS2va2qqlJxcbFWrlyp1atXy+/3Kzs7W48++qguuuiiiK8dyllnnaUhQ4aELB01Y8YM7dq1S/PmzdMvfvEL9enTR926dZPf71dRUZG++OILlZWVacWKFerYsaOkA1Up3nvvPT399NP68MMP1b9/f5WUlGjRokXq3r27zj//fL355pv1GntZWZluuOEG3XTTTTrqqKN06KGHKiUlRUVFRU5Aduuttyo7O7te9/Fy11136eOPP9bTTz+tRYsW6eijj9bGjRu1bNkyXXLJJfroo4+aRAm8cePGaf369brvvvv0y1/+UkcccYR69uypFi1aaMuWLSosLNSuXbv0xBNPBPwsA4mCIBaIoZEjR+qBBx7Ql19+6dmnU6dOWrp0qZ599lnNnj1bX3zxhT7++GO1bNlSPXr00O9+9zv94Q9/iGoJocWLF+uf//ynFi5cqNWrV2vBggXas2ePMjIyNHDgQA0bNkzXXHNNoz1QYs4IL1u2zLMOZ15eXq0gtrS0NOhT/Nu2bQuYCazr0/Zbt251HgJLTU1VRkaGcnJyNHLkSA0bNkwj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BiBRxTQnFgAAAKiLhJqJBQAAQHwgiAUAAIB1CGIBAABgHYJYAAAAWCehg9i5c+dq0KBBatGihbKysjR8+PBYD8kapaWl6tu3r3w+nwoLC2M9nCarqKhIV155pbp166YWLVqoR48emjx5ssrKymI9tCbnscceU35+vpo3b65BgwbpP//5T6yH1GRNnTpVAwcOVOvWrdWhQwcNHz5cq1axly+AxJKwQezs2bM1cuRIXX755friiy/073//W5dcckmsh2WNm2++WTk5ObEeRpO3cuVKVVVV6cknn9TXX3+tv/71r5o+fbpuueWWWA+tSZk1a5YmTJigyZMn6/PPP1efPn00bNgw/fjjj7EeWpO0aNEiXXvttfr00081f/58lZeX64wzztDevXtjPTQAaDQJWWKroqJC+fn5mjJliq688spYD8c68+bN04QJEzR79mwdccQRWr58ufr27RvrYVnjvvvu0xNPPKHvv/8+1kNpMgYNGqSBAwfq0UcflSRVVVUpNzdX1113nQoKCmI8uqZv27Zt6tChgxYtWqSTTjop1sMBgEaRkDOxn3/+uTZu3KhmzZqpX79+6ty5s8466yx99dVXsR5ak7d161aNGTNGL7zwglq2bBnr4VipuLhYbdu2jfUwmoyysjJ99tlnOu2005xjzZo102mnnaYlS5bEcGT2KC4uliR+rgAklIQMYqtnwO644w5NmjRJ77zzjrKysjRkyBDt3LkzxqNruvx+v0aPHq2xY8dqwIABsR6OldasWaNHHnlEv//972M9lCZj+/btqqysVMeOHQOOd+zYUVu2bInRqOxRVVWl8ePH64QTTtCRRx4Z6+EAQKOJqyC2oKBAPp8v5L/qHEVJuvXWW3XBBRfomGOO0YwZM+Tz+fTaa6/F+F00vnA/t0ceeUS7d+/WxIkTYz3kmAv3MzNt3LhRZ555pi688EKNGTMmRiNHvLn22mv11Vdf6ZVXXon1UACgUSXHegDRdMMNN2j06NEh+3Tv3l2bN2+WJB1++OHO8bS0NHXv3l3r169vyCE2SeF+bgsXLtSSJUtq7dE+YMAAXXrppXruuecacJRNS7ifWbVNmzbplFNO0fHHH6+nnnqqgUdnl/bt2yspKUlbt24NOL5161Z16tQpRqOyw7hx4/TOO+/o448/VpcuXWI9HABoVHEVxGZnZys7O/ug/Y455hilpaVp1apVOvHEEyVJ5eXlKioqUl5eXkMPs8kJ93N7+OGHdddddzlfb9q0ScOGDdOsWbM0aNCghhxikxPuZyYdmIE95ZRTnBn/Zs3iagGk3lJTU3XMMcdowYIFTpm7qqoqLViwQOPGjYvt4Joov9+v6667Tm+++aY++ugjdevWLdZDAoBGF1dBbLgyMjI0duxYTZ48Wbm5ucrLy9N9990nSbrwwgtjPLqmq2vXrgFft2rVSpLUo0cPZoE8bNy4UUOGDFFeXp7uv/9+bdu2zXmNWUbXhAkTNGrUKA0YMEDHHnusHnroIe3du1eXX355rIfWJF177bX6xz/+obfeekutW7d2coczMzPVokWLGI8OABpHQgax0oEyR8nJyRo5cqR+/vlnDRo0SAsXLlRWVlash4Y4Mn/+fK1Zs0Zr1qypFegnYHU7TxdffLG2bdum22+/XVu2bFHfvn313nvv1XrYCwc88cQTkqQhQ4YEHJ8xY8ZB01wAIF4kZJ1YAAAA2I3kPAAAAFiHIBYAAADWIYgFAACAdQhiAQAAYB2CWAAAAFiHIBYAAADWIYgFAACAdQhiAQAAYB2CWCAKNm/erEsuuUS9evVSs2bNNH78+KD9XnvtNfXu3VvNmzfXUUcdpXfffbdxBwoAQJwgiAWioLS0VNnZ2Zo0aZL69OkTtM8nn3yi//3f/9WVV16p5cuXa/jw4Ro+fLi++uqrRh4tAAD2Y9tZIAzbtm3TUUcdpT/84Q+65ZZbJB0ISocMGaJ58+Zp6NChTt8hQ4aob9++euihhwKucfHFF2vv3r165513nGPHHXec+vbtq+nTpzfK+wAAIF4wEwuEITs7W3//+991xx13aNmyZdq9e7dGjhypcePGBQSwoSxZskSnnXZawLFhw4ZpyZIlDTFkAADiWnKsBwDY4uyzz9aYMWN06aWXasCAAUpPT9fUqVPDPn/Lli3q2LFjwLGOHTtqy5Yt0R4qAABxj5lYIAL333+/Kioq9Nprr+mll15SWlparIcEAEBCIogFIvDdd99p06ZNqqqqUlFRUUTndurUSVu3bg04tnXrVnXq1CmKIwQAIDEQxAJhKisr02WXXaaLL75Yf/7zn3XVVVfpxx9/DPv8wYMHa8GCBQHH5s+fr8GDB0d7qAAAxD1yYoEw3XrrrSouLtbDDz+sVq1a6d1339UVV1zhVBsoLCyUJO3Zs0fbtm1TYWGhUlNTdfjhh0uSrr/+ep188sl64IEHdM455+iVV17RsmXL9NRTT8XqLQEAYC1KbAFh+Oijj3T66afrww8/1IknnihJKioqUp8+fXTPPffo6quvls/nq3VeXl5eQNrBa6+9pkmTJqmoqEiHHnqo7r33Xp199tmN9TYAAIgbBLEAAACwDjmxAAAAsA5BLAAAAKxDEAsAAADrEMQCAADAOgSxAAAAsA5BLAAAAKxDEAsAAADrEMQCAADAOgSxAAAAsA5BLAAAAKxDEAsAAADrEMQCAADAOv8fKIHmekp3eO4AAAAASUVORK5CYII=", + "text/plain": [ + "Figure(PyObject
)" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, axis = plt.subplots(2, 2, figsize=(8,8))\n", + "fig.suptitle(\"NUTS - 21-D Neal's Funnel\", fontsize=16)\n", + "\n", + "fig.delaxes(axis[1,2])\n", + "fig.subplots_adjust(hspace=0)\n", + "fig.subplots_adjust(wspace=0)\n", + "\n", + "axis[1,1].hist(x10_nuts, bins=100, range=[-6,2])\n", + "axis[1,1].set_yticks([])\n", + "\n", + "axis[2,2].hist(theta_nuts, bins=100, orientation=\"horizontal\", range=[-4, 2])\n", + "axis[2,2].set_xticks([])\n", + "axis[2,2].set_yticks([])\n", + "\n", + "axis[2,1].hist2d(x10_nuts, theta_nuts, bins=100, range=[[-6,2],[-4, 2]])\n", + "axis[2,1].set_xlabel(\"x10\")\n", + "axis[2,1].set_ylabel(\"theta\");" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "id": "fe4c8b70", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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hg0b1LNnT1122WWBXwB69OgR1dQYIB4QxAIWGzVqlEpKSoKqHWzYsEEff/yx+vbtq1NPPdX13BUrVkj6eYbVFi+++KJ2796tunXr6tJLL431cE7g8/l09tlnS5K++eabcl2jfv36euCBByRJ2dnZ8vv9Jz1nx44d+tWvfqX9+/frH//4hzZt2qQ5c+bovffe04YNGzRgwAC9//77mjhxYtB53bt31/Lly7V161YtWbJE//rXv/TBBx9o8+bNgVnDKVOmeB779OnT5ff7g2Y2ly1bpsWLF+uss87S1q1b9e677+r111/XokWLlJubqy+//FIZGRme71GVPv30U+3Zs0ebNm3SggUL9O9//1vfffedBg8erP3795/weZb68ccftWTJEq1Zs0aLFy/WzJkztXbtWt18880qLCzUQw89FNTf7/frmmuu0ddff61Ro0YpNzdXixYt0ltvvaWNGzfqnnvuUW5ubpm/lAI1EUEsEAMjR44ss0TQ0qVLPV3n17/+tVJSUgLBg+SkF5SmG7jJy8uT9PMStg2+/vpr3XfffZKkBx98UM2bN4/xiMJr2rSpJFVo+fe2225T+/bttWrVKs2cOfOk/Z9++mnt2bNHd9xxh26//fag1JAmTZrolVdeUWJiop555pmgoLhz584655xzTrheo0aNAlUv3njjjXK/D0nauXOnJOmCCy5QgwYNTvh6jx491KRJk4ivO2HChLB/dzIzMys0XpPP59NLL70UtFJRp04dTZgwQZL0wQcfuJ47depUderUKfC6Vq1a+stf/iJJWrp0adCs+MKFC/XJJ58oKytLzz33XNDnVLt2bT322GPq0qWL/vOf/2jNmjVRe3+A7ahOAMSAWaopnPfeey/wn39ZUlNTNWzYML366qtasmSJ+vbtq1deeUUNGjTQ8OHDoznkmNq6dauuuOIKHTx4UFdeeaWys7NjPSRXJSUlkn4OgMorMTFRjzzyiK677jo98MADGjZsmBITE137lz7kdu2114b9+imnnKJTTz1Va9eu1YYNG4KCq+PHj2vJkiX69NNP9dNPP+nIkSPy+/2BYHf9+vXlfh+SdPbZZ6tWrVqaNm2aOnXqpF/96ldRSQVxK7FV+ktENLRp00bdunU74Xjnzp0lSdu2bQt7Xu3atXXJJZeccLxFixZq1KiR9u3bpz179gSC49Lv37Bhw1S79on/LSckJKhv375as2aNPv30U3Xp0qXc7wmIJwSxQAyEK9Vk6tevn6cgVvp5xvXVV1/VtGnTdPjwYW3fvl233HLLSUthpaena8uWLdq1a1ckQz+pt99+O2zFhFtuuUXnn39+xNfbsWOHBg4cqB9//FGDBw/WrFmzKhQghgr3fWjatKkef/zxcl1v9+7dkhTIjS2vX//615o8ebJWr16tf/7zn2VugvD9999L+nm282Ty8vICQeyGDRv0y1/+sszUh4KCgghHHqxDhw566qmndN9992nMmDEaM2aM2rZtqz59+ujyyy/X8OHDlZSUFPF1q6LEVps2bcIeT01NlSTXfOGWLVu6/tKRmpqqffv2BT00V/r9e/DBB/Xggw+WOabSFRQABLGA9S688EJ16NBBb775pnbs2CHp5KkE0s/5kFu2bHGtIVteOTk5evnll0843q9fv4iD2F27dmnAgAH67rvvNGjQIL399ttRL/MVbqxt27YtVxDr9/sDu6h17dq1QuPy+Xx69NFHNXjwYP35z38u85ee0tnfq6++WvXq1SvzuubS/dVXX61vvvlGl19+ue6//36dccYZSk1NVWJiooqKiqL2Wd9555265ppr9M4772jZsmVatmyZZsyYoRkzZmj8+PH6+OOPY/KgXunn5uZkFTuidV7pOM4///yTbnJx5plnlmtMQDwiiAUsV7oN6YMPPqgPPvhAnTt3Vp8+fU563lVXXaW3335bCxcu1M6dO6OWY/rwww9HZYYsLy9PAwYM0Lp16zRw4EC98847qlOnTsUHGMLLg1Nevfvuu9q3b58k6eKLL67w9S6++GINHDhQixcv1hNPPOFaLi0jI0MbNmzQ73//e/Xo0cPTtb/99lt99dVXatasmWbPnn3CMvaGDRsqPH5T8+bNNXr0aI0ePTpw/5tvvlnLly9XdnZ22F8mKqp0hvfAgQNhv15dnvYvfbDtqquu0r333hvj0QD24MEuIA6MGDFC6enpatKkiW699VZP51x//fXKzMxUUVGRbr/99pPOSq1cuVJHjhyJxnBPavfu3RowYIC++eYbDRw4UHPnzo15jdqTyc/P19133y3p553D3LZEjdSkSZPk8/n0xBNPuC4ll1ZqmDVrlufrltZmbdWqVdg8zP/7v/8rx2i9O/300wO1cHNycirlHqUbXoSr6Sop7IYZsVD6/XvjjTei+ksVEO8IYoE40Lp1a+3atUu7d+/W7373O0/nJCYmatasWapTp45mz56toUOH6ocffjih3969e/Xggw/qvPPOq3DNUC/27t2rgQMHas2aNRo0aFC1D2BLt53t1auXNmzYoJYtW+p///d/o3b97t27a/jw4Tpw4IBeeOGFsH3uu+8+NWzYUE8++WRge+BQP/zwQ1Bg2qlTJ9WqVUtff/21lixZEtR37ty5euqpp6Iy/g8//FDvvvvuCTVq/X6/5s2bJ+nn9I3KMGDAACUkJGjhwoVBFT/8fr+mTJmiN998s1LuG6mrrrpKPXv21BdffKGRI0eG/WVl3759eu6558JuWgHUVKQTADVYz5499dFHH2n48OGaO3eu5s2bp7POOkvt27dXQkKCfvzxR61YsULHjx9X+/btq2Tb2VtuuUVfffWVfD6fGjdurNtvvz1sv6FDh2ro0KFBx1544YWgQO+nn36SJN16662BskUtW7bU7NmzyzW2F154IRDwFRYWavfu3Vq1alVgVrNfv36aNm1a1IOyv/zlL5o9e7YOHz4c9uutW7fWnDlzNGzYMN17772BkkwtW7ZUfn6+1q1bp02bNql379664YYbJP388NqYMWP0t7/9TQMHDtQFF1ygVq1aaf369Vq1apUeeOABPfLIIxUe+1dffaW7775bqampOvvss9WqVSsdOXJEq1at0o8//qi0tDT96U9/qvB9wsnIyNCdd94Z9B4bN26s//73v9q8ebOys7P16KOPVsq9I5GQkKC3335bQ4YM0csvv6x///vf6tatm9q0aaOioiJ9//33+vrrr3X8+HGNGDEi7Mw5UBPxNwGo4Xr27KnvvvtOr776qubMmaNVq1bpm2++kc/nU8uWLfXLX/5Sw4YNO2mZp2gpDQj9fn+Zy+OZmZknBLFbt24NuxvS2rVrA+2KBJiffPKJPvnkE0kKbCXatWtX9ejRQ9dee22lbRzRsWNHjR49Wv/4xz9c+/Tt21fffPONnnnmGc2fP19ffvmlCgsL1axZM7Vp00Y33HCDhg0bFnTOU089pV/84hf6xz/+oZUrVyonJ0ddu3bVjBkzdO2110YliL3iiiuUn5+vjz/+WBs2bNBnn32munXrKiMjQ9nZ2brjjjvUunXrCt/HzVNPPaU2bdrohRde0Keffqr69evrvPPO06xZs1RQUFAtgljp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QoLOOusstWzZUpdeeqnWrFkT66FVezt37tTo0aP16quvKiUlJdbDsVJ+fr4aN24c62FUG0VFRVq5cqUGDRoUOJaQkKBBgwZp+fLlMRyZPfLz8yWJnysANUqNDGJLZ8AefvhhPfDAA5o3b54aNWqkfv36ae/evTEeXfXl9/s1YsQI3XbbberRo0esh2OljRs3aurUqbr11ltjPZRqY/fu3Tp+/LiaN28edLx58+basWNHjEZlj5KSEt11110677zz1KVLl1gPBwCqTFwFsdnZ2fL5fGX+Kc1RlKQ//vGPGjZsmLp3766XXnpJPp9Pb7zxRozfRdXz+rlNnTpVBw4c0Lhx42I95Jjz+pmZtm3bpksuuUTDhw/X6NGjYzRyxJs77rhDa9as0YwZM2I9FACoUrVjPYBouueeezRixIgy+7Rv314//fSTJOmMM84IHE9OTlb79u21efPmyhxiteT1c/vwww+1fPnyE/Zo79Gjh66//nq9/PLLlTjK6sXrZ1Zq+/bt6t+/v84991w9//zzlTw6uzRt2lS1atXSzp07g47v3LlTLVq0iNGo7DBmzBjNmzdPH330kVq3bh3r4QBAlYqrIDY9PV3p6ekn7de9e3clJydr/fr1Ov/88yVJxcXFys3NVdu2bSt7mNWO189typQpeuSRRwKvt2/frsGDB2vmzJnq3bt3ZQ6x2vH6mUk/z8D2798/MOOfkBBXCyAVlpSUpO7du2vx4sWBMnclJSVavHixxowZE9vBVVN+v1933nmnZs+erSVLlqhdu3axHhIAVLm4CmK9Sk1N1W233abx48crIyNDbdu21eTJkyVJw4cPj/Hoqq82bdoEva5fv74kqUOHDswCudi2bZv69euntm3b6vHHH1deXl7ga8wyOsaOHaubbrpJPXr0UK9evfT000/r0KFDGjlyZKyHVi3dcccdev311zVnzhw1aNAgkDuclpamunXrxnh0AFA1amQQK/1c5qh27dq68cYbdeTIEfXu3VsffvihGjVqFOuhIY4sWrRIGzdu1MaNG08I9GtgdTtX1157rfLy8vTQQw9px44dysrK0nvvvXfCw1742bPPPitJ6tevX9Dxl1566aRpLgAQL2pknVgAAADYjeQ8AAAAWIcgFgAAANYhiAUAAIB1CGIBAABgHYJYAAAAWIcgFgAAANYhiAUAAIB1CGIBAABgHYJYIAp++uknXXfdderUqZMSEhJ01113he33xhtv6PTTT1edOnXUtWtXvfvuu1U7UAAA4gRBLBAFhYWFSk9P1wMPPKBu3bqF7fPpp5/qf/7nfzRq1CitXr1aQ4cO1dChQ7VmzZoqHi0AAPZj21nAg7y8PHXt2lW//e1v9Yc//EHSz0Fpv379tGDBAg0cODDQt1+/fsrKytLTTz8ddI1rr71Whw4d0rx58wLHzjnnHGVlZem5556rkvcBAEC8YCYW8CA9PV3Tpk3Tww8/rBUrVujAgQO68cYbNWbMmKAAtizLly/XoEGDgo4NHjxYy5cvr4whAwAQ12rHegCALS677DKNHj1a119/vXr06KF69epp4sSJns/fsWOHmjdvHnSsefPm2rFjR7SHCgBA3GMmFojA448/rmPHjumNN97Qa6+9puTk5FgPCQCAGokgFojApk2btH37dpWUlCg3Nzeic1u0aKGdO3cGHdu5c6datGgRxRECAFAzEMQCHhUVFemGG27Qtddeqz//+c+65ZZbtGvXLs/n9+nTR4sXLw46tmjRIvXp0yfaQwUAIO6REwt49Mc//lH5+fmaMmWK6tevr3fffVc333xzoNpATk6OJOngwYPKy8tTTk6OkpKSdMYZZ0iSfve73+nCCy/UE088oSFDhmjGjBlasWKFnn/++Vi9JQAArEWJLcCDJUuW6KKLLtJ//vMfnX/++ZKk3NxcdevWTY8++qhuv/12+Xy+E85r27ZtUNrBG2+8oQceeEC5ubk69dRT9dhjj+myyy6rqrcBAEDcIIgFAACAdciJBQAAgHUIYgEAAGAdglgAAABYhyAWAAAA1iGIBQAAgHUIYgEAAGAdglgAAABYhyAWAAAA1iGIBQAAgHUIYgEAAGAdglgAAABYhyAWAAAA1vn/Af+6S3JAnOO6AAAAAElFTkSuQmCC", + "text/plain": [ + "Figure(PyObject
)" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, axis = plt.subplots(2, 2, figsize=(8,8))\n", + "fig.suptitle(\"HMC - 21-D Neal's Funnel\", fontsize=16)\n", + "\n", + "fig.delaxes(axis[1,2])\n", + "fig.subplots_adjust(hspace=0)\n", + "fig.subplots_adjust(wspace=0)\n", + "\n", + "axis[1,1].hist(x10_hmc, bins=100, range=[-6,2])\n", + "axis[1,1].set_yticks([])\n", + "\n", + "axis[2,2].hist(theta_hmc, bins=100, orientation=\"horizontal\", range=[-4, 2])\n", + "axis[2,2].set_xticks([])\n", + "axis[2,2].set_yticks([])\n", + "\n", + "axis[2,1].hist2d(x10_hmc, theta_hmc, bins=100, range=[[-6,2],[-4, 2]])\n", + "axis[2,1].set_xlabel(\"x10\")\n", + "axis[2,1].set_ylabel(\"theta\");" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "id": "2c9052ab", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAArEAAAL3CAYAAACd2x1cAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAABV4klEQVR4nO3deXyU1d3///dASCAhCVvYAyEgxYUGlEWEKggKIlq8LdVqFShQ9SH2tti7Basg2opbW6v1pzcKoqgVqUVlkyLeiCguLFEREEEjyB6WhDXr/P7wm+s6k8yVTJJJJmfyej4ePDyZuZaTCeCHc97XOT6/3+8XAAAAYJEGke4AAAAAUFkUsQAAALAORSwAAACsQxELAAAA61DEAgAAwDoUsQAAALAORSwAAACsQxELAAAA61DEAgAAwDoUsUAF0tLS5PP5NG/evHKPGzx4sHw+n+67776A11evXi2fz+f82rRpU7nXOffcc51jJ06c6HlcQUGBnn/+eY0ePVqdOnVSkyZNFB8fr/T0dP3sZz/Tyy+/rPz8/IBzxo0bF9AXn8+nJk2aqE2bNurbt69+/etf66233lJhYWG5fTRlZGTI5/MpLi5Ohw8fDvm8cDp48KBefPFF3XDDDTrrrLPUuHFjxcfHq0ePHvrNb36jrKwsz3PXrFmjBx98UNdee63zs/b5fFq7dm21+mRey+fzqUGDBkpMTFTHjh01ZMgQ/e53v9Mnn3xSrXt4ue+++5z7jho1yvO4l156ST6fT4MHD66RfoSq5M/O6tWrA14v+T4q+rNXHcH+TJT+NXr06Bq7f12SlZUln8+ntLS0SHcFCElMpDsA1Ddz587Vk08+GfS9jz76SFu2bKnwGhs3btTPfvYzffvtt/L5fMrIyFC/fv3UoEEDZWVl6Y033tDrr7+uP/7xj9qyZYvi4+MDzu/atasGDRokSSosLNTRo0e1efNmPfvss3r22WfVuXNnzZkzR0OHDi23H59++qk+//xzSVJ+fr5eeukl/fd//3coH0NYTZkyRS+//LIaNGig8847T1dffbVOnjypTz/9VE8++aTmzp2rRYsW6bLLLitz7m9+8xt99tlnNda3gQMHqlu3bpKk06dPKzs7W5s2bdLq1av1l7/8RZdcconmzp2r9PT0Grn/0qVLtWbNGl188cU1cv1oYf6ZKO3888+v5d4ACAVFLFBLOnXqpDNnzuiVV17RY489pri4uDLHzJ07V5LUt29fffrpp0Gvs3HjRv3kJz/RqVOnNGrUKD3xxBPq0qVLwDGHDh3S3/72N/3lL39Rfn5+mSJ20KBBQUe3PvvsM02dOlVvv/22hg8frkWLFumqq67y/J7mzJkjSerQoYP27NmjOXPmRKSIbdGihWbOnKkJEyaoQ4cOzusnTpzQpEmT9Oqrr+r666/Xjh071Lx584BzL7vsMl1zzTU6//zzdf7552vgwIH67rvvwta3iRMnaty4cQGv+f1+LV++XHfeeafee+89XXTRRVq3bl2Zn2N1xcfH69SpU/rDH/6gdevWhfXa0cbrzwSAuos4AVBLGjVqpF/+8pc6cuSI3njjjTLvnzp1Sq+++qo6dOig4cOHB71GQUGBxowZo1OnTmn06NF68803gxY+KSkpevDBB7V27dqgxbKXjIwMLVu2TNddd52Kioo0duxY5ebmBj321KlT+uc//ylJmj9/vpo2baovvvjCs/iuSU888YSmT58eUMBKUtOmTTVnzhwlJibqyJEjWrp0aZlzH330Uc2YMUNXXXVVmfNris/n08iRI/XJJ5/orLPO0oEDB8qNjlTVNddco9TUVH300UdatGhR2K8PAJFEEQvUol/96leS3BFX08KFC3X8+HHdfPPNatiwYdDzX3nlFX3zzTeKjY3V008/rQYNyv8j3LdvXzVp0qRSffT5fHrqqafUpEkTHT16VM8++2zQ4xYuXKjc3Fydd955GjJkiK677jpJ7uhsXREfH68f/ehHkqTdu3dHuDeBmjVrpscff1yS9O6772rDhg1hvX7jxo11//33S5LuvvtuFRUVVer8o0ePasaMGerVq5cSExMVHx+vnj176k9/+pNOnTpV5vjjx4/r2Wef1X/913/prLPOUkJCghISEtSzZ0/98Y9/1LFjx8Lxbam4uFizZ8/WwIED1axZMzVq1EitW7dWRkaG7rjjjnIz0NUxb948+Xy+MiPrJbwypebrfr9fs2fP1gUXXKCEhAQlJyfr8ssv9xwpL8nlStLrr7+uQYMGKSkpSQkJCRo4cKCWLVvm2d/CwkI999xzGjx4sFq0aKG4uDh16dJFt912W537swBUBUUsUIvOPfdc9evXT++8806Z/4mUFH/jx4/3PP/NN9+UJA0fPlxt27atsX62bNlSI0aMkCStXLky6DEl/S0pzEv+++qrr+r06dM11rfKKigocIqadu3aRbYzQVxxxRVq0aKFJO/PujpuvvlmnXfeedq2bVvQfzx52bJlizIyMnT//ffr4MGDGjRokIYNG6ZDhw7p3nvv1cCBA5WTkxNwzmeffaZf//rXWrt2rdq2baurrrpKgwYN0r59+/Tggw+qb9++YXn4b+LEibrlllu0ceNG9e3bV2PGjNH555+v06dP6x//+IcyMzOrfY+aMn78eE2ePFnNmjXTqFGj1LZtW61cuVJDhgzRxx9/7HnejBkzNGbMGEnSyJEjddZZZ+nDDz/UqFGjgo6yHz9+XJdddpkmTZqkDRs26Mc//rGuvvpqxcXF6ZlnnlHv3r0rfMgUqOsoYoFaNmHCBBUXFwfk777++mu9//77uvjii3XWWWd5nrt+/XpJP4yw1rQLLrhAkvTll1+WeW/79u16//33nYiEJF100UXq0aOHcnJy9K9//avG+xeqOXPmKDs7W02aNNEVV1wR6e6U4fP5nAeHgn3W1dWgQQM9+OCDkqSZM2eG9A+M06dP6+qrr9bu3bt1zz33KCsrS8uXL9dbb72lb775Rr/4xS+UmZmp3/72twHnpaWl6Z133tH+/fv1/vvv69VXX9WKFSu0a9cu3XzzzdqxY4emT58ect/vu+8++f3+gJHPXbt26fnnn1fHjh317bffauXKlXrllVf09ttva/v27dqyZUudfRDru+++0+rVq7V582atWrVKCxYs0JYtW/SrX/1KeXl55X42TzzxhNatW6e1a9fq1VdfVWZmpmbMmCG/36+pU6eWOf7WW2/V6tWrNWrUKO3cuVOrV6/WwoULtW3bNv3tb3/T4cOHndgQYCuKWCBE48ePL3cZnvfeey+k61x//fWKj4/XvHnz5Pf7JbnxgpLRTC+HDh2SJLVu3boa30loWrVqJUlBR85K+nv11VcrJSXFeb2k/3UlUvDFF1/of/7nfyRJ9957r9q0aRPhHgVX3mcdDldddZV+8pOfaM+ePfr73/9e4fEvvPCCdu7cqVGjRumBBx5QbGys8158fLxmz56t1q1ba/78+Tp69KjzXseOHTV06NAyMZf4+Hg9/fTTiomJ0cKFC6v1vRw4cEDSDysGBJuNOPvss9WpU6dKX/eFF17w/LMdTk8++aS6d+/ufN2wYUP9+c9/liS99957KigoCHre/fffr/79+we8Nm3aNCUnJ2v79u0BMztbt27VP//5T7Vv316vvPJKmb8v7rzzTo0cOVJff/21li9fHq5vDah1rE4AhMhcKimYt99+2/kfbHmSkpJ07bXXav78+Vq9erUuvvhivfjii0pMTHSmC+uC4uJiSSrzP/HCwkK98MILksoW3TfffLPuvvturVmzRjt37lTXrl1rp7NBfP/997rqqqt04sQJXX311UFHq+oKr886nB5++GFddNFFevjhh/XrX//aiTAEU/IAXEnOubSmTZuqT58+WrZsmT799FNdfvnlAe9/+OGHev/997Vr1y6dOnXK+cdabGysDh06pKNHj5ZZJSJUPXr0UGJiopYtW6Y///nPuuGGG8KyqkN5S2yFS0xMjBPTMbVt21bNmzfX0aNHdfjw4aDFebBVQuLi4pSenq5NmzZpz549Sk1NlSQtW7ZMfr9fV1xxhRITE4P2ZfDgwVq2bJkTSQBsRBELhCjYUkmmwYMHh1TESj8Uf/Pnz9fcuXN16tQp7d27VxMnTiyzFFZpKSkp2r17tw4ePFiZrldJdna2JJUpdpYuXar9+/cHXUWhTZs2GjlypN566y3NnTvXGWGqyBtvvBF0xYaJEydWqbDYv3+/hg4dqu+++07Dhw/Xa6+9FtYCMdjvg1atWumxxx6r0vW8PutwGjBggEaPHq033nhDDz74YLl9/eabbyRJN910k2666aZyr1syOyD9sOnEtddeW+FGEbm5uVUuYhMTE/X8889r/Pjxuueee3TPPfeoXbt2uvDCCzVixAjdcMMNatq0aaWvWxtLbLVr106NGjUK+l5SUpKOHj2qM2fOBH3fa3Q5KSlJkgLOK/n5zZkzp8JZEfPnB9iGIhaIgEsuuURdu3bV66+/rv3790uqOEog/ZBT3b17d60sY7Vx40ZJUs+ePQNeL/mf4pkzZ3TJJZeUOW/Pnj2SfniS+/777/dcacGUmZnpjO6aBg8eXOki9uDBg7r00ku1fft2DRs2TG+88UallhkLRbC+du7cuUpFrN/vdx6wKf1Zh9uDDz6oxYsX66mnnip3Pd+SkeERI0ZUGMHo3Lmz0544caLWrl2rAQMGaObMmcrIyFDz5s2dwq19+/bat2+fMzJbVddee62GDRumt956S++//74++OADLVq0SIsWLdL06dO1cuXKGv8sgyn53LxUtJpIuM4t6UevXr2UkZFR7rGlIwqATShigQgoWabn3nvv1TvvvKOzzz5bAwYMqPC8n/70p3rjjTe0YsUKHThwoMYyntnZ2VqxYoUkBUwV79u3z1nS5/Dhw/rggw88r7F37169/fbbuvLKKyu833333Vdmu96qOHTokC699FJt3bpVQ4cO1VtvvaXGjRtX+7qlVbcIMy1btszJlZaelg+3s88+W+PGjdOcOXM0ffp0zx3ZUlNTtW3bNk2YMEE/+9nPQrr2yZMntWzZMjVo0EDLli1Ts2bNyrxf8g+2cEhOTg4YKd69e7fuuOMOvfnmm5o8eXLIGfXKKMkGHz9+POj74dwkozpKYgUDBw7UP/7xjwj3Bqg5PNgFRMi4ceOUkpKili1b6pZbbgnpnBtvvFFpaWnKz8/XbbfdVuHIz4YNGyq93JXf79fkyZN1+vRptWjRQhMmTHDemzdvnoqKitS/f3/5/X7PX7///e8l1e4DXtnZ2br00kv15ZdfaujQoVq8eHGl18itbTk5Oc4T/pdddpl69epV4/ecOXOmmjRpohdffNFzNYSSVRxee+21kK+bk5OjoqIiJSUllSlgJemll14Ka/FfWmpqqmbOnClJNbbEVslmGNu2bQv6frDNNCKh5Of31ltvecYTgGhAEQtESMeOHXXw4EFlZ2eHvFVro0aN9Nprr6lx48ZatGiRRo8erW+//bbMcUeOHHHW8szLywu5T59//rlGjhypBQsWqGHDhnrppZcCHgwpWZVg7Nix5V7n5ptvliQtWbKkVjJ3R44c0dChQ7V582YNGzaszhewJdvO9uvXT19//bXatWvnualEuHXo0EF33HGHiouL9cQTTwQ95te//rU6d+6shQsX6g9/+EPQkcf9+/cH9LlNmzZq3ry5jh07pvnz5wcc+9FHH2natGlh6f+mTZu0YMGCoP84W7x4saTAiEM49evXT0lJSdqyZUuZ73HhwoWen2dt6927t6699lrt3r1b//Vf/xV084eTJ0/q5ZdfDjnHD9RFxAkAy/Tt21dr1qzRmDFjtHjxYi1ZskS9e/dWenq6GjRooO+++07r169XUVGR0tPTg+ZB165d6zycVFhYqGPHjmnz5s3OdGiXLl00Z84cDRkyxDnnvffe044dOxQXF6frr7++3D6ee+65Ov/887Vx40a9+OKLuuuuu8L3AQQxceJEff755/L5fGrRooVuu+22oMeNHj1ao0ePDnjtueee03PPPed8vW/fPknSLbfc4hTw7dq1q/K2rc8995xWr14tScrLy1N2drY2btyoI0eOSPoh9zt37twaK7yCmTZtmp599tmA5bFMCQkJWrp0qUaNGqVHHnlEs2fP1o9//GN17NhRp06d0vbt27V161a1bt1akyZNkvTDUlHTp0/Xb3/7W91888166qmnlJ6erl27dunDDz/UL3/5S61Zs6baU+7fffedrr/+ejVp0kTnn3++UlNTVVhYqC+++EJfffWVYmNj9cgjj1TrHl6aNGmimTNnOt/j008/rQ4dOmjr1q3asmWL7rnnHj3wwAM1cu/Kev7553Xs2DEtX75cP/rRj5SRkaEuXbrI7/crKytLn332mfLz87V169Y6u/QcUBGKWMBCffv21fbt2zV//ny9+eab2rhxo7788kv5fD61a9dO11xzja699lpde+21QZ+G3rlzp3bu3Cnph2V6kpOTlZqaqssvv1yjRo3SyJEjFRMT+NdDSTTgqquuCunJ8ptvvlkbN27UnDlzaryILSkI/X5/uVPgaWlpZYrY77//PuhOSVu2bHHa1SkwP/jgAyc7XLLNaM+ePdWnTx9dd911tbJxRWnNmjXTtGnTnNhHMOeee64+//xzPfPMM1q0aJE+//xzrVu3Tq1atVLHjh31u9/9Ttdcc03AOXfeeae6dOmiRx55RFu2bNGXX36pHj166KmnntKtt94alqWwLrzwQj300ENas2aNtm7dqk2bNikmJkYdO3bU7bffrjvuuMPZZrgm3HnnnWrRooX+/ve/a9OmTfryyy/Vp08fPf744+rWrVudKWITExP1n//8RwsWLNBLL72kDRs2KDMzU0lJSWrXrp1uvPFGXX311RFdBg+oLp+/JkNKAAAAQA0gEwsAAADrUMQCAADAOhSxAAAAsA5FLAAAAKxDEQsAAADrUMQCAADAOhSxAAAAsA5FLAAAAKxDEQsAAADrUMQCAADAOhSxAAAAsA5FLAAAAKxDEQsAAADrUMQCAADAOhSxAAAAsA5FLAAAAKxDEQsAAADrUMQCAADAOhSxAAAAsA5FLAAAAKxDEQsAAADrUMQCAADAOhSxAAAAsA5FLAAAAKxDEQsAAADrUMQCAADAOhSxAAAAsA5FLAAAAKxDEQsAAADrUMQC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/RHqlT2Ki4t15513auDAgTrvvPMi3R0AqDVRVcROnTpVPp+v3F8lGUVJ+uMf/6hrr71WF1xwgZ5//nn5fD4tXLgwwt9F7Qv1c3vyySd1/PhxTZs2LdJdjrhQPzPTnj17NGLECI0ZM0aTJk2KUM8RbW6//XZt3rxZr776aqS7AgC1KibSHQinu+66S+PGjSv3mPT0dO3bt0+SdM455zivx8XFKT09Xbt27arJLtZJoX5u7777rtatW1dmj/Y+ffroxhtv1AsvvFCDvaxbQv3MSuzdu1dDhgzRRRddpNmzZ9dw7+zSqlUrNWzYUAcOHAh4/cCBA2rbtm2EemWHyZMna8mSJVqzZo06duwY6e4AQK2KqiI2JSVFKSkpFR53wQUXKC4uTl999ZUGDRokSSooKFBWVpY6d+5c092sc0L93J544gn96U9/cr7eu3evhg8frgULFqh///412cU6J9TPTPphBHbIkCHOiH+DBlE1AVJtsbGxuuCCC7Rq1Spnmbvi4mKtWrVKkydPjmzn6ii/36877rhDixYt0urVq9WlS5dIdwkAal1UFbGhSkpK0q233qoZM2YoNTVVnTt31qOPPipJGjNmTIR7V3d16tQp4OumTZtKkrp27cookIc9e/Zo8ODB6ty5sx577DEdOnTIeY9RRteUKVM0duxY9enTR/369dPjjz+ukydPavz48ZHuWp10++2365VXXtGbb76pxMREJzucnJysJk2aRLh3AFA76mURK/2wzFFMTIxuuukmnT59Wv3799e7776r5s2bR7priCIrV67Ujh07tGPHjjKFfj1c3c7Tddddp0OHDmn69Onav3+/evXqpbfffrvMw174wdNPPy1JGjx4cMDrzz//fIUxFwCIFvVynVgAAADYjXAeAAAArEMRCwAAAOtQxAIAAMA6FLEAAACwDkUsAAAArEMRCwAAAOtQxAIAAMA6FLEAAACwDkUsEAb79u3TDTfcoO7du6tBgwa68847gx63cOFC9ejRQ40bN1bPnj21bNmy2u0oAABRgiIWCIO8vDylpKTonnvuUUZGRtBjPvzwQ/3iF7/QhAkTtGnTJo0ePVqjR4/W5s2ba7m3AADYj21ngRAcOnRIPXv21G9+8xvdfffdkn4oSgcPHqzly5dr6NChzrGDBw9Wr1699Pjjjwdc47rrrtPJkye1ZMkS57ULL7xQvXr10jPPPFMr3wcAANGCkVggBCkpKZo7d67uu+8+rV+/XsePH9dNN92kyZMnBxSw5Vm3bp2GDRsW8Nrw4cO1bt26mugyAABRLSbSHQBsMXLkSE2aNEk33nij+vTpo4SEBM2aNSvk8/fv3682bdoEvNamTRvt378/3F0FACDqMRILVMJjjz2mwsJCLVy4UC+//LLi4uIi3SUAAOoliligEnbu3Km9e/equLhYWVlZlTq3bdu2OnDgQMBrBw4cUNu2bcPYQwAA6geKWCBE+fn5+uUvf6nrrrtODzzwgCZOnKiDBw+GfP6AAQO0atWqgNdWrlypAQMGhLurAABEPTKxQIj++Mc/KicnR0888YSaNm2qZcuW6Ve/+pWz2kBmZqYk6cSJEzp06JAyMzMVGxurc845R5L03//937rkkkv0l7/8RVdeeaVeffVVrV+/XrNnz47UtwQAgLVYYgsIwerVq3XZZZfp//7v/zRo0CBJUlZWljIyMvTQQw/ptttuk8/nK3Ne586dA2IHCxcu1D333KOsrCydddZZeuSRRzRy5Mja+jYAAIgaFLEAAACwDplYAAAAWIciFgAAANahiAUAAIB1KGIBAABgHYpYAAAAWIciFgAAANahiAUAAIB1KGIBAABgHYpYAAAAWIciFgAAANahiAUAAIB1KGIBAABgnf8f6hkeda8xhwEAAAAASUVORK5CYII=", "text/plain": [ "Figure(PyObject
)" ] @@ -298,24 +619,31 @@ ], "source": [ "fig, axis = plt.subplots(2, 2, figsize=(8,8))\n", - "fig.suptitle(\"Neal's Funnel\", fontsize=16)\n", + "fig.suptitle(\"HMCDA - 21-D Neal's Funnel\", fontsize=16)\n", "\n", "fig.delaxes(axis[1,2])\n", "fig.subplots_adjust(hspace=0)\n", "fig.subplots_adjust(wspace=0)\n", "\n", - "axis[1,1].hist(x10_mchmc, bins=100, range=[-6,2])\n", + "axis[1,1].hist(x10_hmcda, bins=100, range=[-6,2])\n", "axis[1,1].set_yticks([])\n", "\n", - "axis[2,2].hist(theta_mchmc, bins=100, orientation=\"horizontal\", range=[-4, 2])\n", + "axis[2,2].hist(theta_hmcda, bins=100, orientation=\"horizontal\", range=[-4, 2])\n", "axis[2,2].set_xticks([])\n", "axis[2,2].set_yticks([])\n", "\n", - "axis[2,1].hist2d(x10_mchmc, theta_mchmc, bins=100, range=[[-6,2],[-4, 2]])\n", + "axis[2,1].hist2d(x10_hmcda, theta_hmcda, bins=100, range=[[-6,2],[-4, 2]])\n", "axis[2,1].set_xlabel(\"x10\")\n", "axis[2,1].set_ylabel(\"theta\");" ] }, + { + "attachments": {}, + "cell_type": "markdown", + "id": "843becb3", + "metadata": {}, + "source": [] + }, { "attachments": {}, "cell_type": "markdown", diff --git a/src/abstractmcmc.jl b/src/abstractmcmc.jl index b455b063..7e996d5d 100644 --- a/src/abstractmcmc.jl +++ b/src/abstractmcmc.jl @@ -34,8 +34,7 @@ function AbstractMCMC.step( kwargs..., ) vi = kwargs[:vi] - d = kwargs[:d] - n_adapts = spl.n_adapts + d = kwargs[:d] # We will need to implement this but it is going to be # Interesting how to plug the transforms along the sampling @@ -65,7 +64,15 @@ function AbstractMCMC.step( integrator = spl.integrator(ϵ) kernel = spl.kernel(integrator) - adaptor = spl.adaptor(metric, integrator) + + if typeof(spl) <: AdvancedHMC.AdaptiveHamiltonian + adaptor = spl.adaptor(metric, integrator) + n_adapts = spl.n_adapts + else + adaptor = spl.adaptor + n_adapts = 0 + end + spl = HMCSampler(kernel, metric, adaptor) if init_params === nothing diff --git a/src/constructors.jl b/src/constructors.jl index b405a8f2..7134ba2a 100644 --- a/src/constructors.jl +++ b/src/constructors.jl @@ -130,6 +130,7 @@ struct HMC <: StaticHamiltonian metric integrator kernel + adaptor end function HMC( @@ -186,6 +187,7 @@ struct HMCDA <: AdaptiveHamiltonian metric integrator kernel + adaptor end function HMCDA( From 1bffe995630786063e860f365203122063d3ae19 Mon Sep 17 00:00:00 2001 From: jaimerz Date: Wed, 7 Jun 2023 12:26:31 +0100 Subject: [PATCH 14/27] return sampler to master --- src/AdvancedHMC.jl | 1 - src/sampler.jl | 64 +--------------------------------------------- 2 files changed, 1 insertion(+), 64 deletions(-) diff --git a/src/AdvancedHMC.jl b/src/AdvancedHMC.jl index 397687c7..35b93f52 100644 --- a/src/AdvancedHMC.jl +++ b/src/AdvancedHMC.jl @@ -23,7 +23,6 @@ using LogDensityProblemsAD: LogDensityProblemsAD import AbstractMCMC using AbstractMCMC: LogDensityModel -using DynamicPPL import StatsBase: sample diff --git a/src/sampler.jl b/src/sampler.jl index 79517b89..d8b63ce8 100644 --- a/src/sampler.jl +++ b/src/sampler.jl @@ -131,68 +131,6 @@ sample( (pm_next!) = pm_next!, ) -### -# Allows to pass Turing model to build Hamiltonian - -function sample( - model::DynamicPPL.Model, - metric::AbstractMetric, - κ::AbstractMCMCKernel, - θ::AbstractVecOrMat{<:AbstractFloat}, - n_samples::Int, - adaptor::AbstractAdaptor = NoAdaptation(), - n_adapts::Int = min(div(n_samples, 10), 1_000); - drop_warmup = false, - verbose::Bool = true, - progress::Bool = false, - (pm_next!)::Function = pm_next!, -) - ctxt = model.context - vi = DynamicPPL.VarInfo(model, ctxt) - - # We will need to implement this but it is going to be - # Interesting how to plug the transforms along the sampling - # processes - - #vi_t = Turing.link!!(vi, model) - - ℓ = LogDensityProblemsAD.ADgradient(DynamicPPL.LogDensityFunction(vi, model, ctxt)) - h = Hamiltonian(metric, ℓ) - return sample( - GLOBAL_RNG, - h, - κ, - θ, - n_samples, - adaptor, - n_adapts; - drop_warmup = drop_warmup, - verbose = verbose, - progress = progress, - (pm_next!) = pm_next!, - ) -end - -function sample(model::DynamicPPL.Model, ϵ::Number, TAP::Number, n_samples::Int, n_adapts::Int; - initial_θ=initial_θ, progress=true, kwargs...) - ctxt = model.context - vi = VarInfo(model, ctxt) - - dists = _get_dists(vi) - dist_lengths = [length(dist) for dist in dists] - vsyms = _name_variables(vi, dist_lengths) - d = length(vsyms) - - metric = DiagEuclideanMetric(d) - integrator = Leapfrog(ϵ) - proposal = NUTS{MultinomialTS, GeneralisedNoUTurn}(integrator) - adaptor = StanHMCAdaptor(MassMatrixAdaptor(metric), StepSizeAdaptor(TAP, integrator)) - return sample(model, metric, proposal, initial_θ, n_samples, adaptor, n_adapts; - progress=progress, kwargs...) -end - -### - """ sample( rng::AbstractRNG, @@ -308,4 +246,4 @@ function sample( @info "Finished $n_samples sampling steps for $n_chains chains in $time (s)" h κ EBFMI_est average_acceptance_rate end return θs, stats -end +end \ No newline at end of file From b941529089f038e346de86eeb1c5b816b095ab3f Mon Sep 17 00:00:00 2001 From: jaimerz Date: Thu, 8 Jun 2023 11:21:39 +0100 Subject: [PATCH 15/27] getmodel --- src/AdvancedHMC.jl | 1 + src/abstractmcmc.jl | 23 +++++++++++++++++------ 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/src/AdvancedHMC.jl b/src/AdvancedHMC.jl index 35b93f52..78b77cfc 100644 --- a/src/AdvancedHMC.jl +++ b/src/AdvancedHMC.jl @@ -20,6 +20,7 @@ using DocStringExtensions using LogDensityProblems using LogDensityProblemsAD: LogDensityProblemsAD +using DynamicPPL import AbstractMCMC using AbstractMCMC: LogDensityModel diff --git a/src/abstractmcmc.jl b/src/abstractmcmc.jl index 7e996d5d..446270c5 100644 --- a/src/abstractmcmc.jl +++ b/src/abstractmcmc.jl @@ -28,12 +28,16 @@ end function AbstractMCMC.step( rng::AbstractRNG, - model,#::DynamicPPL.model, + logdensitymodel::AbstractMCMC.LogDensityModel, spl::AbstractMCMC.AbstractSampler; init_params = nothing, kwargs..., ) - vi = kwargs[:vi] + + model = getmodel(logdensitymodel) + ctxt = model.context + vi = DynamicPPL.VarInfo(model, ctxt) + #vi = kwargs[:vi] d = kwargs[:d] # We will need to implement this but it is going to be @@ -49,7 +53,7 @@ function AbstractMCMC.step( end # Construct the hamiltonian using the initial metric - hamiltonian = Hamiltonian(metric, model) + hamiltonian = Hamiltonian(metric, logdensitymodel) # Find good eps if not provided one # Before it was spl.alg.ϵ to allow prior sampling @@ -88,7 +92,7 @@ function AbstractMCMC.step( # Take actual first step. return AbstractMCMC.step( rng, - model, + logdensitymodel, spl, state; n_adapts = n_adapts, @@ -97,7 +101,7 @@ end function AbstractMCMC.step( rng::AbstractRNG, - model::LogDensityModel, + logdensity::LogDensityModel, spl::AbstractMCMC.AbstractSampler, state::HMCState; nadapts::Int = 0, @@ -111,7 +115,7 @@ function AbstractMCMC.step( metric = state.metric # Reconstruct hamiltonian. - h = Hamiltonian(metric, model) + h = Hamiltonian(metric, logdensity) # Make new transition. t = transition(rng, h, κ, t_old.z) @@ -128,6 +132,13 @@ function AbstractMCMC.step( return Transition(t.z, tstat), newstate end +######### +# Utils # +######### + +getmodel(f::DynamicPPL.LogDensityFunction) = f.model +getmodel(f::AbstractMCMC.LogDensityModel) = getmodel(f.logdensity) +getmodel(f::LogDensityProblemsAD.ADGradientWrapper) = getmodel(parent(f)) ################ ### Callback ### From 8b1f962c0fcc9e58cd32b76ba7905de854d68b60 Mon Sep 17 00:00:00 2001 From: jaimerz Date: Thu, 8 Jun 2023 12:18:02 +0100 Subject: [PATCH 16/27] small step forward --- Lab.ipynb | 5597 +++++++++++++++++++++++++++++++++++++++++-- src/abstractmcmc.jl | 15 +- 2 files changed, 5400 insertions(+), 212 deletions(-) diff --git a/Lab.ipynb b/Lab.ipynb index 495daa33..5a8102a4 100644 --- a/Lab.ipynb +++ b/Lab.ipynb @@ -44,22 +44,14 @@ } ], "source": [ - "# The statistical inference frame-work we will use\n", - "using LogDensityProblems\n", - "using LogDensityProblemsAD\n", - "using DynamicPPL\n", - "using ForwardDiff\n", "using Random\n", "using LinearAlgebra\n", - "\n", - "#Plotting\n", "using PyPlot\n", "\n", "#What we are tweaking\n", "using Revise\n", "using AdvancedHMC\n", - "using Turing\n", - "using MCMCChains" + "using Turing" ] }, { @@ -98,6 +90,13 @@ "end" ] }, + { + "attachments": {}, + "cell_type": "markdown", + "id": "f5770b5a", + "metadata": {}, + "source": [] + }, { "cell_type": "code", "execution_count": 4, @@ -107,7 +106,7 @@ { "data": { "text/plain": [ - "Model{typeof(funnel), (), (), (), Tuple{}, Tuple{}, ConditionContext{NamedTuple{(:x,), Tuple{Vector{Float64}}}, DefaultContext}}(funnel, NamedTuple(), NamedTuple(), ConditionContext((x = [1.2142074831535152, 1.23371919965455, -0.8480146960461767, 0.1600994648479841, 1.9180385508479283, -3.401523464506408, -0.0957684186471088, 0.6734622629464286, -3.2749467689509633, -1.6760091758453226, 1.9567202902549736, 0.1136169088905351, 0.11117896909388916, -0.5373922347882832, -0.12436857036298687, -1.2901071061088532, 1.702584517514787, -0.44460133117954226, 1.0818722439221686, 1.2208011493237483],), DefaultContext()))" + "DynamicPPL.Model{typeof(funnel), (), (), (), Tuple{}, Tuple{}, DynamicPPL.ConditionContext{NamedTuple{(:x,), Tuple{Vector{Float64}}}, DynamicPPL.DefaultContext}}(funnel, NamedTuple(), NamedTuple(), ConditionContext((x = [1.2142074831535152, 1.23371919965455, -0.8480146960461767, 0.1600994648479841, 1.9180385508479283, -3.401523464506408, -0.0957684186471088, 0.6734622629464286, -3.2749467689509633, -1.6760091758453226, 1.9567202902549736, 0.1136169088905351, 0.11117896909388916, -0.5373922347882832, -0.12436857036298687, -1.2901071061088532, 1.702584517514787, -0.44460133117954226, 1.0818722439221686, 1.2208011493237483],), DynamicPPL.DefaultContext()))" ] }, "execution_count": 4, @@ -132,17 +131,17 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 5, "id": "486d475d", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "NUTS(500, 0.95, 10, 1000.0, 0.1, nothing, Leapfrog, AdvancedHMC.NUTS_kernel, AdvancedHMC.var\"#adaptor#36\"{Float64}(0.95))" + "AdvancedHMC.NUTS(500, 0.95, 10, 1000.0, 0.1, nothing, Leapfrog, AdvancedHMC.NUTS_kernel, AdvancedHMC.var\"#adaptor#32\"{Float64}(0.95))" ] }, - "execution_count": 10, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } @@ -155,17 +154,17 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 6, "id": "9e114ad8", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "HMC(0.1, 20, nothing, Leapfrog, AdvancedHMC.var\"#kernel#37\"{Int64}(20), AdvancedHMC.Adaptation.NoAdaptation())" + "AdvancedHMC.HMC(0.1, 20, nothing, Leapfrog, AdvancedHMC.var\"#kernel#33\"{Int64}(20), AdvancedHMC.Adaptation.NoAdaptation())" ] }, - "execution_count": 11, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -178,17 +177,17 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 7, "id": "1f729dc6", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "HMCDA(500, 0.95, 1.0, 0.1, nothing, Leapfrog, AdvancedHMC.var\"#kernel#39\"{Float64}(1.0), AdvancedHMC.var\"#adaptor#41\"{Float64}(0.95))" + "AdvancedHMC.HMCDA(500, 0.95, 1.0, 0.1, nothing, Leapfrog, AdvancedHMC.var\"#kernel#35\"{Float64}(1.0), AdvancedHMC.var\"#adaptor#37\"{Float64}(0.95))" ] }, - "execution_count": 26, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -203,15 +202,5236 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 9, "id": "b0193663", "metadata": {}, "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Hell\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n" + ] + }, { "name": "stderr", "output_type": "stream", "text": [ - "\u001b[32mSampling: 100%|█████████████████████████████████████████| Time: 0:00:01\u001b[39m\n" + "\u001b[32mSampling: 4%|█▍ | ETA: 0:00:03\u001b[39m" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[32mSampling: 28%|███████████▋ | ETA: 0:00:02\u001b[39m" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[32mSampling: 36%|██████████████▌ | ETA: 0:00:02\u001b[39m" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[32mSampling: 40%|████████████████▎ | ETA: 0:00:02\u001b[39m" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[32mSampling: 44%|██████████████████ | ETA: 0:00:02\u001b[39m" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[32mSampling: 50%|████████████████████▎ | ETA: 0:00:02\u001b[39m" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[32mSampling: 54%|██████████████████████▍ | ETA: 0:00:01\u001b[39m" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[32mSampling: 58%|████████████████████████ | ETA: 0:00:01\u001b[39m" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[32mSampling: 64%|██████████████████████████ | ETA: 0:00:01\u001b[39m" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[32mSampling: 68%|███████████████████████████▉ | ETA: 0:00:01\u001b[39m" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[32mSampling: 72%|█████████████████████████████▊ | ETA: 0:00:01\u001b[39m" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[32mSampling: 77%|███████████████████████████████▋ | ETA: 0:00:01\u001b[39m" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[32mSampling: 82%|█████████████████████████████████▍ | ETA: 0:00:01\u001b[39m" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[32mSampling: 86%|███████████████████████████████████ | ETA: 0:00:00\u001b[39m" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[32mSampling: 90%|████████████████████████████████████▉ | ETA: 0:00:00\u001b[39m" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[32mSampling: 94%|██████████████████████████████████████▊ | ETA: 0:00:00\u001b[39m" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[32mSampling: 100%|█████████████████████████████████████████| Time: 0:00:02\u001b[39m\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n", + "World\n" ] }, { @@ -229,56 +5449,56 @@ " \u001b[1m parameters \u001b[0m \u001b[1m mean \u001b[0m \u001b[1m std \u001b[0m \u001b[1m mcse \u001b[0m \u001b[1m ess_bulk \u001b[0m \u001b[1m rhat \u001b[0m \u001b[1m ess_per_sec\u001b[0m ⋯\n", " \u001b[90m Symbol \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Real \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Missing\u001b[0m ⋯\n", "\n", - " θ -0.1180 0.8918 0.0516 497.3398 1.0002 missing ⋯\n", - " z1 0.5920 0.7269 0.0124 3607.5608 1.0000 missing ⋯\n", - " z2 0.5912 0.7400 0.0127 3386.0620 1.0005 missing ⋯\n", - " z3 -0.4256 0.7000 0.0098 5323.0029 1.0004 missing ⋯\n", - " z4 0.0743 0.6814 0.0073 8757.5379 1.0008 missing ⋯\n", - " z5 0.9319 0.7723 0.0184 1696.3329 0.9999 missing ⋯\n", - " z6 -1.6536 0.9149 0.0311 801.4377 1.0004 missing ⋯\n", - " z7 -0.0498 0.7171 0.0075 9030.3631 1.0000 missing ⋯\n", - " z8 0.3338 0.7226 0.0093 6253.4095 1.0007 missing ⋯\n", - " z9 -1.5802 0.9010 0.0291 900.8439 1.0000 missing ⋯\n", - " z10 -0.8056 0.7616 0.0163 2218.7884 1.0035 missing ⋯\n", - " z11 0.9576 0.7914 0.0190 1718.1613 0.9998 missing ⋯\n", - " z12 0.0679 0.7042 0.0073 9395.4880 0.9999 missing ⋯\n", - " z13 0.0561 0.6843 0.0070 9631.4300 0.9999 missing ⋯\n", - " z14 -0.2671 0.7052 0.0079 7992.4405 1.0000 missing ⋯\n", - " z15 -0.0521 0.6733 0.0073 8613.7655 0.9999 missing ⋯\n", - " z16 -0.6179 0.7313 0.0129 3328.0256 1.0000 missing ⋯\n", - " z17 0.8264 0.7844 0.0159 2509.9702 1.0005 missing ⋯\n", - " z18 -0.2097 0.7015 0.0078 8122.3041 1.0051 missing ⋯\n", - " z19 0.5291 0.7248 0.0115 4220.6762 1.0001 missing ⋯\n", - " z20 0.5970 0.7292 0.0127 3383.3664 0.9998 missing ⋯\n", + " θ -0.0819 0.8780 0.0714 300.5212 1.0086 missing ⋯\n", + " z1 0.5993 0.7483 0.0134 3267.0753 1.0004 missing ⋯\n", + " z2 0.6056 0.7259 0.0139 2793.4279 1.0028 missing ⋯\n", + " z3 -0.4154 0.7116 0.0103 5191.0910 1.0032 missing ⋯\n", + " z4 0.0728 0.7091 0.0075 8936.0447 1.0012 missing ⋯\n", + " z5 0.9492 0.7946 0.0228 1129.9148 1.0066 missing ⋯\n", + " z6 -1.6898 0.9027 0.0392 471.6774 1.0064 missing ⋯\n", + " z7 -0.0602 0.6817 0.0074 8458.7049 1.0003 missing ⋯\n", + " z8 0.3270 0.7147 0.0087 7028.6821 1.0039 missing ⋯\n", + " z9 -1.6155 0.9100 0.0360 563.9075 1.0058 missing ⋯\n", + " z10 -0.8066 0.7565 0.0170 1948.0251 1.0016 missing ⋯\n", + " z11 0.9513 0.7663 0.0195 1531.7031 1.0018 missing ⋯\n", + " z12 0.0632 0.7105 0.0076 8714.5153 1.0016 missing ⋯\n", + " z13 0.0611 0.6932 0.0074 8752.0075 1.0032 missing ⋯\n", + " z14 -0.2606 0.6910 0.0085 6817.6340 1.0002 missing ⋯\n", + " z15 -0.0673 0.6938 0.0073 8983.9464 1.0002 missing ⋯\n", + " z16 -0.6371 0.7399 0.0136 3014.6013 1.0016 missing ⋯\n", + " z17 0.8403 0.7863 0.0164 2260.0094 1.0012 missing ⋯\n", + " z18 -0.2287 0.6921 0.0078 7923.3963 1.0026 missing ⋯\n", + " z19 0.5260 0.7114 0.0131 3136.4600 1.0020 missing ⋯\n", + " z20 0.6085 0.7505 0.0145 2768.1320 1.0024 missing ⋯\n", "\n", "Quantiles\n", " \u001b[1m parameters \u001b[0m \u001b[1m 2.5% \u001b[0m \u001b[1m 25.0% \u001b[0m \u001b[1m 50.0% \u001b[0m \u001b[1m 75.0% \u001b[0m \u001b[1m 97.5% \u001b[0m\n", " \u001b[90m Symbol \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m\n", "\n", - " θ -2.5416 -0.4747 0.0390 0.4590 1.1537\n", - " z1 -0.7047 0.0921 0.5510 1.0453 2.1409\n", - " z2 -0.7889 0.0895 0.5429 1.0686 2.1609\n", - " z3 -1.9046 -0.8617 -0.3783 0.0508 0.8605\n", - " z4 -1.2626 -0.3735 0.0690 0.5175 1.4600\n", - " z5 -0.4274 0.3732 0.8874 1.4313 2.5683\n", - " z6 -3.4849 -2.2786 -1.6280 -0.9832 -0.0301\n", - " z7 -1.4607 -0.5193 -0.0470 0.4133 1.3563\n", - " z8 -1.0207 -0.1398 0.2918 0.7910 1.8147\n", - " z9 -3.4393 -2.1816 -1.5626 -0.9319 0.0087\n", - " z10 -2.4388 -1.3093 -0.7529 -0.2538 0.5373\n", - " z11 -0.3913 0.3713 0.8971 1.4990 2.5927\n", - " z12 -1.3150 -0.3712 0.0568 0.5035 1.4841\n", - " z13 -1.2734 -0.3864 0.0396 0.4871 1.4179\n", - " z14 -1.7026 -0.7334 -0.2398 0.1944 1.1073\n", - " z15 -1.3984 -0.4751 -0.0543 0.3735 1.2905\n", - " z16 -2.1514 -1.1028 -0.5649 -0.0955 0.7127\n", - " z17 -0.5451 0.2484 0.7843 1.3380 2.5413\n", - " z18 -1.6400 -0.6403 -0.1903 0.2345 1.1440\n", - " z19 -0.7690 0.0311 0.4650 1.0076 2.0926\n", - " z20 -0.7488 0.0910 0.5526 1.0886 2.0959\n" + " θ -2.4271 -0.4620 0.0434 0.4828 1.2057\n", + " z1 -0.7930 0.0875 0.5629 1.0717 2.1682\n", + " z2 -0.6938 0.1016 0.5635 1.0707 2.1259\n", + " z3 -1.9296 -0.8592 -0.3758 0.0530 0.9185\n", + " z4 -1.3459 -0.3779 0.0680 0.5221 1.4889\n", + " z5 -0.4407 0.3697 0.9008 1.4497 2.6213\n", + " z6 -3.5134 -2.2956 -1.6580 -1.0396 -0.0618\n", + " z7 -1.4124 -0.4916 -0.0617 0.3803 1.2744\n", + " z8 -1.0081 -0.1523 0.2828 0.7996 1.7721\n", + " z9 -3.5025 -2.2222 -1.5808 -0.9574 -0.0021\n", + " z10 -2.4005 -1.3055 -0.7673 -0.2593 0.5547\n", + " z11 -0.4104 0.3913 0.9133 1.4590 2.5290\n", + " z12 -1.3724 -0.3965 0.0598 0.5315 1.5357\n", + " z13 -1.3432 -0.3700 0.0467 0.4956 1.4795\n", + " z14 -1.6522 -0.7052 -0.2302 0.1755 1.1003\n", + " z15 -1.4697 -0.4991 -0.0721 0.3673 1.3017\n", + " z16 -2.1697 -1.1258 -0.5943 -0.1221 0.6808\n", + " z17 -0.5558 0.2920 0.7979 1.3378 2.5384\n", + " z18 -1.6223 -0.6791 -0.1963 0.2128 1.0954\n", + " z19 -0.7966 0.0324 0.4984 0.9942 1.9955\n", + " z20 -0.7322 0.0966 0.5656 1.0785 2.2085\n" ] }, - "execution_count": 13, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" }, @@ -289,15 +5509,23 @@ "\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mTail ESS calculation failed: OverflowError(\"4750 * 4503599627370496 overflowed for type Int64\")\n", "\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ MCMCChains ~/.julia/packages/MCMCChains/OVsxE/src/stats.jl:319\u001b[39m\n" ] + }, + { + "ename": "", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31mThe Kernel crashed while executing code in the the current cell or a previous cell. Please review the code in the cell(s) to identify a possible cause of the failure. Click here for more info. View Jupyter log for further details." + ] } ], "source": [ - "nuts_samples = sample(funnel_model, nuts, 5000; chain_type=MCMCChains.Chains)" + "nuts_samples = sample(funnel_model, nuts, 5000)" ] }, { "cell_type": "code", - "execution_count": 24, + "execution_count": null, "id": "f610b909", "metadata": {}, "outputs": [ @@ -323,57 +5551,57 @@ " \u001b[1m parameters \u001b[0m \u001b[1m mean \u001b[0m \u001b[1m std \u001b[0m \u001b[1m mcse \u001b[0m \u001b[1m ess_bulk \u001b[0m \u001b[1m rhat \u001b[0m \u001b[1m ess_per_se\u001b[0m ⋯\n", " \u001b[90m Symbol \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Real \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Missin\u001b[0m ⋯\n", "\n", - " θ -0.0750 0.8795 0.0490 551.7009 1.0008 missin ⋯\n", - " z1 0.6041 0.7343 0.0095 6000.9070 1.0004 missin ⋯\n", - " z2 0.6107 0.7176 0.0089 6785.2022 1.0028 missin ⋯\n", - " z3 -0.4193 0.7077 0.0060 14325.0623 1.0002 missin ⋯\n", - " z4 0.0834 0.6742 0.0050 18494.8500 1.0072 missin ⋯\n", - " z5 0.9500 0.7787 0.0135 3364.6234 1.0000 missin ⋯\n", - " z6 -1.6855 0.8960 0.0241 1266.1999 1.0027 missin ⋯\n", - " z7 -0.0490 0.7051 0.0052 18494.8500 1.0006 missin ⋯\n", - " z8 0.3341 0.7126 0.0055 18494.8500 1.0015 missin ⋯\n", - " z9 -1.6223 0.8843 0.0236 1312.6566 1.0001 missin ⋯\n", - " z10 -0.8295 0.7582 0.0127 3429.3864 0.9998 missin ⋯\n", - " z11 0.9615 0.7872 0.0140 3052.0483 1.0018 missin ⋯\n", - " z12 0.0541 0.6729 0.0049 18494.8500 1.0000 missin ⋯\n", - " z13 0.0543 0.7000 0.0051 18494.8500 1.0003 missin ⋯\n", - " z14 -0.2669 0.7530 0.0055 18494.8500 1.0016 missin ⋯\n", - " z15 -0.0568 0.7136 0.0052 18494.8500 1.0009 missin ⋯\n", - " z16 -0.6375 0.7384 0.0093 6500.0324 1.0014 missin ⋯\n", - " z17 0.8424 0.7532 0.0127 3510.3162 1.0002 missin ⋯\n", - " z18 -0.2251 0.7035 0.0052 18494.8500 1.0002 missin ⋯\n", - " z19 0.5360 0.7194 0.0081 8726.9399 1.0004 missin ⋯\n", - " z20 0.6007 0.7267 0.0087 7271.5314 1.0009 missin ⋯\n", + " θ -0.0106 0.7445 0.0297 789.5195 1.0000 missin ⋯\n", + " z1 0.6136 0.7581 0.0074 10938.0595 0.9999 missin ⋯\n", + " z2 0.6234 0.7419 0.0073 11080.6494 1.0015 missin ⋯\n", + " z3 -0.4289 0.7437 0.0058 16541.8468 0.9998 missin ⋯\n", + " z4 0.0838 0.7075 0.0052 18494.8500 1.0004 missin ⋯\n", + " z5 0.9733 0.7823 0.0106 5603.5094 1.0000 missin ⋯\n", + " z6 -1.7155 0.8972 0.0187 2248.3477 0.9998 missin ⋯\n", + " z7 -0.0528 0.6835 0.0050 18494.8500 0.9999 missin ⋯\n", + " z8 0.3399 0.7027 0.0052 18494.8500 1.0004 missin ⋯\n", + " z9 -1.6519 0.8893 0.0181 2340.0530 0.9999 missin ⋯\n", + " z10 -0.8511 0.7431 0.0092 6379.9418 0.9998 missin ⋯\n", + " z11 0.9829 0.7975 0.0108 5448.1218 1.0005 missin ⋯\n", + " z12 0.0554 0.7166 0.0053 18494.8500 1.0014 missin ⋯\n", + " z13 0.0528 0.7153 0.0053 18494.8500 1.0027 missin ⋯\n", + " z14 -0.2731 0.7107 0.0052 18494.8500 1.0023 missin ⋯\n", + " z15 -0.0562 0.7077 0.0052 18494.8500 1.0012 missin ⋯\n", + " z16 -0.6499 0.7149 0.0074 9586.3357 0.9998 missin ⋯\n", + " z17 0.8521 0.7384 0.0094 6304.9456 1.0001 missin ⋯\n", + " z18 -0.2217 0.7175 0.0053 18494.8500 1.0020 missin ⋯\n", + " z19 0.5458 0.7256 0.0061 13430.4399 0.9998 missin ⋯\n", + " z20 0.6120 0.7067 0.0069 10069.5393 1.0040 missin ⋯\n", "\u001b[36m 1 column omitted\u001b[0m\n", "\n", "Quantiles\n", " \u001b[1m parameters \u001b[0m \u001b[1m 2.5% \u001b[0m \u001b[1m 25.0% \u001b[0m \u001b[1m 50.0% \u001b[0m \u001b[1m 75.0% \u001b[0m \u001b[1m 97.5% \u001b[0m\n", " \u001b[90m Symbol \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m\n", "\n", - " θ -2.4282 -0.4389 0.0580 0.4795 1.1923\n", - " z1 -0.7647 0.0978 0.5593 1.0548 2.1575\n", - " z2 -0.6690 0.1134 0.5655 1.0806 2.0803\n", - " z3 -1.8981 -0.8655 -0.3851 0.0415 0.9493\n", - " z4 -1.2934 -0.3562 0.0796 0.5224 1.4341\n", - " z5 -0.4388 0.3936 0.8982 1.4558 2.5911\n", - " z6 -3.5315 -2.2664 -1.6508 -1.0529 -0.0526\n", - " z7 -1.4229 -0.5108 -0.0556 0.4044 1.3742\n", - " z8 -1.0005 -0.1429 0.2995 0.7960 1.7744\n", - " z9 -3.4531 -2.2113 -1.6011 -0.9886 -0.0088\n", - " z10 -2.4234 -1.3065 -0.8015 -0.2990 0.5524\n", - " z11 -0.4675 0.3967 0.9297 1.4827 2.5910\n", - " z12 -1.2747 -0.3848 0.0452 0.4930 1.4019\n", - " z13 -1.3316 -0.3963 0.0415 0.5167 1.4520\n", - " z14 -1.8244 -0.7521 -0.2420 0.2252 1.2084\n", - " z15 -1.5205 -0.5109 -0.0512 0.4051 1.3591\n", - " z16 -2.2031 -1.1009 -0.5982 -0.1265 0.7402\n", - " z17 -0.5013 0.3109 0.7918 1.3174 2.4249\n", - " z18 -1.6453 -0.6880 -0.2037 0.2383 1.1083\n", - " z19 -0.7986 0.0345 0.5024 1.0042 2.0255\n", - " z20 -0.7399 0.0991 0.5676 1.0776 2.0989\n" + " θ -1.8996 -0.3614 0.0951 0.4758 1.1522\n", + " z1 -0.7873 0.0930 0.5654 1.1074 2.1908\n", + " z2 -0.7370 0.1133 0.5908 1.1067 2.1540\n", + " z3 -1.9543 -0.8888 -0.3979 0.0585 0.9684\n", + " z4 -1.3018 -0.3787 0.0777 0.5388 1.5177\n", + " z5 -0.4447 0.4152 0.9276 1.4753 2.6254\n", + " z6 -3.4942 -2.3134 -1.7041 -1.0779 -0.0776\n", + " z7 -1.4329 -0.4813 -0.0481 0.3851 1.3305\n", + " z8 -1.0074 -0.1425 0.3217 0.8044 1.7679\n", + " z9 -3.4619 -2.2652 -1.6207 -1.0259 -0.0543\n", + " z10 -2.3864 -1.3391 -0.7956 -0.3318 0.5164\n", + " z11 -0.4218 0.4121 0.9331 1.5232 2.6309\n", + " z12 -1.3257 -0.4185 0.0515 0.5360 1.4825\n", + " z13 -1.3937 -0.4009 0.0517 0.5259 1.4757\n", + " z14 -1.7331 -0.7263 -0.2567 0.1936 1.0990\n", + " z15 -1.4467 -0.5401 -0.0520 0.4252 1.3145\n", + " z16 -2.1316 -1.1157 -0.6285 -0.1473 0.6768\n", + " z17 -0.4527 0.3247 0.8186 1.3336 2.4389\n", + " z18 -1.6521 -0.6891 -0.2045 0.2558 1.1627\n", + " z19 -0.7911 0.0466 0.5271 1.0117 2.0438\n", + " z20 -0.7072 0.1356 0.5761 1.0502 2.0787\n" ] }, - "execution_count": 24, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" }, @@ -387,12 +5615,12 @@ } ], "source": [ - "hmc_samples = sample(funnel_model, hmc, 5000; chain_type=MCMCChains.Chains)" + "hmc_samples = sample(funnel_model, hmc, 5000)" ] }, { "cell_type": "code", - "execution_count": 27, + "execution_count": null, "id": "88df45a3", "metadata": {}, "outputs": [ @@ -418,56 +5646,56 @@ " \u001b[1m parameters \u001b[0m \u001b[1m mean \u001b[0m \u001b[1m std \u001b[0m \u001b[1m mcse \u001b[0m \u001b[1m ess_bulk \u001b[0m \u001b[1m rhat \u001b[0m \u001b[1m ess_per_sec\u001b[0m ⋯\n", " \u001b[90m Symbol \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Real \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Missing\u001b[0m ⋯\n", "\n", - " θ -0.1591 0.9362 0.0666 348.6466 1.0009 missing ⋯\n", - " z1 0.5591 0.7099 0.0163 1920.3022 1.0007 missing ⋯\n", - " z2 0.6117 0.7315 0.0163 2095.0534 1.0014 missing ⋯\n", - " z3 -0.4060 0.7099 0.0152 2243.3603 0.9999 missing ⋯\n", - " z4 0.0829 0.6762 0.0121 3154.9764 1.0003 missing ⋯\n", - " z5 0.9303 0.7863 0.0238 1121.4073 1.0002 missing ⋯\n", - " z6 -1.6197 0.9277 0.0387 545.2135 1.0001 missing ⋯\n", - " z7 -0.0679 0.6910 0.0118 3451.4193 1.0009 missing ⋯\n", - " z8 0.3141 0.7068 0.0125 3238.4297 1.0003 missing ⋯\n", - " z9 -1.5437 0.8985 0.0383 524.5211 0.9998 missing ⋯\n", - " z10 -0.7786 0.7469 0.0207 1332.0454 1.0002 missing ⋯\n", - " z11 0.9259 0.7657 0.0247 978.3012 0.9998 missing ⋯\n", - " z12 0.0360 0.6756 0.0120 3200.7165 0.9999 missing ⋯\n", - " z13 0.0496 0.6994 0.0123 3262.0220 1.0017 missing ⋯\n", - " z14 -0.2572 0.6892 0.0127 3015.8925 1.0005 missing ⋯\n", - " z15 -0.0772 0.6872 0.0123 3142.8340 0.9998 missing ⋯\n", - " z16 -0.6354 0.7243 0.0188 1543.1627 1.0000 missing ⋯\n", - " z17 0.8027 0.7463 0.0198 1429.8788 1.0000 missing ⋯\n", - " z18 -0.1998 0.6993 0.0128 3058.1828 1.0011 missing ⋯\n", - " z19 0.4990 0.7138 0.0162 1990.1035 0.9999 missing ⋯\n", - " z20 0.5991 0.7320 0.0176 1798.1173 1.0001 missing ⋯\n", + " θ -0.0368 0.7599 0.0388 451.9926 1.0040 missing ⋯\n", + " z1 0.5857 0.7261 0.0158 2182.8915 1.0021 missing ⋯\n", + " z2 0.6106 0.7329 0.0157 2226.2883 1.0015 missing ⋯\n", + " z3 -0.4424 0.7161 0.0149 2305.2779 1.0016 missing ⋯\n", + " z4 0.0861 0.6972 0.0122 3292.6615 1.0010 missing ⋯\n", + " z5 0.9481 0.7806 0.0221 1276.0889 1.0019 missing ⋯\n", + " z6 -1.6911 0.8909 0.0319 768.4135 1.0014 missing ⋯\n", + " z7 -0.0530 0.7111 0.0122 3427.4615 1.0004 missing ⋯\n", + " z8 0.3284 0.7259 0.0134 2970.8809 0.9999 missing ⋯\n", + " z9 -1.6222 0.8805 0.0358 581.0716 1.0008 missing ⋯\n", + " z10 -0.8190 0.7485 0.0195 1474.2670 1.0039 missing ⋯\n", + " z11 0.9967 0.7735 0.0217 1282.7723 1.0006 missing ⋯\n", + " z12 0.0507 0.6966 0.0123 3213.7370 0.9999 missing ⋯\n", + " z13 0.0601 0.7136 0.0126 3206.0601 1.0001 missing ⋯\n", + " z14 -0.2718 0.7096 0.0126 3175.8574 0.9999 missing ⋯\n", + " z15 -0.0633 0.7108 0.0123 3342.1770 0.9998 missing ⋯\n", + " z16 -0.6285 0.7297 0.0149 2463.9447 1.0005 missing ⋯\n", + " z17 0.8439 0.7646 0.0189 1647.3060 1.0006 missing ⋯\n", + " z18 -0.2088 0.7037 0.0131 2922.5686 1.0005 missing ⋯\n", + " z19 0.5370 0.7092 0.0140 2612.2058 0.9999 missing ⋯\n", + " z20 0.5931 0.7322 0.0157 2219.7736 1.0005 missing ⋯\n", "\n", "Quantiles\n", " \u001b[1m parameters \u001b[0m \u001b[1m 2.5% \u001b[0m \u001b[1m 25.0% \u001b[0m \u001b[1m 50.0% \u001b[0m \u001b[1m 75.0% \u001b[0m \u001b[1m 97.5% \u001b[0m\n", " \u001b[90m Symbol \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m\n", "\n", - " θ -2.7158 -0.5225 0.0006 0.4202 1.1458\n", - " z1 -0.7621 0.0626 0.5251 1.0158 2.0148\n", - " z2 -0.6895 0.1030 0.5557 1.0781 2.1310\n", - " z3 -1.9125 -0.8562 -0.3812 0.0738 0.9304\n", - " z4 -1.2650 -0.3448 0.0718 0.5129 1.4662\n", - " z5 -0.4034 0.3424 0.8884 1.4430 2.5752\n", - " z6 -3.5512 -2.2256 -1.5758 -0.9400 0.0111\n", - " z7 -1.4500 -0.5098 -0.0553 0.3693 1.3051\n", - " z8 -1.0449 -0.1419 0.2867 0.7819 1.7623\n", - " z9 -3.4110 -2.1455 -1.5218 -0.8838 0.0088\n", - " z10 -2.3515 -1.2726 -0.7209 -0.2350 0.5200\n", - " z11 -0.4021 0.3659 0.8909 1.4133 2.5680\n", - " z12 -1.3001 -0.3863 0.0434 0.4503 1.3794\n", - " z13 -1.3456 -0.3851 0.0440 0.4963 1.4311\n", - " z14 -1.7195 -0.7027 -0.2230 0.1933 1.0674\n", - " z15 -1.4567 -0.5102 -0.0682 0.3588 1.3193\n", - " z16 -2.1807 -1.0864 -0.5986 -0.1333 0.6827\n", - " z17 -0.4832 0.2573 0.7535 1.2873 2.3884\n", - " z18 -1.6664 -0.6388 -0.1691 0.2458 1.1591\n", - " z19 -0.8211 0.0140 0.4454 0.9640 2.0001\n", - " z20 -0.7174 0.0954 0.5386 1.0655 2.2082\n" + " θ -1.7840 -0.4151 0.0548 0.4762 1.1514\n", + " z1 -0.7531 0.0832 0.5492 1.0520 2.0397\n", + " z2 -0.7479 0.1118 0.5776 1.0826 2.1415\n", + " z3 -1.9534 -0.8893 -0.4082 0.0317 0.9331\n", + " z4 -1.2931 -0.3616 0.0917 0.5340 1.4834\n", + " z5 -0.4509 0.3888 0.9049 1.4560 2.5997\n", + " z6 -3.4998 -2.2868 -1.6668 -1.0421 -0.0910\n", + " z7 -1.5058 -0.5099 -0.0364 0.4061 1.3121\n", + " z8 -1.0267 -0.1641 0.2975 0.7915 1.7736\n", + " z9 -3.4321 -2.2061 -1.5721 -0.9818 -0.0868\n", + " z10 -2.3602 -1.2892 -0.7811 -0.2913 0.5188\n", + " z11 -0.3643 0.4364 0.9491 1.5134 2.6459\n", + " z12 -1.3453 -0.3995 0.0507 0.5004 1.4078\n", + " z13 -1.3300 -0.4099 0.0529 0.5147 1.5304\n", + " z14 -1.7127 -0.7284 -0.2512 0.1806 1.0861\n", + " z15 -1.4979 -0.5266 -0.0591 0.3851 1.3415\n", + " z16 -2.1178 -1.1170 -0.5887 -0.1188 0.7033\n", + " z17 -0.4985 0.3066 0.7956 1.3341 2.4472\n", + " z18 -1.6518 -0.6633 -0.1882 0.2635 1.1423\n", + " z19 -0.8000 0.0622 0.5029 0.9926 1.9853\n", + " z20 -0.7809 0.0935 0.5566 1.0688 2.1378\n" ] }, - "execution_count": 27, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" }, @@ -481,7 +5709,7 @@ } ], "source": [ - "hmcda_samples = sample(funnel_model, hmcda, 5000; chain_type=MCMCChains.Chains)" + "hmcda_samples = sample(funnel_model, hmcda, 5000)" ] }, { @@ -495,7 +5723,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": null, "id": "9c61e0ab", "metadata": {}, "outputs": [], @@ -506,7 +5734,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": null, "id": "0b0923f1", "metadata": {}, "outputs": [], @@ -517,7 +5745,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": null, "id": "fec8ace5", "metadata": {}, "outputs": [], @@ -528,13 +5756,13 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": null, "id": "8869229b", "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAArEAAAL3CAYAAACd2x1cAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAABUwklEQVR4nO3deXhU5f3//9eQDQgkBAhLJCQsUlxZBBG1iqLiUi1i1c9HpeBCi4qV4tKgKGK1iFutK24Ftyoq+lFEVAqKpSItSvy6AIISQDZZJGGRrPP7g1/OuSeZM8wkk0zumefjuriuO2fuc849k8W39/0+79vn9/v9AgAAACzSLNYDAAAAACJFEAsAAADrEMQCAADAOgSxAAAAsA5BLAAAAKxDEAsAAADrEMQCAADAOgSxAAAAsA5BLAAAAKxDEAs0oPz8fPl8Pvl8Pr3++uue/U477TT5fD7NnDkz4Pjo0aPl8/k0evTokPeZOXOmfD6f8vPzJUkfffSRc99I/t1xxx3ONauqqjRz5kydfvrp6tChg1JSUtS2bVv16tVL5513nu69914VFRXV7YOJUHl5uRYsWKCbbrpJAwcOVJs2bZSSkqJOnTrpvPPO09y5cz3P3bBhg5588kn97ne/0zHHHKO0tDT5fD5dddVV9RrTHXfcUevza968uTp06KA+ffpo9OjReumll7R///46Xd/8Hnbq1El79+4N2u+HH35w+sVS9edh/gxJ7vs42M9wfVT//If616ZNmwa7f1NT/XensX4/gVhJjvUAgERx6623avjw4UpObvhfu06dOmnUqFG1jhcWFuqLL75Qx44ddeaZZ9Z6vW/fvpKkvXv36txzz9WHH34oSerfv79OOukkJSUl6fvvv9d7772nOXPmqGXLlho3blyDvhdJWrRokU4//XRJB97biSeeqPT0dH3zzTeaM2eO5syZo9/97neaPn16rWBu9uzZ+uMf/9hgYzM/y8rKShUXF2vlypV67rnn9Nxzz2n8+PF65JFH9D//8z91vsfWrVv1wAMP6Pbbb4/WsONSenq6fvOb3wR9rWXLlo08GgANjSAWaAQtW7bUt99+q2eeeUZjx45t8Pv17t271qyudGC27IsvvvB83ez34YcfKicnR/PmzdPRRx8d8HpxcbFmz56tzp07R3nkwTVr1kwXXHCBrr/+ev3yl78MeG3WrFm69NJL9dRTT+mEE07Qb3/724DXu3Xrpuuuu079+/dX//799eqrr+ruu++O2ti8PsvvvvtOd9xxh1588UX97//+r3bu3Klrrrkm4uu3aNFC+/fv1/3336+rr75a2dnZURh1fGrfvn3In2sA8YV0AqARXH/99ZKkO++8U/v27YvxaA7ulVdekSRNnjy5VgArSZmZmbriiit01llnNcp4Tj31VL3++uu1AlhJuvjii52l6ueff77W67/+9a/18MMPa/To0Tr66KMbZSZcknr06KEXXnhBN910k6QDPwPff/99xNfJycnRb37zG+3evVt33XVXtIcJANYiiAUawdlnn62TTz5Zmzdv1l//+tdYD+egtm7dKknq0KFDjEcSnn79+kk6kP/a1Nx9993KyclRRUVFnb/3d999t5KTkzV9+nStXbs2onMrKir0zDPPaMiQIWrbtq3S0tLUrVs3XX311Z6f1xtvvKGrrrpKRx55pLKystS8eXN169ZNV1xxhVatWlWn9xDMP//5T5177rnq2LGjUlJSlJWVpUMPPVSXXXaZPv7446jdx1RUVBSQPx6MV06pefzDDz/UGWecoaysLLVo0UL9+/cP+j9RkjRkyBD5fD599NFHKiws1IgRI9S+fXulpaXp8MMP1wMPPCC/3+85ngULFmjEiBHq3LmzUlNT1aFDB51//vlasmRJXT4CIG4QxAKNZNq0aZKke++9Vzt27IjxaELr2rWrJGn69OkqLS2N8WgObvXq1ZLUaOkNkUhJSdHFF18sSZo/f36drnHooYdqzJgxKisr06RJk8I+b/fu3Tr99NM1ZswYffbZZzr66KN13nnnKS0tTdOnT1e/fv20fPnyWudddNFFevnll9WiRQudeuqpGjZsmJo1a6YZM2bomGOO0SeffFKn92F67rnndMYZZ2ju3Lnq1q2bLrjgAp100knKyMjQK6+8ojfeeKPe92gof//73zV06FDt3LlTZ555pvr27avly5dr1KhReuihhzzPe//99zVo0CCtXLlSp59+ugYPHqxvv/1WN954o2fe9o033qjTTjtNb731lrp27arhw4ere/fueuutt/TLX/5SM2bMaKB3CVjAD6DB5OXl+SX5//Wvf/n9fr9/xIgRfkn+P/7xjwH9hg4d6pfknzFjRsDxUaNG+SX5R40aFfI+M2bM8Evy5+Xlhew3efJkvyT/ySefHLLfX//6V78kvyR/x44d/WPGjPE/++yz/s8//9xfUVER8tzGtnnzZn9mZqZfkv/hhx8+aP/qz+DKK6+s133D/Sz9fr//xRdfdD7P8vLysK7/4Ycf+iX5e/To4ff7D7zP9PR0v8/n8y9fvtzpt2HDBufaNV1yySV+Sf5f/epX/q1btwa8Vv09PvTQQ2t9T1955RX/nj17Ao5VVVX5H3vsMb8k/xFHHOGvqqoKeL3685g8eXJY769bt24BvxumrVu3+j///POwruP3h//z7/f7/WvXrj1o3+rf27Vr1wY9npKS4p8zZ07QMWRmZvr37dsX8NrJJ5/sfI+mT58e8NqCBQv8Pp/Pn5SU5N+wYUPAa0899ZRfkr9nz57+L774IuC1RYsW+Vu3bu1PTU31f/vtt2GNH4g3zMQCjegvf/mLkpOT9fjjj2vdunWxHo6n8ePH6+6771Z6erq2bt2qp59+WldeeaX69++vrKwsjRo1KqrLynVVUVGhyy67TMXFxTrqqKP0+9//PtZDCqp9+/ZOe+fOnXW6RqdOnfTHP/5Rfr9fBQUFB+2/YsUKvfzyy8rJydE//vGPWqkh48eP19lnn63Vq1dr3rx5Aa9dfPHFSk9PDzjm8/l0zTXXaPDgwfr666+1YsWKOr2Palu3blVmZqZOPPHEWq916NDBSRGJxLp16zxLbH300Uf1Gq/puuuu069+9auAY6NHj1bv3r1VXFysZcuWBT1vxIgRtX5Gq2e6KysrnWog0oESd9Xlyl555ZVaueknnXSSbrvtNpWVlenJJ5+MwrsC7EMQCzSiX/ziF7riiitUWlqq2267LdbDCemWW27RDz/8oJkzZ+ryyy9Xnz59lJSUpN27d+v5559Xv3799O6778Z0jGPHjtWCBQvUrl07vf7660pNTY3peLxUVVU57frUc73pppvUvn17vf/++wEBTzDvvvuu/H6/zjrrLLVu3TponyFDhkhS0PSANWvW6NFHH9X48eN15ZVXavTo0Ro9erSTL13f/4k59thjVVxcrN/+9rf67LPPAj6jukpPT9eoUaOC/uvUqVO9r1/t3HPPDXr8sMMOkyRt3Lix3uctX75cmzZtUo8ePXTMMccEPS/U9w9IBJTYAhpZddmll156STfeeGPQp/+rVQc8/hAPfZivR7vgfZs2bZwgQJJ++uknvfnmm5o0aZI2b96sUaNGad26dQetwbl9+3bdeOONtY737t07rFnFYK6//no9++yzysrK0vz589WrV686XSeYZ555RosXL651vKCgQL179474etu3b5d04PuTlZVV53FlZGRo0qRJGj9+vP70pz9p6dKlnn2rKyE8++yzevbZZ0Ned9u2bU67srJS48aN05NPPhny566kpCTC0Qd6/PHH9atf/UovvPCCXnjhBbVu3VoDBw7UqaeeqpEjRzp52ZForBJbXmPLyMiQJM8NLiI5r/r799133x3099r8/gGJhCAWaGSdO3fW9ddfr6lTp2rixIkhd5uqXtL12q2p2p49eyRJrVq1it5Ag8jKytIVV1yhfv36qX///tq+fbv+/e9/OxsRhBrfc889V+v4ySefXKcg9oYbbtDDDz+sNm3a6IMPPqjT0nMoixcvDjre6iXjSH3++eeSDgTt9S3xdfXVV+uhhx7Sf//7X73++usaPHhw0H7VM5t9+/ZVnz59Ql5z0KBBTvtvf/ubpk+frk6dOunBBx/U8ccfr44dO6p58+aSpEsuuUQvv/zyQf/H6mAOO+wwrVq1Sh988IEWLlyoTz75RP/617+0cOFC3XnnnXr22Wd12WWX1esedXWwWeFmzeq2iBnJedVj6NSpk4YNGxayr5muAiQSglggBv70pz/pqaee0rvvvhuylFD1zM2aNWtCXq/66fy6zF7VRb9+/dS+fXtt377dmWUMJT8/v95BT7Wbb75ZDz74oDIzM/XBBx9owIABUbmuaebMmVGb0SsvL9err74qSTrjjDPqfb3U1FT9+c9/1siRI3Xrrbfqgw8+CNovNzdXknTCCSfo0UcfDfv61WN98skndd5559V6vfpnLRqSk5N19tln6+yzz5Z0YHb3wQcf1JQpU/T73/9e559/fq3c3PqqTjnZvXt30NfLy8u1efPmqN6zLqq/f+3atWMDB8ADObFADGRmZuqWW26RdCAo83LqqadKkv7f//t/noFseXm53n777YD+9XWwgHPXrl3OcnKXLl2ics9wFBQU6L777lNmZqbmz5+vgQMHNtq96+rWW2/Vpk2blJKSErXtby+99FL16dNHq1ev1tNPPx20T/VGFG+//bbn8nYw1Q+e5eXl1Xrt66+/VmFhYeQDDlNGRobuuOMOtWnTRvv27dO3334b9XtkZ2crNTVVO3fu1I8//ljr9ffff18VFRVRv2+kBg4cqPbt2+ubb77R119/HevhAE0SQSwQI9dee626du2qpUuXehYtHzBggIYOHSq/36/LLrus1gzRzz//rKuvvlrr1q1Tdna2rrzyyqiM7dhjj9Xjjz8e9En6LVu2aNSoUSorK1NeXp7ncna0TZo0SdOmTVObNm2sCGC///57/fa3v9V9990nSXr00UeDBoZ14fP5NHXqVEnyrEvar18/XXDBBdqwYYNGjBhRq3C/dCBN5aWXXnIe1pLch4wee+yxgGX1zZs367e//W1UArx9+/bpwQcfDJrL+a9//Uu7du1SUlJSg/wPUkpKik466SRJB36mzPf4xRdfaNy4cVG/Z12kpKRo8uTJ8vv9Ov/884PmaFdWVmrhwoX69NNPYzBCIPZIJwBiJC0tTXfeeadGjx4dcivaF198UWeccYaWLl2q7t276/jjj1fnzp1VXFysJUuWaMeOHWrbtq1mz56tNm3aRGVsq1ev1rXXXqs//OEPOuqoo9SjRw8lJydr48aNWrp0qcrLy9W2bVu98sorjbKN69tvv627775bktSzZ0899thjQfu1b99e999/f8CxzZs36/zzz3e+/uGHH5xrHnfccc7xxx9/XP379494bCtXrnS2va2qqlJxcbFWrlyp1atXy+/3Kzs7W48++qguuuiiiK8dyllnnaUhQ4aELB01Y8YM7dq1S/PmzdMvfvEL9enTR926dZPf71dRUZG++OILlZWVacWKFerYsaOkA1Up3nvvPT399NP68MMP1b9/f5WUlGjRokXq3r27zj//fL355pv1GntZWZluuOEG3XTTTTrqqKN06KGHKiUlRUVFRU5Aduuttyo7O7te9/Fy11136eOPP9bTTz+tRYsW6eijj9bGjRu1bNkyXXLJJfroo4+aRAm8cePGaf369brvvvv0y1/+UkcccYR69uypFi1aaMuWLSosLNSuXbv0xBNPBPwsA4mCIBaIoZEjR+qBBx7Ql19+6dmnU6dOWrp0qZ599lnNnj1bX3zxhT7++GO1bNlSPXr00O9+9zv94Q9/iGoJocWLF+uf//ynFi5cqNWrV2vBggXas2ePMjIyNHDgQA0bNkzXXHNNoz1QYs4IL1u2zLMOZ15eXq0gtrS0NOhT/Nu2bQuYCazr0/Zbt251HgJLTU1VRkaGcnJyNHLkSA0bNkwj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BiBRxTQnFgAAAKiLhJqJBQAAQHwgiAUAAIB1CGIBAABgHYJYAAAAWCehg9i5c+dq0KBBatGihbKysjR8+PBYD8kapaWl6tu3r3w+nwoLC2M9nCarqKhIV155pbp166YWLVqoR48emjx5ssrKymI9tCbnscceU35+vpo3b65BgwbpP//5T6yH1GRNnTpVAwcOVOvWrdWhQwcNHz5cq1axly+AxJKwQezs2bM1cuRIXX755friiy/073//W5dcckmsh2WNm2++WTk5ObEeRpO3cuVKVVVV6cknn9TXX3+tv/71r5o+fbpuueWWWA+tSZk1a5YmTJigyZMn6/PPP1efPn00bNgw/fjjj7EeWpO0aNEiXXvttfr00081f/58lZeX64wzztDevXtjPTQAaDQJWWKroqJC+fn5mjJliq688spYD8c68+bN04QJEzR79mwdccQRWr58ufr27RvrYVnjvvvu0xNPPKHvv/8+1kNpMgYNGqSBAwfq0UcflSRVVVUpNzdX1113nQoKCmI8uqZv27Zt6tChgxYtWqSTTjop1sMBgEaRkDOxn3/+uTZu3KhmzZqpX79+6ty5s8466yx99dVXsR5ak7d161aNGTNGL7zwglq2bBnr4VipuLhYbdu2jfUwmoyysjJ99tlnOu2005xjzZo102mnnaYlS5bEcGT2KC4uliR+rgAklIQMYqtnwO644w5NmjRJ77zzjrKysjRkyBDt3LkzxqNruvx+v0aPHq2xY8dqwIABsR6OldasWaNHHnlEv//972M9lCZj+/btqqysVMeOHQOOd+zYUVu2bInRqOxRVVWl8ePH64QTTtCRRx4Z6+EAQKOJqyC2oKBAPp8v5L/qHEVJuvXWW3XBBRfomGOO0YwZM+Tz+fTaa6/F+F00vnA/t0ceeUS7d+/WxIkTYz3kmAv3MzNt3LhRZ555pi688EKNGTMmRiNHvLn22mv11Vdf6ZVXXon1UACgUSXHegDRdMMNN2j06NEh+3Tv3l2bN2+WJB1++OHO8bS0NHXv3l3r169vyCE2SeF+bgsXLtSSJUtq7dE+YMAAXXrppXruuecacJRNS7ifWbVNmzbplFNO0fHHH6+nnnqqgUdnl/bt2yspKUlbt24NOL5161Z16tQpRqOyw7hx4/TOO+/o448/VpcuXWI9HABoVHEVxGZnZys7O/ug/Y455hilpaVp1apVOvHEEyVJ5eXlKioqUl5eXkMPs8kJ93N7+OGHdddddzlfb9q0ScOGDdOsWbM0aNCghhxikxPuZyYdmIE95ZRTnBn/Zs3iagGk3lJTU3XMMcdowYIFTpm7qqoqLViwQOPGjYvt4Joov9+v6667Tm+++aY++ugjdevWLdZDAoBGF1dBbLgyMjI0duxYTZ48Wbm5ucrLy9N9990nSbrwwgtjPLqmq2vXrgFft2rVSpLUo0cPZoE8bNy4UUOGDFFeXp7uv/9+bdu2zXmNWUbXhAkTNGrUKA0YMEDHHnusHnroIe3du1eXX355rIfWJF177bX6xz/+obfeekutW7d2coczMzPVokWLGI8OABpHQgax0oEyR8nJyRo5cqR+/vlnDRo0SAsXLlRWVlash4Y4Mn/+fK1Zs0Zr1qypFegnYHU7TxdffLG2bdum22+/XVu2bFHfvn313nvv1XrYCwc88cQTkqQhQ4YEHJ8xY8ZB01wAIF4kZJ1YAAAA2I3kPAAAAFiHIBYAAADWIYgFAACAdQhiAQAAYB2CWAAAAFiHIBYAAADWIYgFAACAdQhiAQAAYB2CWCAKNm/erEsuuUS9evVSs2bNNH78+KD9XnvtNfXu3VvNmzfXUUcdpXfffbdxBwoAQJwgiAWioLS0VNnZ2Zo0aZL69OkTtM8nn3yi//3f/9WVV16p5cuXa/jw4Ro+fLi++uqrRh4tAAD2Y9tZIAzbtm3TUUcdpT/84Q+65ZZbJB0ISocMGaJ58+Zp6NChTt8hQ4aob9++euihhwKucfHFF2vv3r165513nGPHHXec+vbtq+nTpzfK+wAAIF4wEwuEITs7W3//+991xx13aNmyZdq9e7dGjhypcePGBQSwoSxZskSnnXZawLFhw4ZpyZIlDTFkAADiWnKsBwDY4uyzz9aYMWN06aWXasCAAUpPT9fUqVPDPn/Lli3q2LFjwLGOHTtqy5Yt0R4qAABxj5lYIAL333+/Kioq9Nprr+mll15SWlparIcEAEBCIogFIvDdd99p06ZNqqqqUlFRUUTndurUSVu3bg04tnXrVnXq1CmKIwQAIDEQxAJhKisr02WXXaaLL75Yf/7zn3XVVVfpxx9/DPv8wYMHa8GCBQHH5s+fr8GDB0d7qAAAxD1yYoEw3XrrrSouLtbDDz+sVq1a6d1339UVV1zhVBsoLCyUJO3Zs0fbtm1TYWGhUlNTdfjhh0uSrr/+ep188sl64IEHdM455+iVV17RsmXL9NRTT8XqLQEAYC1KbAFh+Oijj3T66afrww8/1IknnihJKioqUp8+fXTPPffo6quvls/nq3VeXl5eQNrBa6+9pkmTJqmoqEiHHnqo7r33Xp199tmN9TYAAIgbBLEAAACwDjmxAAAAsA5BLAAAAKxDEAsAAADrEMQCAADAOgSxAAAAsA5BLAAAAKxDEAsAAADrEMQCAADAOgSxAAAAsA5BLAAAAKxDEAsAAADrEMQCAADAOv8fKIHmekp3eO4AAAAASUVORK5CYII=", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAArEAAAL3CAYAAACd2x1cAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAABT3klEQVR4nO3dd3xUVf7/8XcSkgAhCcGEJiEJWNBF6SJYQEVRcVnAdf2uDYRlbdiwbFAU6yK2da1YwS4q8rNggQVF/YqsVMsCAhI6GAgkwEoSkvn9wTf3nglzh5m0yZm8no8Hj8eZO+fee2YS9MM5n/s5MT6fzycAAADAIrGRHgAAAAAQLoJYAAAAWIcgFgAAANYhiAUAAIB1CGIBAABgHYJYAAAAWIcgFgAAANYhiAUAAIB1CGIBAABgHYJYoBZlZ2crJiZGMTExevfddz37DRgwQDExMZo6darf8REjRigmJkYjRowIep+pU6cqJiZG2dnZkqQvvvjCuW84f+666y7nmuXl5Zo6darOPPNMtWzZUvHx8WrRooWOOuooDR48WA8++KDy8vKq9sWEqbS0VHPmzNEtt9yiXr16qXnz5oqPj1fr1q01ePBgzZw50/PcDRs26Nlnn9Vf//pX9ejRQ4mJiYqJidFf/vKXao3prrvuOuj7a9y4sVq2bKkuXbpoxIgRev3117Vv374qXd/8GbZu3Vp79+4N2G/jxo1Ov0iq+D7M3yHJ/RyH+h2ujorf/2B/mjdvXmv3r28q/rtTV38/gUhpFOkBAA3F7bffriFDhqhRo9r/a9e6dWsNHz78oONLly7VsmXL1KpVK5199tkHvd+1a1dJ0t69e/X73/9en3/+uSSpe/fuOvXUUxUXF6dffvlFn376qT788EM1bdpUY8aMqdXPIknz5s3TmWeeKenAZzv55JOVlJSk//znP/rwww/14Ycf6q9//asmT558UDA3ffp03XjjjbU2NvO7LCsrU2FhoVasWKGXX35ZL7/8sm644QY98cQT+p//+Z8q32Pbtm165JFHdOedd9bUsKNSUlKS/vjHPwZ8r2nTpnU8GgC1jSAWqANNmzbVzz//rBdeeEFXXnllrd+vU6dOB83qSgdmy5YtW+b5vtnv888/V9u2bfXJJ5/o+OOP93u/sLBQ06dPV5s2bWp45IHFxsbq/PPP1/XXX69TTjnF771p06bp4osv1nPPPaeTTjpJl112md/7OTk5uvbaa9W9e3d1795db7/9tu6///4aG5vXd7lmzRrdddddeu211/TnP/9ZBQUFuvrqq8O+fpMmTbRv3z49/PDDuuqqq5SRkVEDo45O6enpQX+vAUQX0gmAOnD99ddLku655x7997//jfBoDu2tt96SJE2YMOGgAFaSUlNTNXLkSJ1zzjl1Mp7TTz9d77777kEBrCRdeOGFzlL1K6+8ctD7f/jDH/T4449rxIgROv744+tkJlySOnbsqFdffVW33HKLpAO/A7/88kvY12nbtq3++Mc/avfu3brvvvtqepgAYC2CWKAOnHvuuerXr5+2bNmif/zjH5EeziFt27ZNktSyZcsIjyQ03bp1k3Qg/7W+uf/++9W2bVvt37+/yj/7+++/X40aNdLkyZO1du3asM7dv3+/XnjhBfXv318tWrRQYmKicnJydNVVV3l+X++9957+8pe/qHPnzkpLS1Pjxo2Vk5OjkSNHauXKlVX6DIH861//0u9//3u1atVK8fHxSktL05FHHqlLLrlEX375ZY3dx5SXl+eXPx6IV06pefzzzz/XWWedpbS0NDVp0kTdu3cP+I8oSerfv79iYmL0xRdfaOnSpRo2bJjS09OVmJioY489Vo888oh8Pp/neObMmaNhw4apTZs2SkhIUMuWLTV06FDNnz+/Kl8BEDUIYoE6MmnSJEnSgw8+qB07dkR4NMG1b99ekjR58mQVFxdHeDSHtmrVKkmqs/SGcMTHx+vCCy+UJM2ePbtK1zjyyCM1evRolZSUaPz48SGft3v3bp155pkaPXq0Fi1apOOPP16DBw9WYmKiJk+erG7dumnJkiUHnfenP/1Jb775ppo0aaLTTz9dAwcOVGxsrKZMmaIePXrom2++qdLnML388ss666yzNHPmTOXk5Oj888/XqaeeqpSUFL311lt67733qn2P2vLSSy/pjDPOUEFBgc4++2x17dpVS5Ys0fDhw/XYY495nvfZZ5+pd+/eWrFihc4880z16dNHP//8s26++WbPvO2bb75ZAwYM0Pvvv6/27dtryJAh6tChg95//32dcsopmjJlSi19SsACPgC1JisryyfJ99VXX/l8Pp9v2LBhPkm+G2+80a/fGWec4ZPkmzJlit/x4cOH+yT5hg8fHvQ+U6ZM8UnyZWVlBe03YcIEnyRfv379gvb7xz/+4ZPkk+Rr1aqVb/To0b4XX3zRt3jxYt/+/fuDnlvXtmzZ4ktNTfVJ8j3++OOH7F/xHYwaNapa9w31u/T5fL7XXnvN+T5LS0tDuv7nn3/uk+Tr2LGjz+c78DmTkpJ8MTExviVLljj9NmzY4Fy7sosuusgnyXfeeef5tm3b5vdexc/4yCOPPOhn+tZbb/n27Nnjd6y8vNz31FNP+ST5fve73/nKy8v93q/4PiZMmBDS58vJyfH7u2Hatm2bb/HixSFdx+cL/fff5/P51q5de8i+FX9v165dG/B4fHy878MPPww4htTUVN9///tfv/f69evn/IwmT57s996cOXN8MTExvri4ON+GDRv83nvuued8knxHHHGEb9myZX7vzZs3z5ecnOxLSEjw/fzzzyGNH4g2zMQCdejvf/+7GjVqpKefflrr1q2L9HA83XDDDbr//vuVlJSkbdu26fnnn9eoUaPUvXt3paWlafjw4TW6rFxV+/fv1yWXXKLCwkIdd9xxuuKKKyI9pIDS09OddkFBQZWu0bp1a914443y+XzKzc09ZP/ly5frzTffVNu2bfXGG28clBpyww036Nxzz9WqVav0ySef+L134YUXKikpye9YTEyMrr76avXp00c//fSTli9fXqXPUWHbtm1KTU3VySeffNB7LVu2dFJEwrFu3TrPEltffPFFtcZruvbaa3Xeeef5HRsxYoQ6deqkwsJCLVy4MOB5w4YNO+h3tGKmu6yszKkGIh0ocVdRruytt946KDf91FNP1R133KGSkhI9++yzNfCpAPsQxAJ16Oijj9bIkSNVXFysO+64I9LDCeq2227Txo0bNXXqVF1++eXq0qWL4uLitHv3br3yyivq1q2bPv7444iO8corr9ScOXN02GGH6d1331VCQkJEx+OlvLzcaVennustt9yi9PR0ffbZZ34BTyAff/yxfD6fzjnnHCUnJwfs079/f0kKmB6wevVqPfnkk7rhhhs0atQojRgxQiNGjHDypav7j5gTTjhBhYWFuuyyy7Ro0SK/76iqkpKSNHz48IB/WrduXe3rV/j9738f8PgxxxwjSdq0aVO1z1uyZIk2b96sjh07qkePHgHPC/bzAxoCSmwBdayi7NLrr7+um2++OeDT/xUqAh5fkIc+zPdruuB98+bNnSBAknbu3KkZM2Zo/Pjx2rJli4YPH65169Ydsgbn9u3bdfPNNx90vFOnTiHNKgZy/fXX68UXX1RaWppmz56to446qkrXCeSFF17Q119/fdDx3NxcderUKezrbd++XdKBn09aWlqVx5WSkqLx48frhhtu0N/+9jctWLDAs29FJYQXX3xRL774YtDr5ufnO+2ysjKNGTNGzz77bNDfu6KiojBH7+/pp5/Weeedp1dffVWvvvqqkpOT1atXL51++um69NJLnbzscNRViS2vsaWkpEiS5wYX4ZxX8fNbs2bNIf9emz8/oCEhiAXqWJs2bXT99ddr4sSJGjduXNDdpiqWdL12a6qwZ88eSVKzZs1qbqABpKWlaeTIkerWrZu6d++u7du363//93+djQiCje/ll18+6Hi/fv2qFMTedNNNevzxx9W8eXPNmjWrSkvPwXz99dcBx1uxZByuxYsXSzoQtFe3xNdVV12lxx57TN99953effdd9enTJ2C/ipnNrl27qkuXLkGv2bt3b6f9z3/+U5MnT1br1q316KOPqm/fvmrVqpUaN24sSbrooov05ptvHvIfVodyzDHHaOXKlZo1a5bmzp2rb775Rl999ZXmzp2re+65Ry+++KIuueSSat2jqg41KxwbW7VFzHDOqxhD69atNXDgwKB9zXQVoCEhiAUi4G9/+5uee+45ffzxx0FLCVXM3KxevTro9Sqezq/K7FVVdOvWTenp6dq+fbszyxhMdnZ2tYOeCrfeeqseffRRpaamatasWerZs2eNXNc0derUGpvRKy0t1dtvvy1JOuuss6p9vYSEBN1777269NJLdfvtt2vWrFkB+2VmZkqSTjrpJD355JMhX79irM8++6wGDx580PsVv2s1oVGjRjr33HN17rnnSjowu/voo4/q7rvv1hVXXKGhQ4celJtbXRUpJ7t37w74fmlpqbZs2VKj96yKip/fYYcdxgYOgAdyYoEISE1N1W233SbpQFDm5fTTT5ckff/9956BbGlpqT744AO//tV1qIBz165dznJyu3btauSeocjNzdVDDz2k1NRUzZ49W7169aqze1fV7bffrs2bNys+Pr7Gtr+9+OKL1aVLF61atUrPP/98wD4VG1F88MEHnsvbgVQ8eJaVlXXQez/99JOWLl0a/oBDlJKSorvuukvNmzfXf//7X/388881fo+MjAwlJCSooKBAv/7660Hvf/bZZ9q/f3+N3zdcvXr1Unp6uv7zn//op59+ivRwgHqJIBaIkGuuuUbt27fXggULPIuW9+zZU2eccYZ8Pp8uueSSg2aIfvvtN1111VVat26dMjIyNGrUqBoZ2wknnKCnn3464JP0W7du1fDhw1VSUqKsrCzP5eyaNn78eE2aNEnNmze3IoD95ZdfdNlll+mhhx6SJD355JMBA8OqiImJ0cSJEyXJsy5pt27ddP7552vDhg0aNmzYQYX7pQNpKq+//rrzsJbkPmT01FNP+S2rb9myRZdddlmNBHj//e9/9eijjwbM5fzqq6+0a9cuxcXF1co/kOLj43XqqadKOvA7ZX7GZcuWacyYMTV+z6qIj4/XhAkT5PP5NHTo0IA52mVlZZo7d66+/fbbCIwQiDzSCYAISUxM1D333KMRI0YE3Yr2tdde01lnnaUFCxaoQ4cO6tu3r9q0aaPCwkLNnz9fO3bsUIsWLTR9+nQ1b968Rsa2atUqXXPNNbruuut03HHHqWPHjmrUqJE2bdqkBQsWqLS0VC1atNBbb71VJ9u4fvDBB7r//vslSUcccYSeeuqpgP3S09P18MMP+x3bsmWLhg4d6rzeuHGjc80TTzzROf7000+re/fuYY9txYoVzra35eXlKiws1IoVK7Rq1Sr5fD5lZGToySef1J/+9Kewrx3MOeeco/79+wctHTVlyhTt2rVLn3zyiY4++mh16dJFOTk58vl8ysvL07Jly1RSUqLly5erVatWkg5Upfj000/1/PPP6/PPP1f37t1VVFSkefPmqUOHDho6dKhmzJhRrbGXlJTopptu0i233KLjjjtORx55pOLj45WXl+cEZLfffrsyMjKqdR8v9913n7788ks9//zzmjdvno4//nht2rRJCxcu1EUXXaQvvviiXpTAGzNmjNavX6+HHnpIp5xyin73u9/piCOOUJMmTbR161YtXbpUu3bt0jPPPOP3uww0FASxQARdeumleuSRR/TDDz949mndurUWLFigF198UdOnT9eyZcv05ZdfqmnTpurYsaP++te/6rrrrqvREkJff/21/vWvf2nu3LlatWqV5syZoz179iglJUW9evXSwIEDdfXVV9fZAyXmjPDChQs963BmZWUdFMQWFxcHfIo/Pz/fbyawqk/bb9u2zXkILCEhQSkpKWrbtq0uvfRSDRw4UMOGDXMeiqpp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/9DkyZN12223RXpo9cq0adM0duxYTZgwQYsXL1aXLl00cOBA/frrr5EeWr00b948XXPNNfr22281e/ZslZaW6qyzztLevXsjPTQAqDMNssTW/v37lZ2drbvvvlujRo2K9HCs88knn2js2LGaPn26fve732nJkiXq2rVrpIdljYceekjPPPOMfvnll0gPpd7o3bu3evXqpSeffFKSVF5erszMTF177bXKzc2N8Ojqv/z8fLVs2VLz5s3TqaeeGunhAECdaJAzsYsXL9amTZsUGxurbt26qU2bNjrnnHP0448/Rnpo9d62bds0evRovfrqq2ratGmkh2OlwsJCtWjRItLDqDdKSkq0aNEiDRgwwDkWGxurAQMGaP78+REcmT0KCwslid8rAA1KgwxiK2bA7rrrLo0fP14fffSR0tLS1L9/fxUUFER4dPWXz+fTiBEjdOWVV6pnz56RHo6VVq9erSeeeEJXXHFFpIdSb2zfvl1lZWVq1aqV3/FWrVpp69atERqVPcrLy3XDDTfopJNOUufOnSM9HACoM1EVxObm5iomJibon4ocRUm6/fbbdf7556tHjx6aMmWKYmJi9M4770T4U9S9UL+3J554Qrt379a4ceMiPeSIC/U7M23atElnn322LrjgAo0ePTpCI0e0ueaaa/Tjjz/qrbfeivRQAKBONYr0AGrSTTfdpBEjRgTt06FDB23ZskWSdOyxxzrHExMT1aFDB61fv742h1gvhfq9zZ07V/Pnzz9oj/aePXvq4osv1ssvv1yLo6xfQv3OKmzevFmnnXaa+vbtq+eee66WR2eX9PR0xcXFadu2bX7Ht23bptatW0doVHYYM2aMPvroI3355Zdq165dpIcDAHUqqoLYjIwMZWRkHLJfjx49lJiYqJUrV+rkk0+WJJWWliovL09ZWVm1Pcx6J9Tv7fHHH9d9993nvN68ebMGDhyoadOmqXfv3rU5xHon1O9MOjADe9pppzkz/rGxUbUAUm0JCQnq0aOH5syZ45S5Ky8v15w5czRmzJjIDq6e8vl8uvbaazVjxgx98cUXysnJifSQAKDORVUQG6qUlBRdeeWVmjBhgjIzM5WVlaWHHnpIknTBBRdEeHT1V/v27f1eN2vWTJLUsWNHZoE8bNq0Sf3791dWVpYefvhh5efnO+8xy+gaO3ashg8frp49e+qEE07QY489pr179+ryyy+P9NDqpWuuuUZvvPGG3n//fSUnJzu5w6mpqWrSpEmERwcAdaNBBrHSgTJHjRo10qWXXqrffvtNvXv31ty5c5WWlhbpoSGKzJ49W6tXr9bq1asPCvQbYHU7TxdeeKHy8/N15513auvWreratas+/fTTgx72wgHPPPOMJKl///5+x6dMmXLINBcAiBYNsk4sAAAA7EZyHgAAAKxDEAsAAADrEMQCAADAOgSxAAAAsA5BLAAAAKxDEAsAAADrEMQCAADAOgSxAAAAsA5BLFADtmzZoosuukhHHXWUYmNjdcMNNwTs984776hTp05q3LixjjvuOH388cd1O1AAAKIEQSxQA4qLi5WRkaHx48erS5cuAft88803+vOf/6xRo0ZpyZIlGjJkiIYMGaIff/yxjkcLAID92HYWCEF+fr6OO+44XXfddbrtttskHQhK+/fvr08++URnnHGG07d///7q2rWrHnvsMb9rXHjhhdq7d68++ugj59iJJ56orl27avLkyXXyOQAAiBbMxAIhyMjI0EsvvaS77rpLCxcu1O7du3XppZdqzJgxfgFsMPPnz9eAAQP8jg0cOFDz58+vjSEDABDVGkV6AIAtzj33XI0ePVoXX3yxevbsqaSkJE2cODHk87du3apWrVr5HWvVqpW2bt1a00MFACDqMRMLhOHhhx/W/v379c477+j1119XYmJipIcEAECDRBALhGHNmjXavHmzysvLlZeXF9a5rVu31rZt2/yObdu2Ta1bt67BEQIA0DAQxAIhKikp0SWXXKILL7xQ9957r/7yl7/o119/Dfn8Pn36aM6cOX7HZs+erT59+tT0UAEAiHrkxAIhuv3221VYWKjHH39czZo108cff6yRI0c61QaWLl0qSdqzZ4/y8/O1dOlSJSQk6Nhjj5UkXX/99erXr58eeeQRDRo0SG+99ZYWLlyo5557LlIfCQAAa1FiCwjBF198oTPPPFOff/65Tj75ZElSXl6eunTpogceeEBXXXWVYmJiDjovKyvLL+3gnXfe0fjx45WXl6cjjzxSDz74oM4999y6+hgAAEQNglgAAABYh5xYAAAAWIcgFgAAANYhiAUAAIB1CGIBAABgHYJYAAAAWIcgFgAAANYhiAUAAIB1CGIBAABgHYJYAAAAWIcgFgAAANYhiAUAAIB1CGIBAABgnf8PfIHF6R9psnUAAAAASUVORK5CYII=", "text/plain": [ "Figure(PyObject
)" ] @@ -565,13 +5793,13 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": null, "id": "fe4c8b70", "metadata": {}, "outputs": [ { "data": { - "image/png": "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hg0b1LNnT1122WWBXwB69OgR1dQYIB4QxAIWGzVqlEpKSoKqHWzYsEEff/yx+vbtq1NPPdX13BUrVkj6eYbVFi+++KJ2796tunXr6tJLL431cE7g8/l09tlnS5K++eabcl2jfv36euCBByRJ2dnZ8vv9Jz1nx44d+tWvfqX9+/frH//4hzZt2qQ5c+bovffe04YNGzRgwAC9//77mjhxYtB53bt31/Lly7V161YtWbJE//rXv/TBBx9o8+bNgVnDKVOmeB779OnT5ff7g2Y2ly1bpsWLF+uss87S1q1b9e677+r111/XokWLlJubqy+//FIZGRme71GVPv30U+3Zs0ebNm3SggUL9O9//1vfffedBg8erP3795/weZb68ccftWTJEq1Zs0aLFy/WzJkztXbtWt18880qLCzUQw89FNTf7/frmmuu0ddff61Ro0YpNzdXixYt0ltvvaWNGzfqnnvuUW5ubpm/lAI1EUEsEAMjR44ss0TQ0qVLPV3n17/+tVJSUgLBg+SkF5SmG7jJy8uT9PMStg2+/vpr3XfffZKkBx98UM2bN4/xiMJr2rSpJFVo+fe2225T+/bttWrVKs2cOfOk/Z9++mnt2bNHd9xxh26//fag1JAmTZrolVdeUWJiop555pmgoLhz584655xzTrheo0aNAlUv3njjjXK/D0nauXOnJOmCCy5QgwYNTvh6jx491KRJk4ivO2HChLB/dzIzMys0XpPP59NLL70UtFJRp04dTZgwQZL0wQcfuJ47depUderUKfC6Vq1a+stf/iJJWrp0adCs+MKFC/XJJ58oKytLzz33XNDnVLt2bT322GPq0qWL/vOf/2jNmjVRe3+A7ahOAMSAWaopnPfeey/wn39ZUlNTNWzYML366qtasmSJ+vbtq1deeUUNGjTQ8OHDoznkmNq6dauuuOIKHTx4UFdeeaWys7NjPSRXJSUlkn4OgMorMTFRjzzyiK677jo98MADGjZsmBITE137lz7kdu2114b9+imnnKJTTz1Va9eu1YYNG4KCq+PHj2vJkiX69NNP9dNPP+nIkSPy+/2BYHf9+vXlfh+SdPbZZ6tWrVqaNm2aOnXqpF/96ldRSQVxK7FV+ktENLRp00bdunU74Xjnzp0lSdu2bQt7Xu3atXXJJZeccLxFixZq1KiR9u3bpz179gSC49Lv37Bhw1S79on/LSckJKhv375as2aNPv30U3Xp0qXc7wmIJwSxQAyEK9Vk6tevn6cgVvp5xvXVV1/VtGnTdPjwYW3fvl233HLLSUthpaena8uWLdq1a1ckQz+pt99+O2zFhFtuuUXnn39+xNfbsWOHBg4cqB9//FGDBw/WrFmzKhQghgr3fWjatKkef/zxcl1v9+7dkhTIjS2vX//615o8ebJWr16tf/7zn2VugvD9999L+nm282Ty8vICQeyGDRv0y1/+sszUh4KCgghHHqxDhw566qmndN9992nMmDEaM2aM2rZtqz59+ujyyy/X8OHDlZSUFPF1q6LEVps2bcIeT01NlSTXfOGWLVu6/tKRmpqqffv2BT00V/r9e/DBB/Xggw+WOabSFRQABLGA9S688EJ16NBBb775pnbs2CHp5KkE0s/5kFu2bHGtIVteOTk5evnll0843q9fv4iD2F27dmnAgAH67rvvNGjQIL399ttRL/MVbqxt27YtVxDr9/sDu6h17dq1QuPy+Xx69NFHNXjwYP35z38u85ee0tnfq6++WvXq1SvzuubS/dVXX61vvvlGl19+ue6//36dccYZSk1NVWJiooqKiqL2Wd9555265ppr9M4772jZsmVatmyZZsyYoRkzZmj8+PH6+OOPY/KgXunn5uZkFTuidV7pOM4///yTbnJx5plnlmtMQDwiiAUsV7oN6YMPPqgPPvhAnTt3Vp8+fU563lVXXaW3335bCxcu1M6dO6OWY/rwww9HZYYsLy9PAwYM0Lp16zRw4EC98847qlOnTsUHGMLLg1Nevfvuu9q3b58k6eKLL67w9S6++GINHDhQixcv1hNPPOFaLi0jI0MbNmzQ73//e/Xo0cPTtb/99lt99dVXatasmWbPnn3CMvaGDRsqPH5T8+bNNXr0aI0ePTpw/5tvvlnLly9XdnZ22F8mKqp0hvfAgQNhv15dnvYvfbDtqquu0r333hvj0QD24MEuIA6MGDFC6enpatKkiW699VZP51x//fXKzMxUUVGRbr/99pPOSq1cuVJHjhyJxnBPavfu3RowYIC++eYbDRw4UHPnzo15jdqTyc/P19133y3p553D3LZEjdSkSZPk8/n0xBNPuC4ll1ZqmDVrlufrltZmbdWqVdg8zP/7v/8rx2i9O/300wO1cHNycirlHqUbXoSr6Sop7IYZsVD6/XvjjTei+ksVEO8IYoE40Lp1a+3atUu7d+/W7373O0/nJCYmatasWapTp45mz56toUOH6ocffjih3969e/Xggw/qvPPOq3DNUC/27t2rgQMHas2aNRo0aFC1D2BLt53t1auXNmzYoJYtW+p///d/o3b97t27a/jw4Tpw4IBeeOGFsH3uu+8+NWzYUE8++WRge+BQP/zwQ1Bg2qlTJ9WqVUtff/21lixZEtR37ty5euqpp6Iy/g8//FDvvvvuCTVq/X6/5s2bJ+nn9I3KMGDAACUkJGjhwoVBFT/8fr+mTJmiN998s1LuG6mrrrpKPXv21BdffKGRI0eG/WVl3759eu6558JuWgHUVKQTADVYz5499dFHH2n48OGaO3eu5s2bp7POOkvt27dXQkKCfvzxR61YsULHjx9X+/btq2Tb2VtuuUVfffWVfD6fGjdurNtvvz1sv6FDh2ro0KFBx1544YWgQO+nn36SJN16662BskUtW7bU7NmzyzW2F154IRDwFRYWavfu3Vq1alVgVrNfv36aNm1a1IOyv/zlL5o9e7YOHz4c9uutW7fWnDlzNGzYMN17772BkkwtW7ZUfn6+1q1bp02bNql379664YYbJP388NqYMWP0t7/9TQMHDtQFF1ygVq1aaf369Vq1apUeeOABPfLIIxUe+1dffaW7775bqampOvvss9WqVSsdOXJEq1at0o8//qi0tDT96U9/qvB9wsnIyNCdd94Z9B4bN26s//73v9q8ebOys7P16KOPVsq9I5GQkKC3335bQ4YM0csvv6x///vf6tatm9q0aaOioiJ9//33+vrrr3X8+HGNGDEi7Mw5UBPxNwGo4Xr27KnvvvtOr776qubMmaNVq1bpm2++kc/nU8uWLfXLX/5Sw4YNO2mZp2gpDQj9fn+Zy+OZmZknBLFbt24NuxvS2rVrA+2KBJiffPKJPvnkE0kKbCXatWtX9ejRQ9dee22lbRzRsWNHjR49Wv/4xz9c+/Tt21fffPONnnnmGc2fP19ffvmlCgsL1axZM7Vp00Y33HCDhg0bFnTOU089pV/84hf6xz/+oZUrVyonJ0ddu3bVjBkzdO2110YliL3iiiuUn5+vjz/+WBs2bNBnn32munXrKiMjQ9nZ2brjjjvUunXrCt/HzVNPPaU2bdrohRde0Keffqr69evrvPPO06xZs1RQUFAtgljp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QoLOOusstWzZUpdeeqnWrFkT66FVezt37tTo0aP16quvKiUlJdbDsVJ+fr4aN24c62FUG0VFRVq5cqUGDRoUOJaQkKBBgwZp+fLlMRyZPfLz8yWJnysANUqNDGJLZ8AefvhhPfDAA5o3b54aNWqkfv36ae/evTEeXfXl9/s1YsQI3XbbberRo0esh2OljRs3aurUqbr11ltjPZRqY/fu3Tp+/LiaN28edLx58+basWNHjEZlj5KSEt11110677zz1KVLl1gPBwCqTFwFsdnZ2fL5fGX+Kc1RlKQ//vGPGjZsmLp3766XXnpJPp9Pb7zxRozfRdXz+rlNnTpVBw4c0Lhx42I95Jjz+pmZtm3bpksuuUTDhw/X6NGjYzRyxJs77rhDa9as0YwZM2I9FACoUrVjPYBouueeezRixIgy+7Rv314//fSTJOmMM84IHE9OTlb79u21efPmyhxiteT1c/vwww+1fPnyE/Zo79Gjh66//nq9/PLLlTjK6sXrZ1Zq+/bt6t+/v84991w9//zzlTw6uzRt2lS1atXSzp07g47v3LlTLVq0iNGo7DBmzBjNmzdPH330kVq3bh3r4QBAlYqrIDY9PV3p6ekn7de9e3clJydr/fr1Ov/88yVJxcXFys3NVdu2bSt7mNWO189typQpeuSRRwKvt2/frsGDB2vmzJnq3bt3ZQ6x2vH6mUk/z8D2798/MOOfkBBXCyAVlpSUpO7du2vx4sWBMnclJSVavHixxowZE9vBVVN+v1933nmnZs+erSVLlqhdu3axHhIAVLm4CmK9Sk1N1W233abx48crIyNDbdu21eTJkyVJw4cPj/Hoqq82bdoEva5fv74kqUOHDswCudi2bZv69euntm3b6vHHH1deXl7ga8wyOsaOHaubbrpJPXr0UK9evfT000/r0KFDGjlyZKyHVi3dcccdev311zVnzhw1aNAgkDuclpamunXrxnh0AFA1amQQK/1c5qh27dq68cYbdeTIEfXu3VsffvihGjVqFOuhIY4sWrRIGzdu1MaNG08I9GtgdTtX1157rfLy8vTQQw9px44dysrK0nvvvXfCw1742bPPPitJ6tevX9Dxl1566aRpLgAQL2pknVgAAADYjeQ8AAAAWIcgFgAAANYhiAUAAIB1CGIBAABgHYJYAAAAWIcgFgAAANYhiAUAAIB1CGIBAABgHYJYIAp++uknXXfdderUqZMSEhJ01113he33xhtv6PTTT1edOnXUtWtXvfvuu1U7UAAA4gRBLBAFhYWFSk9P1wMPPKBu3bqF7fPpp5/qf/7nfzRq1CitXr1aQ4cO1dChQ7VmzZoqHi0AAPZj21nAg7y8PHXt2lW//e1v9Yc//EHSz0Fpv379tGDBAg0cODDQt1+/fsrKytLTTz8ddI1rr71Whw4d0rx58wLHzjnnHGVlZem5556rkvcBAEC8YCYW8CA9PV3Tpk3Tww8/rBUrVujAgQO68cYbNWbMmKAAtizLly/XoEGDgo4NHjxYy5cvr4whAwAQ12rHegCALS677DKNHj1a119/vXr06KF69epp4sSJns/fsWOHmjdvHnSsefPm2rFjR7SHCgBA3GMmFojA448/rmPHjumNN97Qa6+9puTk5FgPCQCAGokgFojApk2btH37dpWUlCg3Nzeic1u0aKGdO3cGHdu5c6datGgRxRECAFAzEMQCHhUVFemGG27Qtddeqz//+c+65ZZbtGvXLs/n9+nTR4sXLw46tmjRIvXp0yfaQwUAIO6REwt49Mc//lH5+fmaMmWK6tevr3fffVc333xzoNpATk6OJOngwYPKy8tTTk6OkpKSdMYZZ0iSfve73+nCCy/UE088oSFDhmjGjBlasWKFnn/++Vi9JQAArEWJLcCDJUuW6KKLLtJ//vMfnX/++ZKk3NxcdevWTY8++qhuv/12+Xy+E85r27ZtUNrBG2+8oQceeEC5ubk69dRT9dhjj+myyy6rqrcBAEDcIIgFAACAdciJBQAAgHUIYgEAAGAdglgAAABYhyAWAAAA1iGIBQAAgHUIYgEAAGAdglgAAABYhyAWAAAA1iGIBQAAgHUIYgEAAGAdglgAAABYhyAWAAAA1vn/Af+6S3JAnOO6AAAAAElFTkSuQmCC", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAArEAAAL3CAYAAACd2x1cAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAABRYklEQVR4nO3deXhU5f3//9eEkEAggQBhDwRwQ6FBdlxBUFBcqEhtXQqIXOpXbBWXhioirS1ScCnaaq0i6kcLUkVUFAUsKAqKLCqKCEgA2ZdAwmICZH5/+Muc+4Q5w0y2mXvyfFwX13XmzFneM0F8577f5337/H6/XwAAAIBFEqIdAAAAABApklgAAABYhyQWAAAA1iGJBQAAgHVIYgEAAGAdklgAAABYhyQWAAAA1iGJBQAAgHVIYgEAAGAdkligCmVlZcnn82natGkhj+vdu7d8Pp8eeugh1/6FCxfK5/MF/qxcuTLkdc4666zAsTfffLPncUePHtULL7ygQYMGqVWrVqpdu7ZSUlLUtm1bXXPNNXrllVdUVFQU7scsl127dumll17Sddddp1NPPVW1atVSSkqKzjjjDP3ud79Tbm6u57kfffSR/vrXv2rw4MGB79rn82nx4sXlism8ls/nU0JCglJTU9WyZUv16dNH99xzjz7//PMyX3/YsGGBa48aNcrzuIcfflg+n0/Dhg0r870qQsn3UfpnUfI5Fi5cWGn3LvlvI9SfO++8s9LuH0tK/j3o3bt3tEMBoiIx2gEAKLupU6fqySefDPre0qVL9e233570GitWrNA111yjjRs3yufzKTs7W927d1dCQoJyc3P15ptv6vXXX9f999+vb7/9VikpKRX9MVxGjx6tV155RQkJCerQoYOuvPJKHTp0SMuWLdOTTz6pqVOnatasWbr44otPOPd3v/udvvzyy0qL7dxzz9Upp5wiSTpy5Ij27NmjlStXauHChXr00Ud14YUXaurUqWrbtm2Z7/Hss8/qrrvuUrt27Soq7LiUnZ2tTp06BX2ve/fuVRsMgKggiQUs1KpVK/3000969dVXNXnyZCUnJ59wzNSpUyVJ3bp107Jly4JeZ8WKFTr//PN1+PBhXX755ZoyZYratGnjOmb37t16/PHH9eijj6qoqKjSk9gGDRpo/PjxGjFihFq0aBHYf/DgQY0cOVLTp0/Xr3/9a61fv17p6emucy+++GL98pe/VOfOndW5c2ede+652rRpU4XFdvPNN58wCur3+/Xee+/pzjvv1KJFi3TOOedoyZIlJ3yP4UhJSdHhw4d1//33a/r06RUUdXwaNGjQCTMVAKoXygkAC9WsWVM33HCD9u3bpzfffPOE9w8fPqzp06erRYsW6t+/f9BrHD16VEOGDNHhw4c1aNAgzZ49O2jilZGRob/+9a9avHhx0GS5ok2ZMkUPPvigK4GVpLp16+r5559Xamqq9u3bpzlz5pxw7qRJkzRu3DhdccUVJ5xfWXw+ny677DJ9/vnnOvXUU7Vz586QpRuhjBgxQnXr1tVrr72mFStWVHCkABBfSGIBS910002SnBFX08yZM1VQUKDf/va3qlGjRtDzX331Vf3www9KSkrS008/rYSE0P8cdOvWTbVr1y5/4OWQkpKi008/XZK0ZcuWqMZSWv369fXEE09Ikj788EMtX7484ms0btxYd999t/x+v/7whz9EfP62bds0evRotW/fXikpKUpNTVW3bt301FNP6dixYyccv3v3bk2ZMkWXXXaZ2rRpo9q1aystLU1du3bVxIkT9dNPP0UcQzCFhYWaNGmSunTpotTUVCUlJalp06bq1q2b7rvvPu3bt69C7lPaQw89FLS2vIRXTam5/+jRo5o4caLOOuss1a5dWw0bNtTVV1+tNWvWnHC93Nxc+Xw+ZWVlye/369lnn1WXLl1Up04d1atXT5dccomWLFniGe+RI0f06KOPqmfPnqpfv75q1aql008/Xffdd5/27t1bnq8CiEsksYClzjrrLHXv3l3z588/IaF7/vnnJUnDhw/3PH/27NmSpP79+6tp06aVF2gFOnr0aOBhombNmkU3mCAuvfRSNWjQQJI0b968Ml3jnnvuUePGjTV//vyIrvHRRx+pQ4cOevzxx/XTTz/p4osv1rnnnqsNGzbojjvu0MCBA3X06FHXOe+//75+//vf66uvvlLr1q01aNAgde/eXWvXrlVOTo4uuugiFRYWlulzlCguLtbAgQN13333af369Tr//PN1zTXXqGPHjtq9e7cmTZqkzZs3l+seleXo0aO67LLL9Kc//UmtWrXSwIEDVadOHc2aNUvnnHNOyIcMhw8frlGjRql+/fq6/PLL1bRpU82bN099+vTRZ599dsLx27ZtU48ePXTPPfdo3bp16tatmy677LLALwBdu3at0NIYIB6QxAIWGzFihIqLi13dDtatW6ePP/5YF1xwgU499VTPc7/44gtJP4+w2uL555/Xnj17VLt2bV166aXRDucEPp9PnTt3liR98803ZbpG3bp19cADD0iScnJy5Pf7T3rOjh07dPXVV2v//v365z//qQ0bNmj27NmaO3eu1q1bp4suukgffPCBJkyY4DqvS5cuWrJkiX788UctXLhQ//nPfzR//nxt3rw5MGo4ZcqUsGOfNm2a/H6/a2Rz8eLFWrBggc4++2z9+OOPevfdd/Xqq69q3rx5ys3N1bJly5SZmRn2ParSp59+qr1792rDhg1677339N///lfff/+9+vfvr/3795/wfZbYtGmTFi5cqNWrV2vBggWaMWOGvv32W910000qLCzUgw8+6Dre7/frV7/6lb7++muNGDFCubm5mjdvnt544w2tX79ed999t3Jzc0P+UgpURySxQBQMHz48ZIugRYsWhXWdX//610pJSQkkD5JTXlBSbuBl9+7dkn6ewrbB119/rXvvvVeSNHbsWDVp0iTKEQXXqFEjSSrX9O+tt96qtm3basWKFZoxY8ZJj3/iiSe0d+9e3X777brttttcpSENGzbUSy+9pJo1a+qpp55yJcXt27dXz549T7heenp6oOvFzJkzy/w5JGnnzp2SpPPPP1+pqaknvN+1a1c1bNgw4uuOHz8+6H87WVlZ5YrX5PP59MILL7hmKmrVqqXx48dLkubPn+957pNPPqnTTjst8LpGjRr6y1/+IklatGiRa1T8/fff1yeffKJOnTrpmWeecX1PiYmJ+tvf/qYOHTrof//7n1avXl1hnw+wHd0JgCgwWzUFM3fu3MD//ENJS0vT4MGD9fLLL2vhwoW64IIL9NJLLyk1NVVDhgypyJCj6scff9QVV1yhgwcP6sorr1ROTk60Q/JUXFws6ecEqKxq1qyphx9+WNddd50eeOABDR48WDVr1vQ8vuQht2uvvTbo+y1atNCpp56qb7/9VuvWrXMlV8ePH9fChQv16aefavv27Tpy5Ij8fn8g2V27dm2ZP4ckde7cWTVq1NDUqVN12mmn6eqrr66QUhCvFlslv0RUhFatWik7O/uE/e3bt5ckbd26Neh5iYmJGjBgwAn7mzZtqvT0dOXl5Wnv3r2B5Ljk5zd48GAlJp74v+WEhARdcMEFWr16tT799FN16NChzJ8JiCcksUAUBGvVZOrdu3dYSaz084jryy+/rKlTp+rw4cPatm2bbr755pO2wsrIyNCWLVu0a9euSEI/qTfffDNox4Sbb75Z5513XsTX27Fjh/r27atNmzapf//+eu2118qVIJYW7OfQqFEjTZ48uUzX27NnjyQFamPL6te//rUmTZqklStX6l//+lfIRRB++OEHST+Pdp7M7t27A0nsunXr9Mtf/jJk6UN+fn6Ekbu1a9dOjz/+uO69916NGjVKo0aNUuvWrdWrVy9dfvnlGjJkiJKSkiK+blW02GrVqlXQ/WlpaZLkWS/crFkzz1860tLSlJeX53poruTnN3bsWI0dOzZkTCUzKABIYgHrXXjhhWrXrp1ef/117dixQ9LJSwmkn+sht2zZ4tlDtqxWrVqlF1988YT9vXv3jjiJ3bVrly666CJ9//336tevn958880Kb/MVLNbWrVuXKYn1+/2BVdQ6duxYrrh8Pp8eeeQR9e/fX3/+859D/tJTMvp7zTXXqE6dOiGva07dX3PNNfrmm290+eWX67777tOZZ56ptLQ01axZU0VFRRX2Xd9xxx361a9+pbfeekuLFy/W4sWLNX36dE2fPl3jxo3Txx9/HJUH9Uq+Ny8n69hRUeeVxHHeeeeddJGLs846q0wxAfGIJBawXMkypGPHjtX8+fPVvn179erV66TnXXXVVXrzzTf1/vvva+fOnRVWY/rQQw9VyAjZ7t27ddFFF2nNmjXq27ev3nrrLdWqVav8AZYSzoNT4Xr33XeVl5cnSbrkkkvKfb1LLrlEffv21YIFC/Too496tkvLzMzUunXr9Ic//EFdu3YN69rfffedvvrqKzVu3FizZs06YRp73bp15Y7f1KRJE40cOVIjR44M3P+mm27SkiVLlJOTE/SXifIqGeEtKCgI+n6sPO1f8mDbVVddpXvuuSfK0QD24MEuIA4MGzZMGRkZatiwoW655Zawzrn++uuVlZWloqIi3XbbbScdlVq+fLmOHDlSEeGe1J49e3TRRRfpm2++Ud++ffX2229HvUftyRw4cEB33XWXpJ9XDvNaEjVSEydOlM/n06OPPuo5lVzSqeG1114L+7olvVmbN28etA7z//7v/8oQbfjOOOOMQC/cVatWVco9Sha8CNbTVVLQBTOioeTnN3PmzAr9pQqIdySxQBxo2bKldu3apT179uj3v/99WOfUrFlTr732mmrVqqVZs2Zp0KBB2rhx4wnH7du3T2PHjtW5555b7p6h4di3b5/69u2r1atXq1+/fjGfwJYsO9u9e3etW7dOzZo107///e8Ku36XLl00ZMgQFRQU6Lnnngt6zL333qv69evrscceCywPXNrGjRtdielpp52mGjVq6Ouvv9bChQtdx7799tt6/PHHKyT+Dz/8UO++++4JPWr9fr/eeecdST+Xb1SGiy66SAkJCXr//fddHT/8fr+mTJmi119/vVLuG6mrrrpK3bp10+eff67hw4cH/WUlLy9PzzzzTNBFK4DqinICoBrr1q2bPvroIw0ZMkRvv/223nnnHZ199tlq27atEhIStGnTJn3xxRc6fvy42rZtWyXLzt5888366quv5PP51KBBA912221Bjxs0aJAGDRrk2vfcc8+5Er3t27dLkm655ZZA26JmzZpp1qxZZYrtueeeCyR8hYWF2rNnj1asWBEY1ezdu7emTp1a4UnZX/7yF82aNUuHDx8O+n7Lli01e/ZsDR48WPfcc0+gJVOzZs104MABrVmzRhs2bFCPHj10ww03SPr54bVRo0bp73//u/r27avzzz9fzZs319q1a7VixQo98MADevjhh8sd+1dffaW77rpLaWlp6ty5s5o3b64jR45oxYoV2rRpk+rVq6c//elP5b5PMJmZmbrjjjtcn7FBgwb68ssvtXnzZuXk5OiRRx6plHtHIiEhQW+++aYGDhyoF198Uf/973+VnZ2tVq1aqaioSD/88IO+/vprHT9+XMOGDQs6cg5UR/yXAFRz3bp10/fff6+XX35Zs2fP1ooVK/TNN9/I5/OpWbNm+uUvf6nBgweftM1TRSlJCP1+f8jp8aysrBOS2B9//DHoakjffvttYLs8CeYnn3yiTz75RJICS4l27NhRXbt21bXXXltpC0eccsopGjlypP75z396HnPBBRfom2++0VNPPaU5c+Zo2bJlKiwsVOPGjdWqVSvdcMMNGjx4sOucxx9/XL/4xS/0z3/+U8uXL9eqVavUsWNHTZ8+Xddee22FJLFXXHGFDhw4oI8//ljr1q3T0qVLVbt2bWVmZionJ0e33367WrZsWe77eHn88cfVqlUrPffcc/r0009Vt25dnXvuuXrttdeUn58fE0ms9HNZx9Kl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VHYYNWqU3nnnHX300Udq2bJltMMBgCoVV0lsRkaGMjIyTnpcly5dlJycrLVr1+q8886TJB09elS5ublq3bp1ZYcZc8L93qZMmaKHH3448Hrbtm3q37+/ZsyYoR49elRmiDEn3O9M+nkEtk+fPoER/4SEuJoAKbekpCR16dJFCxYsCLS5Ky4u1oIFCzRq1KjoBhej/H6/7rjjDs2aNUsLFy5UmzZtoh0SAFS5uEpiw5WWlqZbb71V48aNU2Zmplq3bq1JkyZJkoYMGRLl6GJXq1atXK/r1q0rSWrXrh2jQB62bt2q3r17q3Xr1po8ebJ2794deI9RRsfo0aM1dOhQde3aVd27d9cTTzyhQ4cOafjw4dEOLSbdfvvtevXVVzV79mylpqYGaofr1aun2rVrRzk6AKga1TKJlX5uc5SYmKgbb7xRR44cUY8ePfThhx8qPT092qEhjsybN0/r16/X+vXrT0j0q2F3O0/XXnutdu/erQcffFA7duxQp06dNHfu3BMe9sLPnn76aUlS7969XftfeOGFk5a5AEC8qJZ9YgEAAGA3ivMAAABgHZJYAAAAWIckFgAAANYhiQUAAIB1SGIBAABgHZJYAAAAWIckFgAAANYhiQUAAIB1SGKBCrB9+3Zdd911Ou2005SQkKA777wz6HEzZ87UGWecoVq1aqljx4569913qzZQAADiBEksUAEKCwuVkZGhBx54QNnZ2UGP+fTTT/Wb3/xGI0aM0MqVKzVo0CANGjRIq1evruJoAQCwH8vOAmHYvXu3OnbsqN/97nf64x//KOnnpLR3795677331Ldv38CxvXv3VqdOnfTEE0+4rnHttdfq0KFDeueddwL7evbsqU6dOumZZ56pks8BAEC8YCQWCENGRoamTp2qhx56SF988YUKCgp04403atSoUa4ENpQlS5aoX79+rn39+/fXkiVLKiNkAADiWmK0AwBscdlll2nkyJG6/vrr1bVrV9WpU0cTJkwI+/wdO3aoSZMmrn1NmjTRjh07KjpUAADiHiOxQAQmT56sY8eOaebMmXrllVeUnJwc7ZAAAKiWSGKBCGzYsEHbtm1TcXGxcnNzIzq3adOm2rlzp2vfzp071bRp0wqMEACA6oEkFghTUVGRbrjhBl177bX685//rJtvvlm7du0K+/xevXppwYIFrn3z5s1Tr169KjpUAADiHjWxQJjuv/9+HThwQFOmTFHdunX17rvv6qabbgp0G1i1apUk6eDBg9q9e7dWrVqlpKQknXnmmZKk3//+97rwwgv16KOPauDAgZo+fbq++OILPfvss9H6SAAAWIsWW0AYFi5cqIsvvlj/+9//dN5550mScnNzlZ2drUceeUS33XabfD7fCee1bt3aVXYwc+ZMPfDAA8rNzdWpp56qv/3tb7rsssuq6mMAABA3SGIBAABgHWpiAQAAYB2SWAAAAFiHJBYAAADWIYkFAACAdUhiAQAAYB2SWAAAAFiHJBYAAADWIYkFAACAdUhiAQAAYB2SWAAAAFiHJBYAAADWIYkFAACAdf4/OAYOLYqm1oUAAAAASUVORK5CYII=", "text/plain": [ "Figure(PyObject
)" ] @@ -602,13 +5830,13 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": null, "id": "2c9052ab", "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAArEAAAL3CAYAAACd2x1cAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAABV4klEQVR4nO3deXyU1d3///dASCAhCVvYAyEgxYUGlEWEKggKIlq8LdVqFShQ9SH2tti7Basg2opbW6v1pzcKoqgVqUVlkyLeiCguLFEREEEjyB6WhDXr/P7wm+s6k8yVTJJJJmfyej4ePDyZuZaTCeCHc97XOT6/3+8XAAAAYJEGke4AAAAAUFkUsQAAALAORSwAAACsQxELAAAA61DEAgAAwDoUsQAAALAORSwAAACsQxELAAAA61DEAgAAwDoUsUAF0tLS5PP5NG/evHKPGzx4sHw+n+67776A11evXi2fz+f82rRpU7nXOffcc51jJ06c6HlcQUGBnn/+eY0ePVqdOnVSkyZNFB8fr/T0dP3sZz/Tyy+/rPz8/IBzxo0bF9AXn8+nJk2aqE2bNurbt69+/etf66233lJhYWG5fTRlZGTI5/MpLi5Ohw8fDvm8cDp48KBefPFF3XDDDTrrrLPUuHFjxcfHq0ePHvrNb36jrKwsz3PXrFmjBx98UNdee63zs/b5fFq7dm21+mRey+fzqUGDBkpMTFTHjh01ZMgQ/e53v9Mnn3xSrXt4ue+++5z7jho1yvO4l156ST6fT4MHD66RfoSq5M/O6tWrA14v+T4q+rNXHcH+TJT+NXr06Bq7f12SlZUln8+ntLS0SHcFCElMpDsA1Ddz587Vk08+GfS9jz76SFu2bKnwGhs3btTPfvYzffvtt/L5fMrIyFC/fv3UoEEDZWVl6Y033tDrr7+uP/7xj9qyZYvi4+MDzu/atasGDRokSSosLNTRo0e1efNmPfvss3r22WfVuXNnzZkzR0OHDi23H59++qk+//xzSVJ+fr5eeukl/fd//3coH0NYTZkyRS+//LIaNGig8847T1dffbVOnjypTz/9VE8++aTmzp2rRYsW6bLLLitz7m9+8xt99tlnNda3gQMHqlu3bpKk06dPKzs7W5s2bdLq1av1l7/8RZdcconmzp2r9PT0Grn/0qVLtWbNGl188cU1cv1oYf6ZKO3888+v5d4ACAVFLFBLOnXqpDNnzuiVV17RY489pri4uDLHzJ07V5LUt29fffrpp0Gvs3HjRv3kJz/RqVOnNGrUKD3xxBPq0qVLwDGHDh3S3/72N/3lL39Rfn5+mSJ20KBBQUe3PvvsM02dOlVvv/22hg8frkWLFumqq67y/J7mzJkjSerQoYP27NmjOXPmRKSIbdGihWbOnKkJEyaoQ4cOzusnTpzQpEmT9Oqrr+r666/Xjh071Lx584BzL7vsMl1zzTU6//zzdf7552vgwIH67rvvwta3iRMnaty4cQGv+f1+LV++XHfeeafee+89XXTRRVq3bl2Zn2N1xcfH69SpU/rDH/6gdevWhfXa0cbrzwSAuos4AVBLGjVqpF/+8pc6cuSI3njjjTLvnzp1Sq+++qo6dOig4cOHB71GQUGBxowZo1OnTmn06NF68803gxY+KSkpevDBB7V27dqgxbKXjIwMLVu2TNddd52Kioo0duxY5ebmBj321KlT+uc//ylJmj9/vpo2baovvvjCs/iuSU888YSmT58eUMBKUtOmTTVnzhwlJibqyJEjWrp0aZlzH330Uc2YMUNXXXVVmfNris/n08iRI/XJJ5/orLPO0oEDB8qNjlTVNddco9TUVH300UdatGhR2K8PAJFEEQvUol/96leS3BFX08KFC3X8+HHdfPPNatiwYdDzX3nlFX3zzTeKjY3V008/rQYNyv8j3LdvXzVp0qRSffT5fHrqqafUpEkTHT16VM8++2zQ4xYuXKjc3Fydd955GjJkiK677jpJ7uhsXREfH68f/ehHkqTdu3dHuDeBmjVrpscff1yS9O6772rDhg1hvX7jxo11//33S5LuvvtuFRUVVer8o0ePasaMGerVq5cSExMVHx+vnj176k9/+pNOnTpV5vjjx4/r2Wef1X/913/prLPOUkJCghISEtSzZ0/98Y9/1LFjx8Lxbam4uFizZ8/WwIED1axZMzVq1EitW7dWRkaG7rjjjnIz0NUxb948+Xy+MiPrJbwypebrfr9fs2fP1gUXXKCEhAQlJyfr8ssv9xwpL8nlStLrr7+uQYMGKSkpSQkJCRo4cKCWLVvm2d/CwkI999xzGjx4sFq0aKG4uDh16dJFt912W537swBUBUUsUIvOPfdc9evXT++8806Z/4mUFH/jx4/3PP/NN9+UJA0fPlxt27atsX62bNlSI0aMkCStXLky6DEl/S0pzEv+++qrr+r06dM11rfKKigocIqadu3aRbYzQVxxxRVq0aKFJO/PujpuvvlmnXfeedq2bVvQfzx52bJlizIyMnT//ffr4MGDGjRokIYNG6ZDhw7p3nvv1cCBA5WTkxNwzmeffaZf//rXWrt2rdq2baurrrpKgwYN0r59+/Tggw+qb9++YXn4b+LEibrlllu0ceNG9e3bV2PGjNH555+v06dP6x//+IcyMzOrfY+aMn78eE2ePFnNmjXTqFGj1LZtW61cuVJDhgzRxx9/7HnejBkzNGbMGEnSyJEjddZZZ+nDDz/UqFGjgo6yHz9+XJdddpkmTZqkDRs26Mc//rGuvvpqxcXF6ZlnnlHv3r0rfMgUqOsoYoFaNmHCBBUXFwfk777++mu9//77uvjii3XWWWd5nrt+/XpJP4yw1rQLLrhAkvTll1+WeW/79u16//33nYiEJF100UXq0aOHcnJy9K9//avG+xeqOXPmKDs7W02aNNEVV1wR6e6U4fP5nAeHgn3W1dWgQQM9+OCDkqSZM2eG9A+M06dP6+qrr9bu3bt1zz33KCsrS8uXL9dbb72lb775Rr/4xS+UmZmp3/72twHnpaWl6Z133tH+/fv1/vvv69VXX9WKFSu0a9cu3XzzzdqxY4emT58ect/vu+8++f3+gJHPXbt26fnnn1fHjh317bffauXKlXrllVf09ttva/v27dqyZUudfRDru+++0+rVq7V582atWrVKCxYs0JYtW/SrX/1KeXl55X42TzzxhNatW6e1a9fq1VdfVWZmpmbMmCG/36+pU6eWOf7WW2/V6tWrNWrUKO3cuVOrV6/WwoULtW3bNv3tb3/T4cOHndgQYCuKWCBE48ePL3cZnvfeey+k61x//fWKj4/XvHnz5Pf7JbnxgpLRTC+HDh2SJLVu3boa30loWrVqJUlBR85K+nv11VcrJSXFeb2k/3UlUvDFF1/of/7nfyRJ9957r9q0aRPhHgVX3mcdDldddZV+8pOfaM+ePfr73/9e4fEvvPCCdu7cqVGjRumBBx5QbGys8158fLxmz56t1q1ba/78+Tp69KjzXseOHTV06NAyMZf4+Hg9/fTTiomJ0cKFC6v1vRw4cEDSDysGBJuNOPvss9WpU6dKX/eFF17w/LMdTk8++aS6d+/ufN2wYUP9+c9/liS99957KigoCHre/fffr/79+we8Nm3aNCUnJ2v79u0BMztbt27VP//5T7Vv316vvPJKmb8v7rzzTo0cOVJff/21li9fHq5vDah1rE4AhMhcKimYt99+2/kfbHmSkpJ07bXXav78+Vq9erUuvvhivfjii0pMTHSmC+uC4uJiSSrzP/HCwkK98MILksoW3TfffLPuvvturVmzRjt37lTXrl1rp7NBfP/997rqqqt04sQJXX311UFHq+oKr886nB5++GFddNFFevjhh/XrX//aiTAEU/IAXEnOubSmTZuqT58+WrZsmT799FNdfvnlAe9/+OGHev/997Vr1y6dOnXK+cdabGysDh06pKNHj5ZZJSJUPXr0UGJiopYtW6Y///nPuuGGG8KyqkN5S2yFS0xMjBPTMbVt21bNmzfX0aNHdfjw4aDFebBVQuLi4pSenq5NmzZpz549Sk1NlSQtW7ZMfr9fV1xxhRITE4P2ZfDgwVq2bJkTSQBsRBELhCjYUkmmwYMHh1TESj8Uf/Pnz9fcuXN16tQp7d27VxMnTiyzFFZpKSkp2r17tw4ePFiZrldJdna2JJUpdpYuXar9+/cHXUWhTZs2GjlypN566y3NnTvXGWGqyBtvvBF0xYaJEydWqbDYv3+/hg4dqu+++07Dhw/Xa6+9FtYCMdjvg1atWumxxx6r0vW8PutwGjBggEaPHq033nhDDz74YLl9/eabbyRJN910k2666aZyr1syOyD9sOnEtddeW+FGEbm5uVUuYhMTE/X8889r/Pjxuueee3TPPfeoXbt2uvDCCzVixAjdcMMNatq0aaWvWxtLbLVr106NGjUK+l5SUpKOHj2qM2fOBH3fa3Q5KSlJkgLOK/n5zZkzp8JZEfPnB9iGIhaIgEsuuURdu3bV66+/rv3790uqOEog/ZBT3b17d60sY7Vx40ZJUs+ePQNeL/mf4pkzZ3TJJZeUOW/Pnj2SfniS+/777/dcacGUmZnpjO6aBg8eXOki9uDBg7r00ku1fft2DRs2TG+88UallhkLRbC+du7cuUpFrN/vdx6wKf1Zh9uDDz6oxYsX66mnnip3Pd+SkeERI0ZUGMHo3Lmz0544caLWrl2rAQMGaObMmcrIyFDz5s2dwq19+/bat2+fMzJbVddee62GDRumt956S++//74++OADLVq0SIsWLdL06dO1cuXKGv8sgyn53LxUtJpIuM4t6UevXr2UkZFR7rGlIwqATShigQgoWabn3nvv1TvvvKOzzz5bAwYMqPC8n/70p3rjjTe0YsUKHThwoMYyntnZ2VqxYoUkBUwV79u3z1nS5/Dhw/rggw88r7F37169/fbbuvLKKyu833333Vdmu96qOHTokC699FJt3bpVQ4cO1VtvvaXGjRtX+7qlVbcIMy1btszJlZaelg+3s88+W+PGjdOcOXM0ffp0zx3ZUlNTtW3bNk2YMEE/+9nPQrr2yZMntWzZMjVo0EDLli1Ts2bNyrxf8g+2cEhOTg4YKd69e7fuuOMOvfnmm5o8eXLIGfXKKMkGHz9+POj74dwkozpKYgUDBw7UP/7xjwj3Bqg5PNgFRMi4ceOUkpKili1b6pZbbgnpnBtvvFFpaWnKz8/XbbfdVuHIz4YNGyq93JXf79fkyZN1+vRptWjRQhMmTHDemzdvnoqKitS/f3/5/X7PX7///e8l1e4DXtnZ2br00kv15ZdfaujQoVq8eHGl18itbTk5Oc4T/pdddpl69epV4/ecOXOmmjRpohdffNFzNYSSVRxee+21kK+bk5OjoqIiJSUllSlgJemll14Ka/FfWmpqqmbOnClJNbbEVslmGNu2bQv6frDNNCKh5Of31ltvecYTgGhAEQtESMeOHXXw4EFlZ2eHvFVro0aN9Nprr6lx48ZatGiRRo8erW+//bbMcUeOHHHW8szLywu5T59//rlGjhypBQsWqGHDhnrppZcCHgwpWZVg7Nix5V7n5ptvliQtWbKkVjJ3R44c0dChQ7V582YNGzaszhewJdvO9uvXT19//bXatWvnualEuHXo0EF33HGHiouL9cQTTwQ95te//rU6d+6shQsX6g9/+EPQkcf9+/cH9LlNmzZq3ry5jh07pvnz5wcc+9FHH2natGlh6f+mTZu0YMGCoP84W7x4saTAiEM49evXT0lJSdqyZUuZ73HhwoWen2dt6927t6699lrt3r1b//Vf/xV084eTJ0/q5ZdfDjnHD9RFxAkAy/Tt21dr1qzRmDFjtHjxYi1ZskS9e/dWenq6GjRooO+++07r169XUVGR0tPTg+ZB165d6zycVFhYqGPHjmnz5s3OdGiXLl00Z84cDRkyxDnnvffe044dOxQXF6frr7++3D6ee+65Ov/887Vx40a9+OKLuuuuu8L3AQQxceJEff755/L5fGrRooVuu+22oMeNHj1ao0ePDnjtueee03PPPed8vW/fPknSLbfc4hTw7dq1q/K2rc8995xWr14tScrLy1N2drY2btyoI0eOSPoh9zt37twaK7yCmTZtmp599tmA5bFMCQkJWrp0qUaNGqVHHnlEs2fP1o9//GN17NhRp06d0vbt27V161a1bt1akyZNkvTDUlHTp0/Xb3/7W91888166qmnlJ6erl27dunDDz/UL3/5S61Zs6baU+7fffedrr/+ejVp0kTnn3++UlNTVVhYqC+++EJfffWVYmNj9cgjj1TrHl6aNGmimTNnOt/j008/rQ4dOmjr1q3asmWL7rnnHj3wwAM1cu/Kev7553Xs2DEtX75cP/rRj5SRkaEuXbrI7/crKytLn332mfLz87V169Y6u/QcUBGKWMBCffv21fbt2zV//ny9+eab2rhxo7788kv5fD61a9dO11xzja699lpde+21QZ+G3rlzp3bu3Cnph2V6kpOTlZqaqssvv1yjRo3SyJEjFRMT+NdDSTTgqquuCunJ8ptvvlkbN27UnDlzaryILSkI/X5/uVPgaWlpZYrY77//PuhOSVu2bHHa1SkwP/jgAyc7XLLNaM+ePdWnTx9dd911tbJxRWnNmjXTtGnTnNhHMOeee64+//xzPfPMM1q0aJE+//xzrVu3Tq1atVLHjh31u9/9Ttdcc03AOXfeeae6dOmiRx55RFu2bNGXX36pHj166KmnntKtt94alqWwLrzwQj300ENas2aNtm7dqk2bNikmJkYdO3bU7bffrjvuuMPZZrgm3HnnnWrRooX+/ve/a9OmTfryyy/Vp08fPf744+rWrVudKWITExP1n//8RwsWLNBLL72kDRs2KDMzU0lJSWrXrp1uvPFGXX311RFdBg+oLp+/JkNKAAAAQA0gEwsAAADrUMQCAADAOhSxAAAAsA5FLAAAAKxDEQsAAADrUMQCAADAOhSxAAAAsA5FLAAAAKxDEQsAAADrUMQCAADAOhSxAAAAsA5FLAAAAKxDEQsAAADrUMQCAADAOhSxAAAAsA5FLAAAAKxDEQsAAADrUMQCAADAOhSxAAAAsA5FLAAAAKxDEQsAAADrUMQCAADAOhSxAAAAsA5FLAAAAKxDEQsAAADrUMQCAADAOhSxAAAAsA5FLAAAAKxDEQsAAADrUMQC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/RHqlT2Ki4t15513auDAgTrvvPMi3R0AqDVRVcROnTpVPp+v3F8lGUVJ+uMf/6hrr71WF1xwgZ5//nn5fD4tXLgwwt9F7Qv1c3vyySd1/PhxTZs2LdJdjrhQPzPTnj17NGLECI0ZM0aTJk2KUM8RbW6//XZt3rxZr776aqS7AgC1KibSHQinu+66S+PGjSv3mPT0dO3bt0+SdM455zivx8XFKT09Xbt27arJLtZJoX5u7777rtatW1dmj/Y+ffroxhtv1AsvvFCDvaxbQv3MSuzdu1dDhgzRRRddpNmzZ9dw7+zSqlUrNWzYUAcOHAh4/cCBA2rbtm2EemWHyZMna8mSJVqzZo06duwY6e4AQK2KqiI2JSVFKSkpFR53wQUXKC4uTl999ZUGDRokSSooKFBWVpY6d+5c092sc0L93J544gn96U9/cr7eu3evhg8frgULFqh///412cU6J9TPTPphBHbIkCHOiH+DBlE1AVJtsbGxuuCCC7Rq1Spnmbvi4mKtWrVKkydPjmzn6ii/36877rhDixYt0urVq9WlS5dIdwkAal1UFbGhSkpK0q233qoZM2YoNTVVnTt31qOPPipJGjNmTIR7V3d16tQp4OumTZtKkrp27cookIc9e/Zo8ODB6ty5sx577DEdOnTIeY9RRteUKVM0duxY9enTR/369dPjjz+ukydPavz48ZHuWp10++2365VXXtGbb76pxMREJzucnJysJk2aRLh3AFA76mURK/2wzFFMTIxuuukmnT59Wv3799e7776r5s2bR7priCIrV67Ujh07tGPHjjKFfj1c3c7Tddddp0OHDmn69Onav3+/evXqpbfffrvMw174wdNPPy1JGjx4cMDrzz//fIUxFwCIFvVynVgAAADYjXAeAAAArEMRCwAAAOtQxAIAAMA6FLEAAACwDkUsAAAArEMRCwAAAOtQxAIAAMA6FLEAAACwDkUsEAb79u3TDTfcoO7du6tBgwa68847gx63cOFC9ejRQ40bN1bPnj21bNmy2u0oAABRgiIWCIO8vDylpKTonnvuUUZGRtBjPvzwQ/3iF7/QhAkTtGnTJo0ePVqjR4/W5s2ba7m3AADYj21ngRAcOnRIPXv21G9+8xvdfffdkn4oSgcPHqzly5dr6NChzrGDBw9Wr1699Pjjjwdc47rrrtPJkye1ZMkS57ULL7xQvXr10jPPPFMr3wcAANGCkVggBCkpKZo7d67uu+8+rV+/XsePH9dNN92kyZMnBxSw5Vm3bp2GDRsW8Nrw4cO1bt26mugyAABRLSbSHQBsMXLkSE2aNEk33nij+vTpo4SEBM2aNSvk8/fv3682bdoEvNamTRvt378/3F0FACDqMRILVMJjjz2mwsJCLVy4UC+//LLi4uIi3SUAAOoliligEnbu3Km9e/equLhYWVlZlTq3bdu2OnDgQMBrBw4cUNu2bcPYQwAA6geKWCBE+fn5+uUvf6nrrrtODzzwgCZOnKiDBw+GfP6AAQO0atWqgNdWrlypAQMGhLurAABEPTKxQIj++Mc/KicnR0888YSaNm2qZcuW6Ve/+pWz2kBmZqYk6cSJEzp06JAyMzMVGxurc845R5L03//937rkkkv0l7/8RVdeeaVeffVVrV+/XrNnz47UtwQAgLVYYgsIwerVq3XZZZfp//7v/zRo0CBJUlZWljIyMvTQQw/ptttuk8/nK3Ne586dA2IHCxcu1D333KOsrCydddZZeuSRRzRy5Mja+jYAAIgaFLEAAACwDplYAAAAWIciFgAAANahiAUAAIB1KGIBAABgHYpYAAAAWIciFgAAANahiAUAAIB1KGIBAABgHYpYAAAAWIciFgAAANahiAUAAIB1KGIBAABgnf8f6hkeda8xhwEAAAAASUVORK5CYII=", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAArEAAAL3CAYAAACd2x1cAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAABVbklEQVR4nO3deXiU1f3//9ckkECAhC3sgYDgCiUqiwhVKCiKaLFIbd0ABZdLbC360eAColZErbVaf1oVxLUitYhsImIBUVwQoiIggoR9CVvCmpBkfn/4zdxnhrnDDJnJ5Eyej+vi8uSec9/3mQmJb8553+/j8Xq9XgEAAAAWSYj1AAAAAIBwEcQCAADAOgSxAAAAsA5BLAAAAKxDEAsAAADrEMQCAADAOgSxAAAAsA5BLAAAAKxDEAsAAADrEMQCJ5CZmSmPx6MpU6aU2693797yeDx66KGH/I4vXLhQHo/H92fFihXlXuess87y9R0xYoRrv2PHjunVV1/VoEGD1Lp1a9WuXVspKSlq166drrrqKr311lsqKiryO2fYsGF+Y/F4PKpdu7aaNm2qrl276uabb9YHH3yg4uLicsdo6ty5szwej5KTk7Vnz56Qz4ukXbt26fXXX9c111yjDh06qFatWkpJSdHpp5+uP/3pT8rNzXU9d/HixXrsscc0ePBg3/fa4/FoyZIlFRqTeS2Px6OEhATVq1dPrVq1Up8+fXT33Xfrq6++qtA93Dz00EO++w4cONC135tvvimPx6PevXtHZRyhKvvZWbhwod/xsvdxop+9igj2MxH4Z9CgQVG7f1WSm5srj8ejzMzMWA8FCEmNWA8AqG4mT56s5557LuhrX3zxhVatWnXCayxfvlxXXXWVNmzYII/Ho86dO6tbt25KSEhQbm6u3n//fb333nu6//77tWrVKqWkpPidf8opp6hXr16SpOLiYu3bt08rV67Uyy+/rJdffllt2rTRpEmT1Ldv33LH8fXXX+u7776TJBUVFenNN9/Un//851A+hogaPXq03nrrLSUkJKhjx4664oordOjQIX399dd67rnnNHnyZE2fPl0XXXTRcef+6U9/0rfffhu1sfXs2VPt27eXJB05ckS7d+/WihUrtHDhQv3tb3/ThRdeqMmTJ6tdu3ZRuf/s2bO1ePFiXXDBBVG5frwwfyYCnXPOOZU8GgChIIgFKknr1q119OhRvf3223rqqaeUnJx8XJ/JkydLkrp27aqvv/466HWWL1+uX//61zp8+LAGDhyoZ599Vm3btvXrk5eXp7///e/629/+pqKiouOC2F69egWd3fr222+VnZ2tDz/8UP3799f06dN1+eWXu76nSZMmSZJatmyprVu3atKkSTEJYhs2bKjx48frpptuUsuWLX3HDx48qJEjR+qdd97RH/7wB61bt04NGjTwO/eiiy7SlVdeqXPOOUfnnHOOevbsqY0bN0ZsbCNGjNCwYcP8jnm9Xs2dO1d33nmnFi1apPPPP19Lly497vtYUSkpKTp8+LDuvfdeLV26NKLXjjduPxMAqi7SCYBKUrNmTV133XXau3ev3n///eNeP3z4sN555x21bNlS/fv3D3qNY8eOaciQITp8+LAGDRqkGTNmBA180tPT9dhjj2nJkiVBg2U3nTt31pw5c3T11VerpKREQ4cOVUFBQdC+hw8f1r///W9J0htvvKG6devq+++/dw2+o+nZZ5/V2LFj/QJYSapbt64mTZqkevXqae/evZo9e/Zx5z755JMaN26cLr/88uPOjxaPx6MBAwboq6++UocOHbRz585yU0dO1pVXXqmMjAx98cUXmj59esSvDwCxRBALVKIbb7xRkjPjapo2bZoOHDigG264QYmJiUHPf/vtt/Xzzz8rKSlJL7zwghISyv8R7tq1q2rXrh3WGD0ej55//nnVrl1b+/bt08svvxy037Rp01RQUKCOHTuqT58+uvrqqyU5s7NVRUpKik477TRJ0ubNm2M8Gn/169fXM888I0n65JNP9M0330T0+rVq1dLDDz8sSbrvvvtUUlIS1vn79u3TuHHjlJWVpXr16iklJUWdOnXSo48+qsOHDx/X/8CBA3r55Zf1u9/9Th06dFCdOnVUp04dderUSffff7/2798fibel0tJSvfTSS+rZs6fq16+vmjVrqkmTJurcubPuuOOOcnOgK2LKlCnyeDzHzayXccspNY97vV699NJLOvfcc1WnTh2lpaXp4osvdp0pL8vLlaT33ntPvXr1UmpqqurUqaOePXtqzpw5ruMtLi7WK6+8ot69e6thw4ZKTk5W27Ztddttt1W5nwXgZBDEApXorLPOUrdu3fTxxx8f9z+RsuBv+PDhrufPmDFDktS/f381a9YsauNs1KiRLrnkEknS/Pnzg/YpG29ZYF7233feeUdHjhyJ2tjCdezYMV9Q07x589gOJohLL71UDRs2lOT+WVfEDTfcoI4dO2rNmjVB//HkZtWqVercubMefvhh7dq1S7169VK/fv2Ul5enBx98UD179lR+fr7fOd9++61uvvlmLVmyRM2aNdPll1+uXr16afv27XrsscfUtWvXiDz8N2LECN1yyy1avny5unbtqiFDhuicc87RkSNH9M9//lM5OTkVvke0DB8+XKNGjVL9+vU1cOBANWvWTPPnz1efPn305Zdfup43btw4DRkyRJI0YMAAdejQQZ9//rkGDhwYdJb9wIEDuuiiizRy5Eh98803+tWvfqUrrrhCycnJevHFF3X22Wef8CFToKojiAUq2U033aTS0lK//LuffvpJn376qS644AJ16NDB9dxly5ZJ+mWGNdrOPfdcSdIPP/xw3Gtr167Vp59+6kuRkKTzzz9fp59+uvLz8/Wf//wn6uML1aRJk7R7927Vrl1bl156aayHcxyPx+N7cCjYZ11RCQkJeuyxxyRJ48ePD+kfGEeOHNEVV1yhzZs364EHHlBubq7mzp2rDz74QD///LP++Mc/KicnR3/5y1/8zsvMzNTHH3+sHTt26NNPP9U777yjefPmadOmTbrhhhu0bt06jR07NuSxP/TQQ/J6vX4zn5s2bdKrr76qVq1aacOGDZo/f77efvttffjhh1q7dq1WrVpVZR/E2rhxoxYuXKiVK1dqwYIFmjp1qlatWqUbb7xRhYWF5X42zz77rJYuXaolS5bonXfeUU5OjsaNGyev16vs7Ozj+t96661auHChBg4cqPXr12vhwoWaNm2a1qxZo7///e/as2ePL20IsBVBLBCi4cOHl1uGZ9GiRSFd5w9/+INSUlI0ZcoUeb1eSU56Qdlsppu8vDxJUpMmTSrwTkLTuHFjSQo6c1Y23iuuuELp6em+42XjryopBd9//73+7//+T5L04IMPqmnTpjEeUXDlfdaRcPnll+vXv/61tm7dqn/84x8n7P/aa69p/fr1GjhwoB555BElJSX5XktJSdFLL72kJk2a6I033tC+fft8r7Vq1Up9+/Y9Ls0lJSVFL7zwgmrUqKFp06ZV6L3s3LlT0i8VA4KtRpxxxhlq3bp12Nd97bXXXH+2I+m5557Tqaee6vs6MTFRf/3rXyVJixYt0rFjx4Ke9/DDD6t79+5+x8aMGaO0tDStXbvWb2Vn9erV+ve//60WLVro7bffPu73xZ133qkBAwbop59+0ty5cyP11oBKR3UCIERmqaRgPvzwQ9//YMuTmpqqwYMH64033tDChQt1wQUX6PXXX1e9evV8y4VVQWlpqSQd9z/x4uJivfbaa5KOD7pvuOEG3XfffVq8eLHWr1+vU045pXIGG8SWLVt0+eWX6+DBg7riiiuCzlZVFW6fdSRNnDhR559/viZOnKibb77Zl8IQTNkDcGV5zoHq1q2rLl26aM6cOfr666918cUX+73++eef69NPP9WmTZt0+PBh3z/WkpKSlJeXp3379h1XJSJUp59+uurVq6c5c+bor3/9q6655pqIVHUor8RWpNSoUcOXpmNq1qyZGjRooH379mnPnj1Bg/NgVUKSk5PVrl07rVixQlu3blVGRoYkac6cOfJ6vbr00ktVr169oGPp3bu35syZ40tJAGxEEAuEKFipJFPv3r1DCmKlX4K/N954Q5MnT9bhw4e1bds2jRgx4rhSWIHS09O1efNm7dq1K5yhn5Tdu3dL0nHBzuzZs7Vjx46gVRSaNm2qAQMG6IMPPtDkyZN9M0wn8v777wet2DBixIiTCix27Nihvn37auPGjerfv7/efffdiAaIwf4eNG7cWE899dRJXc/ts46kHj16aNCgQXr//ff12GOPlTvWn3/+WZJ0/fXX6/rrry/3umWrA9Ivm04MHjz4hBtFFBQUnHQQW69ePb366qsaPny4HnjgAT3wwANq3ry5zjvvPF1yySW65pprVLdu3bCvWxkltpo3b66aNWsGfS01NVX79u3T0aNHg77uNrucmpoqSX7nlX3/Jk2adMJVEfP7B9iGIBaIgQsvvFCnnHKK3nvvPe3YsUPSiVMJpF/yVDdv3lwpZayWL18uSerUqZPf8bL/KR49elQXXnjhcedt3bpV0i9Pcj/88MOulRZMOTk5vtldU+/evcMOYnft2qXf/OY3Wrt2rfr166f3338/rDJjoQg21jZt2pxUEOv1en0P2AR+1pH22GOPaebMmXr++efLredbNjN8ySWXnDAFo02bNr72iBEjtGTJEvXo0UPjx49X586d1aBBA1/g1qJFC23fvt03M3uyBg8erH79+umDDz7Qp59+qs8++0zTp0/X9OnTNXbsWM2fPz/qn2UwZZ+bmxNVE4nUuWXjyMrKUufOncvtG5iiANiEIBaIgbIyPQ8++KA+/vhjnXHGGerRo8cJz/vtb3+r999/X/PmzdPOnTujluO5e/duzZs3T5L8loq3b9/uK+mzZ88effbZZ67X2LZtmz788ENddtllJ7zfQw89dNx2vScjLy9Pv/nNb7R69Wr17dtXH3zwgWrVqlXh6waqaBBmmjNnji+vNHBZPtLOOOMMDRs2TJMmTdLYsWNdd2TLyMjQmjVrdNNNN+mqq64K6dqHDh3SnDlzlJCQoDlz5qh+/frHvV72D7ZISEtL85sp3rx5s+644w7NmDFDo0aNCjlHPRxlucEHDhwI+nokN8moiLK0gp49e+qf//xnjEcDRA8PdgExMmzYMKWnp6tRo0a65ZZbQjrn2muvVWZmpoqKinTbbbedcObnm2++Cbvcldfr1ahRo3TkyBE1bNhQN910k++1KVOmqKSkRN27d5fX63X9c88990iq3Ae8du/erd/85jf64Ycf1LdvX82cOTPsGrmVLT8/3/eE/0UXXaSsrKyo33P8+PGqXbu2Xn/9dddqCGVVHN59992Qr5ufn6+SkhKlpqYeF8BK0ptvvhnR4D9QRkaGxo8fL0lRK7FVthnGmjVrgr4ebDONWCj7/n3wwQeu6QlAPCCIBWKkVatW2rVrl3bv3h3yVq01a9bUu+++q1q1amn69OkaNGiQNmzYcFy/vXv3+mp5FhYWhjym7777TgMGDNDUqVOVmJioN9980+/BkLKqBEOHDi33OjfccIMkadasWZWSc7d371717dtXK1euVL9+/ap8AFu27Wy3bt30008/qXnz5q6bSkRay5Ytdccdd6i0tFTPPvts0D4333yz2rRpo2nTpunee+8NOvO4Y8cOvzE3bdpUDRo00P79+/XGG2/49f3iiy80ZsyYiIx/xYoVmjp1atB/nM2cOVOSf4pDJHXr1k2pqalatWrVce9x2rRprp9nZTv77LM1ePBgbd68Wb/73e+Cbv5w6NAhvfXWWyHn8QNVEekEgGW6du2qxYsXa8iQIZo5c6ZmzZqls88+W+3atVNCQoI2btyoZcuWqaSkRO3atQuaD7pkyRLfw0nFxcXav3+/Vq5c6VsObdu2rSZNmqQ+ffr4zlm0aJHWrVun5ORk/eEPfyh3jGeddZbOOeccLV++XK+//rruuuuuyH0AQYwYMULfffedPB6PGjZsqNtuuy1ov0GDBmnQoEF+x1555RW98sorvq+3b98uSbrlllt8AXzz5s1PetvWV155RQsXLpQkFRYWavfu3Vq+fLn27t0r6Ze838mTJ0ct8ApmzJgxevnll/3KY5nq1Kmj2bNna+DAgXriiSf00ksv6Ve/+pVatWqlw4cPa+3atVq9erWaNGmikSNHSvqlVNTYsWP1l7/8RTfccIOef/55tWvXTps2bdLnn3+u6667TosXL67wkvvGjRv1hz/8QbVr19Y555yjjIwMFRcX6/vvv9ePP/6opKQkPfHEExW6h5vatWtr/Pjxvvf4wgsvqGXLllq9erVWrVqlBx54QI888khU7h2uV199Vfv379fcuXN12mmnqXPnzmrbtq28Xq9yc3P17bffqqioSKtXr66ypeeAEyGIBSzUtWtXrV27Vm+88YZmzJih5cuX64cffpDH41Hz5s115ZVXavDgwRo8eHDQp6HXr1+v9evXS/qlTE9aWpoyMjJ08cUXa+DAgRowYIBq1PD/9VCWGnD55ZeH9GT5DTfcoOXLl2vSpElRD2LLAkKv11vuEnhmZuZxQeyWLVuC7pS0atUqX7siAeZnn33myx0u22a0U6dO6tKli66++upK2bgiUP369TVmzBhf2kcwZ511lr777ju9+OKLmj59ur777jstXbpUjRs3VqtWrXT33Xfryiuv9DvnzjvvVNu2bfXEE09o1apV+uGHH3T66afr+eef16233hqRUljnnXeeHn/8cS1evFirV6/WihUrVKNGDbVq1Uq333677rjjDt82w9Fw5513qmHDhvrHP/6hFStW6IcfflCXLl30zDPPqH379lUmiK1Xr54++ugjTZ06VW+++aa++eYb5eTkKDU1Vc2bN9e1116rK664IqZl8ICK8nijmaQEAAAARAE5sQAAALAOQSwAAACsQxALAAAA6xDEAgAAwDoEsQAAALAOQSwAAACsQxALAAAA6xDEAgAAwDoEsQAAALAOQSwAAACsQxALAAAA6xDEAgAAwDoEsQAAALAOQSwAAACsQxALAAAA6xDEAgAAwDoEsQAAALAOQSwAAACsQxALAAAA6xDEAgAAwDoEsQAAALAOQSwAAACsQxALAAAA6xDEAgAAwDoEsQAAALAOQSwAAACsQxALAAAA6xDEAgAAwDoEsQAAALAOQSwA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8rRnz55y+7Rr106///3vNXPmTHk8Ht/xkpISJSYm6tprr9Vrr70W0v0KCgqUlpam/Px8/icZIj6zk8PnFj4+s5PD5waguoppOkF6errS09NP2O/ZZ5/Vo48+6vt627Zt6t+/v6ZOnaru3btHc4gAAACogqzIiW3durXf13Xr1pUknXLKKWrVqlUshgQAAIAYsqrEVkUlJydr3LhxSk5OjvVQrMFndnL43MLHZ3Zy+NwAVFcxzYkFAAAATka1mokFAABAfCCIBQAAgHUIYgEAAGAdglgAAABYp1oHsbNnz1b37t1Vu3ZtNWjQQIMGDYr1kKxRWFiorKwseTwe5eTkxHo4VVZubq5uuukmtW3bVrVr19Ypp5yicePGqaioKNZDq3Kef/55ZWZmqlatWurevbu++uqrWA+pypowYYK6du2qevXqqUmTJho0aJB+/PHHWA8LACpVtQ1i33vvPV1//fUaPny4vv32W3322We65pprYj0sa9xzzz1q0aJFrIdR5a1Zs0alpaX617/+pR9++EF///vf9eKLL+q+++6L9dCqlKlTp2r06NEaN26cli9frs6dO6t///7atWtXrIdWJS1atEi33367vvjiC82fP1/Hjh3TxRdfrEOHDsV6aABQaaplia3i4mJlZmZq/Pjxuummm2I9HOvMnTtXo0eP1nvvvaezzjpLK1asUFZWVqyHZY0nn3xSL7zwgn7++edYD6XK6N69u7p27ap//vOfkqTS0lJlZGTojjvuUHZ2doxHV/Xl5eWpSZMmWrRokS644IJYDwcAKkW1nIldvny5tm7dqoSEBJ199tlq3ry5Lr30Uq1cuTLWQ6vydu7cqZEjR+qNN95QSkpKrIdjpfz8fDVs2DDWw6gyioqK9M0336hfv36+YwkJCerXr5+WLl0aw5HZIz8/X5L4ewWgWqmWQWzZDNhDDz2kBx54QLNmzVKDBg3Uu3dv7d27N8ajq7q8Xq+GDRumW2+9VV26dIn1cKy0bt06Pffcc7rllltiPZQqY/fu3SopKVHTpk39jjdt2lQ7duyI0ajsUVpaqjvvvFM9e/ZUx44dYz0cAKg0cRXEZmdny+PxlPunLEdRku6//34NHjxY5557rl599VV5PB5NmzYtxu+i8oX6uT333HM6cOCAxowZE+shx1yon5lp69atuuSSSzRkyBCNHDkyRiNHvLn99tu1cuVKvfPOO7EeCgBUqhqxHkAk3XXXXRo2bFi5fdq1a6ft27dLks4880zf8eTkZLVr106bNm2K5hCrpFA/t08++URLly49bo/2Ll266Nprr9Vrr70WxVFWLaF+ZmW2bdumPn366Pzzz9dLL70U5dHZpXHjxkpMTNTOnTv9ju/cuVPNmjWL0ajsMGrUKM2aNUuLFy9Wq1atYj0cAKhUcRXEpqenKz09/YT9zj33XCUnJ+vHH39Ur169JEnHjh1Tbm6u2rRpE+1hVjmhfm7PPvusHn30Ud/X27ZtU//+/TV16lR17949mkOsckL9zKRfZmD79Onjm/FPSIirBZAKS0pK0rnnnqsFCxb4ytyVlpZqwYIFGjVqVGwHV0V5vV7dcccdmj59uhYuXKi2bdvGekgAUOniKogNVWpqqm699VaNGzdOGRkZatOmjZ588klJ0pAhQ2I8uqqrdevWfl/XrVtXknTKKacwC+Ri69at6t27t9q0aaOnnnpKeXl5vteYZXSMHj1aQ4cOVZcuXdStWzc988wzOnTokIYPHx7roVVJt99+u95++23NmDFD9erV8+UOp6WlqXbt2jEeHQBUjmoZxEq/lDmqUaOGrr/+eh05ckTdu3fXJ598ogYNGsR6aIgj8+fP17p167Ru3brjAv1qWN3O1dVXX628vDyNHTtWO3bsUFZWlj788MPjHvbCL1544QVJUu/evf2Ov/rqqydMcwGAeFEt68QCAADAbiTnAQAAwDoEsQAAALAOQSwAAACsQxALAAAA6xDEAgAAwDoEsQAAALAOQSwAAACsQxALAAAA6xDEAhGwfft2XXPNNTr11FOVkJCgO++8M2i/adOm6fTTT1etWrXUqVMnzZkzp3IHCgBAnCCIBSKgsLBQ6enpeuCBB9S5c+egfT7//HP98Y9/1E033aQVK1Zo0KBBGjRokFauXFnJowUAwH5sOwuEIC8vT506ddKf/vQn3XfffZJ+CUp79+6tuXPnqm/fvr6+vXv3VlZWlp555hm/a1x99dU6dOiQZs2a5Tt23nnnKSsrSy+++GKlvA8AAOIFM7FACNLT0zV58mQ99NBDWrZsmQ4cOKDrr79eo0aN8gtgy7N06VL169fP71j//v21dOnSaAwZAIC4ViPWAwBsMWDAAI0cOVLXXnutunTpojp16mjChAkhn79jxw41bdrU71jTpk21Y8eOSA8VAIC4x0wsEIannnpKxcXFmjZtmt566y0lJyfHekgAAFRLBLFAGNavX69t27aptLRUubm5YZ3brFkz7dy50+/Yzp071axZswiOEACA6oEgFghRUVGRrrvuOl199dV65JFHNGLECO3atSvk83v06KEFCxb4HZs/f7569OgR6aECABD3yIkFQnT//fcrPz9fzz77rOrWras5c+boxhtv9FUbyMnJkSQdPHhQeXl5ysnJUVJSks4880xJ0p///GddeOGF+tvf/qbLLrtM77zzjpYtW6aXXnopVm8JAABrUWILCMHChQt10UUX6X//+5969eolScrNzVXnzp31+OOP67bbbpPH4znuvDZt2vilHUybNk0PPPCAcnNz1aFDBz3xxBMaMGBAZb0NAADiBkEsAAAArENOLAAAAKxDEAsAAADrEMQCAADAOgSxAAAAsA5BLAAAAKxDEAsAAADrEMQCAADAOgSxAAAAsA5BLAAAAKxDEAsAAADrEMQCAADAOgSxAAAAsM7/D7wVDsJ4wBbwAAAAAElFTkSuQmCC", "text/plain": [ "Figure(PyObject
)" ] @@ -643,47 +5871,6 @@ "id": "843becb3", "metadata": {}, "source": [] - }, - { - "attachments": {}, - "cell_type": "markdown", - "id": "e589a88e", - "metadata": {}, - "source": [ - "## Sampling w Turing" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "99c0baa6", - "metadata": {}, - "outputs": [], - "source": [ - "using Turing" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "4b21a3c3", - "metadata": {}, - "outputs": [], - "source": [ - "TAP = 0.95\n", - "nadapts = 300\n", - "spl = Turing.NUTS(nadapts, TAP)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "74b110a2", - "metadata": {}, - "outputs": [], - "source": [ - "Turing.sample(funnel_model, spl, 50_000, progress=true; save_state=true)" - ] } ], "metadata": { diff --git a/src/abstractmcmc.jl b/src/abstractmcmc.jl index 446270c5..f2603954 100644 --- a/src/abstractmcmc.jl +++ b/src/abstractmcmc.jl @@ -33,12 +33,10 @@ function AbstractMCMC.step( init_params = nothing, kwargs..., ) - + # Unpack model model = getmodel(logdensitymodel) ctxt = model.context vi = DynamicPPL.VarInfo(model, ctxt) - #vi = kwargs[:vi] - d = kwargs[:d] # We will need to implement this but it is going to be # Interesting how to plug the transforms along the sampling @@ -47,6 +45,7 @@ function AbstractMCMC.step( # Define metric if spl.metric == nothing + d = getdimensions(logdensitymodel) metric = DiagEuclideanMetric(d) else metric = spl.metric @@ -88,7 +87,6 @@ function AbstractMCMC.step( # Compute next transition and state. state = HMCState(0, t, h.metric, kernel, adaptor) - # Take actual first step. return AbstractMCMC.step( rng, @@ -101,12 +99,12 @@ end function AbstractMCMC.step( rng::AbstractRNG, - logdensity::LogDensityModel, + logdensitymodel::AbstractMCMC.LogDensityModel, spl::AbstractMCMC.AbstractSampler, state::HMCState; nadapts::Int = 0, kwargs..., -) +) # Compute transition. i = state.i + 1 t_old = state.transition @@ -115,7 +113,7 @@ function AbstractMCMC.step( metric = state.metric # Reconstruct hamiltonian. - h = Hamiltonian(metric, logdensity) + h = Hamiltonian(metric, logdensitymodel) # Make new transition. t = transition(rng, h, κ, t_old.z) @@ -139,6 +137,9 @@ end getmodel(f::DynamicPPL.LogDensityFunction) = f.model getmodel(f::AbstractMCMC.LogDensityModel) = getmodel(f.logdensity) getmodel(f::LogDensityProblemsAD.ADGradientWrapper) = getmodel(parent(f)) +function getdimensions(f::AbstractMCMC.LogDensityModel) + return LogDensityProblems.dimension(f.logdensity) +end ################ ### Callback ### From 0f45cc82719c603d0c7ddd5747517d7793cd36d1 Mon Sep 17 00:00:00 2001 From: jaimerz Date: Thu, 8 Jun 2023 14:28:31 +0100 Subject: [PATCH 17/27] big step forward --- src/abstractmcmc.jl | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/src/abstractmcmc.jl b/src/abstractmcmc.jl index f2603954..28d4c62e 100644 --- a/src/abstractmcmc.jl +++ b/src/abstractmcmc.jl @@ -24,19 +24,24 @@ struct HMCState{ κ::TKernel "Current [`AbstractAdaptor`](@ref)." adaptor::TAdapt + "Current [`Hamiltonian`](@ref)." + hamiltonian::Hamiltonian end function AbstractMCMC.step( rng::AbstractRNG, - logdensitymodel::AbstractMCMC.LogDensityModel, + model::DynamicPPL.Model, spl::AbstractMCMC.AbstractSampler; init_params = nothing, kwargs..., ) # Unpack model - model = getmodel(logdensitymodel) ctxt = model.context vi = DynamicPPL.VarInfo(model, ctxt) + logdensityfunction = DynamicPPL.LogDensityFunction(vi, model, ctxt) + logdensityproblem = LogDensityProblemsAD.ADgradient(logdensityfunction) + logdensitymodel = AbstractMCMC.LogDensityModel(logdensityproblem) + #model = getmodel(logdensitymodel) # We will need to implement this but it is going to be # Interesting how to plug the transforms along the sampling @@ -45,7 +50,8 @@ function AbstractMCMC.step( # Define metric if spl.metric == nothing - d = getdimensions(logdensitymodel) + d = LogDensityProblems.dimension(logdensityproblem) + #d = getdimensions(logdensitymodel) metric = DiagEuclideanMetric(d) else metric = spl.metric @@ -86,11 +92,12 @@ function AbstractMCMC.step( h, t = AdvancedHMC.sample_init(rng, hamiltonian, init_params) # Compute next transition and state. - state = HMCState(0, t, h.metric, kernel, adaptor) + state = HMCState(0, t, h.metric, kernel, adaptor, hamiltonian) # Take actual first step. + println(typeof(hamiltonian)<:Hamiltonian) return AbstractMCMC.step( rng, - logdensitymodel, + model, spl, state; n_adapts = n_adapts, @@ -99,7 +106,7 @@ end function AbstractMCMC.step( rng::AbstractRNG, - logdensitymodel::AbstractMCMC.LogDensityModel, + model::DynamicPPL.Model, spl::AbstractMCMC.AbstractSampler, state::HMCState; nadapts::Int = 0, @@ -111,9 +118,10 @@ function AbstractMCMC.step( adaptor = state.adaptor κ = state.κ metric = state.metric + h = state.hamiltonian # Reconstruct hamiltonian. - h = Hamiltonian(metric, logdensitymodel) + #h = Hamiltonian(metric, logdensitymodel) # Make new transition. t = transition(rng, h, κ, t_old.z) @@ -124,7 +132,7 @@ function AbstractMCMC.step( tstat = merge(tstat, (is_adapt = isadapted,)) # Compute next transition and state. - newstate = HMCState(i, t, h.metric, κ, adaptor) + newstate = HMCState(i, t, h.metric, κ, adaptor, h) # Return `Transition` with additional stats added. return Transition(t.z, tstat), newstate From 3e1c403128894b1d5fa006d66d317b65aab792ae Mon Sep 17 00:00:00 2001 From: jaimerz Date: Thu, 8 Jun 2023 14:45:43 +0100 Subject: [PATCH 18/27] huge step forward --- Lab.ipynb | 5564 ++----------------------------------------- src/abstractmcmc.jl | 5 +- 2 files changed, 180 insertions(+), 5389 deletions(-) diff --git a/Lab.ipynb b/Lab.ipynb index 5a8102a4..426beaa7 100644 --- a/Lab.ipynb +++ b/Lab.ipynb @@ -39,7 +39,13 @@ "output_type": "stream", "text": [ "\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling AdvancedHMC [0bf59076-c3b1-5ca4-86bd-e02cd72cde3d]\n", - "\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling Turing [fce5fe82-541a-59a6-adf8-730c64b5f9a0]\n" + "\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling Turing [fce5fe82-541a-59a6-adf8-730c64b5f9a0]\n", + "WARNING: Method definition sample(Random.AbstractRNG, AbstractMCMC.AbstractModel, AbstractMCMC.AbstractSampler, AbstractMCMC.AbstractMCMCEnsemble, Integer, Integer) in module AbstractMCMC at /home/jaimerz/.julia/packages/AbstractMCMC/bE6VB/src/sample.jl:81 overwritten in module Inference at /home/jaimerz/Cambdrige/Turing.jl/src/inference/Inference.jl:214.\n", + " ** incremental compilation may be fatally broken for this module **\n", + "\n", + "WARNING: Method definition kwcall(Any, typeof(StatsBase.sample), Random.AbstractRNG, AbstractMCMC.AbstractModel, AbstractMCMC.AbstractSampler, AbstractMCMC.AbstractMCMCEnsemble, Integer, Integer) in module AbstractMCMC at /home/jaimerz/.julia/packages/AbstractMCMC/bE6VB/src/sample.jl:81 overwritten in module Inference at /home/jaimerz/Cambdrige/Turing.jl/src/inference/Inference.jl:214.\n", + " ** incremental compilation may be fatally broken for this module **\n", + "\n" ] } ], @@ -90,13 +96,6 @@ "end" ] }, - { - "attachments": {}, - "cell_type": "markdown", - "id": "f5770b5a", - "metadata": {}, - "source": [] - }, { "cell_type": "code", "execution_count": 4, @@ -202,7 +201,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 12, "id": "b0193663", "metadata": {}, "outputs": [ @@ -210,5228 +209,14 @@ "name": "stdout", "output_type": "stream", "text": [ - "Hell\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32mSampling: 4%|█▍ | ETA: 0:00:03\u001b[39m" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32mSampling: 28%|███████████▋ | ETA: 0:00:02\u001b[39m" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n" + "true\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "\u001b[32mSampling: 36%|██████████████▌ | ETA: 0:00:02\u001b[39m" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32mSampling: 40%|████████████████▎ | ETA: 0:00:02\u001b[39m" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32mSampling: 44%|██████████████████ | ETA: 0:00:02\u001b[39m" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32mSampling: 50%|████████████████████▎ | ETA: 0:00:02\u001b[39m" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32mSampling: 54%|██████████████████████▍ | ETA: 0:00:01\u001b[39m" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32mSampling: 58%|████████████████████████ | ETA: 0:00:01\u001b[39m" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32mSampling: 64%|██████████████████████████ | ETA: 0:00:01\u001b[39m" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32mSampling: 68%|███████████████████████████▉ | ETA: 0:00:01\u001b[39m" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32mSampling: 72%|█████████████████████████████▊ | ETA: 0:00:01\u001b[39m" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32mSampling: 77%|███████████████████████████████▋ | ETA: 0:00:01\u001b[39m" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32mSampling: 82%|█████████████████████████████████▍ | ETA: 0:00:01\u001b[39m" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32mSampling: 86%|███████████████████████████████████ | ETA: 0:00:00\u001b[39m" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32mSampling: 90%|████████████████████████████████████▉ | ETA: 0:00:00\u001b[39m" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32mSampling: 94%|██████████████████████████████████████▊ | ETA: 0:00:00\u001b[39m" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32mSampling: 100%|█████████████████████████████████████████| Time: 0:00:02\u001b[39m\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n", - "World\n" + "\u001b[32mSampling: 100%|█████████████████████████████████████████| Time: 0:00:01\u001b[39m\n" ] }, { @@ -5442,63 +227,64 @@ "Iterations = 1:1:5000\n", "Number of chains = 1\n", "Samples per chain = 5000\n", - "parameters = θ, z1, z2, z3, z4, z5, z6, z7, z8, z9, z10, z11, z12, z13, z14, z15, z16, z17, z18, z19, z20\n", + "parameters = param_1, param_2, param_3, param_4, param_5, param_6, param_7, param_8, param_9, param_10, param_11, param_12, param_13, param_14, param_15, param_16, param_17, param_18, param_19, param_20, param_21\n", "internals = lp, n_steps, is_accept, acceptance_rate, log_density, hamiltonian_energy, hamiltonian_energy_error, max_hamiltonian_energy_error, tree_depth, numerical_error, step_size, nom_step_size, is_adapt\n", "\n", "Summary Statistics\n", - " \u001b[1m parameters \u001b[0m \u001b[1m mean \u001b[0m \u001b[1m std \u001b[0m \u001b[1m mcse \u001b[0m \u001b[1m ess_bulk \u001b[0m \u001b[1m rhat \u001b[0m \u001b[1m ess_per_sec\u001b[0m ⋯\n", - " \u001b[90m Symbol \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Real \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Missing\u001b[0m ⋯\n", + " \u001b[1m parameters \u001b[0m \u001b[1m mean \u001b[0m \u001b[1m std \u001b[0m \u001b[1m mcse \u001b[0m \u001b[1m ess_bulk \u001b[0m \u001b[1m rhat \u001b[0m \u001b[1m ess_per_se\u001b[0m ⋯\n", + " \u001b[90m Symbol \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Real \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Missin\u001b[0m ⋯\n", "\n", - " θ -0.0819 0.8780 0.0714 300.5212 1.0086 missing ⋯\n", - " z1 0.5993 0.7483 0.0134 3267.0753 1.0004 missing ⋯\n", - " z2 0.6056 0.7259 0.0139 2793.4279 1.0028 missing ⋯\n", - " z3 -0.4154 0.7116 0.0103 5191.0910 1.0032 missing ⋯\n", - " z4 0.0728 0.7091 0.0075 8936.0447 1.0012 missing ⋯\n", - " z5 0.9492 0.7946 0.0228 1129.9148 1.0066 missing ⋯\n", - " z6 -1.6898 0.9027 0.0392 471.6774 1.0064 missing ⋯\n", - " z7 -0.0602 0.6817 0.0074 8458.7049 1.0003 missing ⋯\n", - " z8 0.3270 0.7147 0.0087 7028.6821 1.0039 missing ⋯\n", - " z9 -1.6155 0.9100 0.0360 563.9075 1.0058 missing ⋯\n", - " z10 -0.8066 0.7565 0.0170 1948.0251 1.0016 missing ⋯\n", - " z11 0.9513 0.7663 0.0195 1531.7031 1.0018 missing ⋯\n", - " z12 0.0632 0.7105 0.0076 8714.5153 1.0016 missing ⋯\n", - " z13 0.0611 0.6932 0.0074 8752.0075 1.0032 missing ⋯\n", - " z14 -0.2606 0.6910 0.0085 6817.6340 1.0002 missing ⋯\n", - " z15 -0.0673 0.6938 0.0073 8983.9464 1.0002 missing ⋯\n", - " z16 -0.6371 0.7399 0.0136 3014.6013 1.0016 missing ⋯\n", - " z17 0.8403 0.7863 0.0164 2260.0094 1.0012 missing ⋯\n", - " z18 -0.2287 0.6921 0.0078 7923.3963 1.0026 missing ⋯\n", - " z19 0.5260 0.7114 0.0131 3136.4600 1.0020 missing ⋯\n", - " z20 0.6085 0.7505 0.0145 2768.1320 1.0024 missing ⋯\n", + " param_1 -0.0174 0.7500 0.0350 730.0857 1.0004 missin ⋯\n", + " param_2 0.6148 0.7632 0.0113 4717.0640 0.9999 missin ⋯\n", + " param_3 0.6330 0.7287 0.0104 5085.7554 1.0002 missin ⋯\n", + " param_4 -0.4251 0.7090 0.0092 5955.7914 0.9999 missin ⋯\n", + " param_5 0.0785 0.6943 0.0069 10060.6359 1.0011 missin ⋯\n", + " param_6 0.9763 0.7883 0.0148 2783.3659 1.0000 missin ⋯\n", + " param_7 -1.7070 0.8929 0.0234 1386.4922 1.0003 missin ⋯\n", + " param_8 -0.0592 0.7182 0.0080 8050.8462 1.0003 missin ⋯\n", + " param_9 0.3400 0.7102 0.0078 8396.9475 0.9999 missin ⋯\n", + " param_10 -1.6307 0.8631 0.0220 1459.1123 1.0008 missin ⋯\n", + " param_11 -0.8527 0.7616 0.0121 4055.1172 1.0008 missin ⋯\n", + " param_12 0.9897 0.7565 0.0145 2731.9896 1.0004 missin ⋯\n", + " param_13 0.0393 0.7191 0.0076 9121.5795 1.0000 missin ⋯\n", + " param_14 0.0494 0.6942 0.0074 8791.7218 0.9999 missin ⋯\n", + " param_15 -0.2733 0.7141 0.0076 8812.5283 1.0000 missin ⋯\n", + " param_16 -0.0573 0.7148 0.0073 9500.3237 1.0000 missin ⋯\n", + " param_17 -0.6470 0.7472 0.0103 5434.1051 1.0012 missin ⋯\n", + " param_18 0.8703 0.7677 0.0132 3439.5268 0.9999 missin ⋯\n", + " param_19 -0.2340 0.7265 0.0082 7689.3257 1.0000 missin ⋯\n", + " param_20 0.5327 0.7314 0.0093 6332.7328 1.0002 missin ⋯\n", + " param_21 0.6139 0.7429 0.0106 4997.4199 1.0000 missin ⋯\n", + "\u001b[36m 1 column omitted\u001b[0m\n", "\n", "Quantiles\n", " \u001b[1m parameters \u001b[0m \u001b[1m 2.5% \u001b[0m \u001b[1m 25.0% \u001b[0m \u001b[1m 50.0% \u001b[0m \u001b[1m 75.0% \u001b[0m \u001b[1m 97.5% \u001b[0m\n", " \u001b[90m Symbol \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m\n", "\n", - " θ -2.4271 -0.4620 0.0434 0.4828 1.2057\n", - " z1 -0.7930 0.0875 0.5629 1.0717 2.1682\n", - " z2 -0.6938 0.1016 0.5635 1.0707 2.1259\n", - " z3 -1.9296 -0.8592 -0.3758 0.0530 0.9185\n", - " z4 -1.3459 -0.3779 0.0680 0.5221 1.4889\n", - " z5 -0.4407 0.3697 0.9008 1.4497 2.6213\n", - " z6 -3.5134 -2.2956 -1.6580 -1.0396 -0.0618\n", - " z7 -1.4124 -0.4916 -0.0617 0.3803 1.2744\n", - " z8 -1.0081 -0.1523 0.2828 0.7996 1.7721\n", - " z9 -3.5025 -2.2222 -1.5808 -0.9574 -0.0021\n", - " z10 -2.4005 -1.3055 -0.7673 -0.2593 0.5547\n", - " z11 -0.4104 0.3913 0.9133 1.4590 2.5290\n", - " z12 -1.3724 -0.3965 0.0598 0.5315 1.5357\n", - " z13 -1.3432 -0.3700 0.0467 0.4956 1.4795\n", - " z14 -1.6522 -0.7052 -0.2302 0.1755 1.1003\n", - " z15 -1.4697 -0.4991 -0.0721 0.3673 1.3017\n", - " z16 -2.1697 -1.1258 -0.5943 -0.1221 0.6808\n", - " z17 -0.5558 0.2920 0.7979 1.3378 2.5384\n", - " z18 -1.6223 -0.6791 -0.1963 0.2128 1.0954\n", - " z19 -0.7966 0.0324 0.4984 0.9942 1.9955\n", - " z20 -0.7322 0.0966 0.5656 1.0785 2.2085\n" + " param_1 -1.7713 -0.3872 0.0793 0.4723 1.1709\n", + " param_2 -0.8114 0.1038 0.5695 1.0997 2.2276\n", + " param_3 -0.6902 0.1206 0.5973 1.1164 2.1311\n", + " param_4 -1.8581 -0.8688 -0.4034 0.0324 0.9877\n", + " param_5 -1.2657 -0.3823 0.0609 0.5435 1.4433\n", + " param_6 -0.4298 0.4240 0.9355 1.4626 2.6768\n", + " param_7 -3.5151 -2.2903 -1.6749 -1.0749 -0.0668\n", + " param_8 -1.4734 -0.5202 -0.0467 0.4045 1.3604\n", + " param_9 -1.0429 -0.1228 0.3206 0.7800 1.8106\n", + " param_10 -3.4084 -2.2220 -1.6031 -1.0067 -0.0836\n", + " param_11 -2.4772 -1.3518 -0.7930 -0.3179 0.5413\n", + " param_12 -0.3563 0.4531 0.9460 1.4955 2.5399\n", + " param_13 -1.4161 -0.4123 0.0330 0.4998 1.4982\n", + " param_14 -1.2656 -0.4093 0.0408 0.4927 1.4230\n", + " param_15 -1.7088 -0.7418 -0.2609 0.2003 1.1286\n", + " param_16 -1.4604 -0.5194 -0.0537 0.4161 1.3682\n", + " param_17 -2.1648 -1.1385 -0.6149 -0.1260 0.7007\n", + " param_18 -0.5556 0.3307 0.8370 1.3768 2.4403\n", + " param_19 -1.7389 -0.6792 -0.2201 0.2328 1.1957\n", + " param_20 -0.8335 0.0358 0.4972 0.9939 2.0256\n", + " param_21 -0.7627 0.1034 0.5736 1.0991 2.1488\n" ] }, - "execution_count": 9, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" }, @@ -5509,14 +295,6 @@ "\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mTail ESS calculation failed: OverflowError(\"4750 * 4503599627370496 overflowed for type Int64\")\n", "\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ MCMCChains ~/.julia/packages/MCMCChains/OVsxE/src/stats.jl:319\u001b[39m\n" ] - }, - { - "ename": "", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[1;31mThe Kernel crashed while executing code in the the current cell or a previous cell. Please review the code in the cell(s) to identify a possible cause of the failure. Click here for more info. View Jupyter log for further details." - ] } ], "source": [ @@ -5525,15 +303,22 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "id": "f610b909", "metadata": {}, "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "true\n" + ] + }, { "name": "stderr", "output_type": "stream", "text": [ - "\u001b[32mSampling: 100%|█████████████████████████████████████████| Time: 0:00:01\u001b[39m\n" + "\u001b[32mSampling: 100%|█████████████████████████████████████████| Time: 0:00:02\u001b[39m\n" ] }, { @@ -5544,64 +329,64 @@ "Iterations = 1:1:5000\n", "Number of chains = 1\n", "Samples per chain = 5000\n", - "parameters = θ, z1, z2, z3, z4, z5, z6, z7, z8, z9, z10, z11, z12, z13, z14, z15, z16, z17, z18, z19, z20\n", + "parameters = param_1, param_2, param_3, param_4, param_5, param_6, param_7, param_8, param_9, param_10, param_11, param_12, param_13, param_14, param_15, param_16, param_17, param_18, param_19, param_20, param_21\n", "internals = lp, n_steps, is_accept, acceptance_rate, log_density, hamiltonian_energy, hamiltonian_energy_error, numerical_error, step_size, nom_step_size, is_adapt\n", "\n", "Summary Statistics\n", " \u001b[1m parameters \u001b[0m \u001b[1m mean \u001b[0m \u001b[1m std \u001b[0m \u001b[1m mcse \u001b[0m \u001b[1m ess_bulk \u001b[0m \u001b[1m rhat \u001b[0m \u001b[1m ess_per_se\u001b[0m ⋯\n", " \u001b[90m Symbol \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Real \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Missin\u001b[0m ⋯\n", "\n", - " θ -0.0106 0.7445 0.0297 789.5195 1.0000 missin ⋯\n", - " z1 0.6136 0.7581 0.0074 10938.0595 0.9999 missin ⋯\n", - " z2 0.6234 0.7419 0.0073 11080.6494 1.0015 missin ⋯\n", - " z3 -0.4289 0.7437 0.0058 16541.8468 0.9998 missin ⋯\n", - " z4 0.0838 0.7075 0.0052 18494.8500 1.0004 missin ⋯\n", - " z5 0.9733 0.7823 0.0106 5603.5094 1.0000 missin ⋯\n", - " z6 -1.7155 0.8972 0.0187 2248.3477 0.9998 missin ⋯\n", - " z7 -0.0528 0.6835 0.0050 18494.8500 0.9999 missin ⋯\n", - " z8 0.3399 0.7027 0.0052 18494.8500 1.0004 missin ⋯\n", - " z9 -1.6519 0.8893 0.0181 2340.0530 0.9999 missin ⋯\n", - " z10 -0.8511 0.7431 0.0092 6379.9418 0.9998 missin ⋯\n", - " z11 0.9829 0.7975 0.0108 5448.1218 1.0005 missin ⋯\n", - " z12 0.0554 0.7166 0.0053 18494.8500 1.0014 missin ⋯\n", - " z13 0.0528 0.7153 0.0053 18494.8500 1.0027 missin ⋯\n", - " z14 -0.2731 0.7107 0.0052 18494.8500 1.0023 missin ⋯\n", - " z15 -0.0562 0.7077 0.0052 18494.8500 1.0012 missin ⋯\n", - " z16 -0.6499 0.7149 0.0074 9586.3357 0.9998 missin ⋯\n", - " z17 0.8521 0.7384 0.0094 6304.9456 1.0001 missin ⋯\n", - " z18 -0.2217 0.7175 0.0053 18494.8500 1.0020 missin ⋯\n", - " z19 0.5458 0.7256 0.0061 13430.4399 0.9998 missin ⋯\n", - " z20 0.6120 0.7067 0.0069 10069.5393 1.0040 missin ⋯\n", + " param_1 -0.0511 0.7690 0.0307 760.5169 0.9998 missin ⋯\n", + " param_2 0.6008 0.7087 0.0081 7762.2759 0.9998 missin ⋯\n", + " param_3 0.6068 0.7257 0.0079 8943.3761 0.9999 missin ⋯\n", + " param_4 -0.4200 0.6873 0.0051 18494.8500 0.9998 missin ⋯\n", + " param_5 0.0860 0.6917 0.0051 18494.8500 0.9998 missin ⋯\n", + " param_6 0.9493 0.7641 0.0117 4343.7631 1.0014 missin ⋯\n", + " param_7 -1.6812 0.9169 0.0203 1943.5537 1.0002 missin ⋯\n", + " param_8 -0.0490 0.7376 0.0054 18494.8500 1.0005 missin ⋯\n", + " param_9 0.3295 0.6838 0.0051 17509.3435 1.0008 missin ⋯\n", + " param_10 -1.6175 0.8784 0.0192 2021.9588 1.0004 missin ⋯\n", + " param_11 -0.8305 0.7581 0.0102 5708.8237 0.9998 missin ⋯\n", + " param_12 0.9674 0.7370 0.0118 3910.1150 1.0013 missin ⋯\n", + " param_13 0.0526 0.7262 0.0053 18494.8500 1.0015 missin ⋯\n", + " param_14 0.0568 0.7011 0.0052 18494.8500 1.0046 missin ⋯\n", + " param_15 -0.2692 0.6908 0.0051 18494.8500 0.9999 missin ⋯\n", + " param_16 -0.0585 0.6893 0.0051 18494.8500 1.0007 missin ⋯\n", + " param_17 -0.6359 0.7557 0.0083 8808.1480 0.9999 missin ⋯\n", + " param_18 0.8410 0.7407 0.0098 5856.3172 0.9998 missin ⋯\n", + " param_19 -0.2209 0.7268 0.0053 18494.8500 1.0008 missin ⋯\n", + " param_20 0.5363 0.7254 0.0066 12297.2799 1.0048 missin ⋯\n", + " param_21 0.6043 0.7387 0.0075 10518.4937 1.0029 missin ⋯\n", "\u001b[36m 1 column omitted\u001b[0m\n", "\n", "Quantiles\n", " \u001b[1m parameters \u001b[0m \u001b[1m 2.5% \u001b[0m \u001b[1m 25.0% \u001b[0m \u001b[1m 50.0% \u001b[0m \u001b[1m 75.0% \u001b[0m \u001b[1m 97.5% \u001b[0m\n", " \u001b[90m Symbol \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m\n", "\n", - " θ -1.8996 -0.3614 0.0951 0.4758 1.1522\n", - " z1 -0.7873 0.0930 0.5654 1.1074 2.1908\n", - " z2 -0.7370 0.1133 0.5908 1.1067 2.1540\n", - " z3 -1.9543 -0.8888 -0.3979 0.0585 0.9684\n", - " z4 -1.3018 -0.3787 0.0777 0.5388 1.5177\n", - " z5 -0.4447 0.4152 0.9276 1.4753 2.6254\n", - " z6 -3.4942 -2.3134 -1.7041 -1.0779 -0.0776\n", - " z7 -1.4329 -0.4813 -0.0481 0.3851 1.3305\n", - " z8 -1.0074 -0.1425 0.3217 0.8044 1.7679\n", - " z9 -3.4619 -2.2652 -1.6207 -1.0259 -0.0543\n", - " z10 -2.3864 -1.3391 -0.7956 -0.3318 0.5164\n", - " z11 -0.4218 0.4121 0.9331 1.5232 2.6309\n", - " z12 -1.3257 -0.4185 0.0515 0.5360 1.4825\n", - " z13 -1.3937 -0.4009 0.0517 0.5259 1.4757\n", - " z14 -1.7331 -0.7263 -0.2567 0.1936 1.0990\n", - " z15 -1.4467 -0.5401 -0.0520 0.4252 1.3145\n", - " z16 -2.1316 -1.1157 -0.6285 -0.1473 0.6768\n", - " z17 -0.4527 0.3247 0.8186 1.3336 2.4389\n", - " z18 -1.6521 -0.6891 -0.2045 0.2558 1.1627\n", - " z19 -0.7911 0.0466 0.5271 1.0117 2.0438\n", - " z20 -0.7072 0.1356 0.5761 1.0502 2.0787\n" + " param_1 -2.0322 -0.4172 0.0591 0.4611 1.1661\n", + " param_2 -0.7222 0.1123 0.5537 1.0438 2.0960\n", + " param_3 -0.7152 0.1014 0.5667 1.0696 2.1301\n", + " param_4 -1.8414 -0.8576 -0.3875 0.0377 0.8896\n", + " param_5 -1.3036 -0.3642 0.0767 0.5297 1.4782\n", + " param_6 -0.4132 0.4124 0.9046 1.4459 2.5894\n", + " param_7 -3.5879 -2.2750 -1.6363 -1.0282 -0.0585\n", + " param_8 -1.5408 -0.5073 -0.0504 0.4187 1.4338\n", + " param_9 -0.9966 -0.1115 0.3018 0.7575 1.7378\n", + " param_10 -3.4760 -2.1895 -1.5792 -0.9955 -0.0562\n", + " param_11 -2.4177 -1.3094 -0.7926 -0.3030 0.5092\n", + " param_12 -0.3374 0.4377 0.9366 1.4540 2.4858\n", + " param_13 -1.4007 -0.4206 0.0497 0.5369 1.4845\n", + " param_14 -1.2902 -0.4095 0.0534 0.5184 1.4468\n", + " param_15 -1.7128 -0.6838 -0.2459 0.1567 1.0854\n", + " param_16 -1.4711 -0.4925 -0.0531 0.3858 1.3000\n", + " param_17 -2.1971 -1.1454 -0.5975 -0.0921 0.7504\n", + " param_18 -0.4589 0.3191 0.7982 1.3046 2.4044\n", + " param_19 -1.7493 -0.6706 -0.2011 0.2398 1.2489\n", + " param_20 -0.8299 0.0471 0.4926 1.0035 2.0433\n", + " param_21 -0.7295 0.0787 0.5609 1.0962 2.1442\n" ] }, - "execution_count": 9, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" }, @@ -5620,15 +405,22 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "id": "88df45a3", "metadata": {}, "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "true\n" + ] + }, { "name": "stderr", "output_type": "stream", "text": [ - "\u001b[32mSampling: 100%|█████████████████████████████████████████| Time: 0:00:00\u001b[39m\n" + "\u001b[32mSampling: 100%|█████████████████████████████████████████| Time: 0:00:01\u001b[39m\n" ] }, { @@ -5639,63 +431,63 @@ "Iterations = 1:1:5000\n", "Number of chains = 1\n", "Samples per chain = 5000\n", - "parameters = θ, z1, z2, z3, z4, z5, z6, z7, z8, z9, z10, z11, z12, z13, z14, z15, z16, z17, z18, z19, z20\n", + "parameters = param_1, param_2, param_3, param_4, param_5, param_6, param_7, param_8, param_9, param_10, param_11, param_12, param_13, param_14, param_15, param_16, param_17, param_18, param_19, param_20, param_21\n", "internals = lp, n_steps, is_accept, acceptance_rate, log_density, hamiltonian_energy, hamiltonian_energy_error, numerical_error, step_size, nom_step_size, is_adapt\n", "\n", "Summary Statistics\n", " \u001b[1m parameters \u001b[0m \u001b[1m mean \u001b[0m \u001b[1m std \u001b[0m \u001b[1m mcse \u001b[0m \u001b[1m ess_bulk \u001b[0m \u001b[1m rhat \u001b[0m \u001b[1m ess_per_sec\u001b[0m ⋯\n", " \u001b[90m Symbol \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Real \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Missing\u001b[0m ⋯\n", "\n", - " θ -0.0368 0.7599 0.0388 451.9926 1.0040 missing ⋯\n", - " z1 0.5857 0.7261 0.0158 2182.8915 1.0021 missing ⋯\n", - " z2 0.6106 0.7329 0.0157 2226.2883 1.0015 missing ⋯\n", - " z3 -0.4424 0.7161 0.0149 2305.2779 1.0016 missing ⋯\n", - " z4 0.0861 0.6972 0.0122 3292.6615 1.0010 missing ⋯\n", - " z5 0.9481 0.7806 0.0221 1276.0889 1.0019 missing ⋯\n", - " z6 -1.6911 0.8909 0.0319 768.4135 1.0014 missing ⋯\n", - " z7 -0.0530 0.7111 0.0122 3427.4615 1.0004 missing ⋯\n", - " z8 0.3284 0.7259 0.0134 2970.8809 0.9999 missing ⋯\n", - " z9 -1.6222 0.8805 0.0358 581.0716 1.0008 missing ⋯\n", - " z10 -0.8190 0.7485 0.0195 1474.2670 1.0039 missing ⋯\n", - " z11 0.9967 0.7735 0.0217 1282.7723 1.0006 missing ⋯\n", - " z12 0.0507 0.6966 0.0123 3213.7370 0.9999 missing ⋯\n", - " z13 0.0601 0.7136 0.0126 3206.0601 1.0001 missing ⋯\n", - " z14 -0.2718 0.7096 0.0126 3175.8574 0.9999 missing ⋯\n", - " z15 -0.0633 0.7108 0.0123 3342.1770 0.9998 missing ⋯\n", - " z16 -0.6285 0.7297 0.0149 2463.9447 1.0005 missing ⋯\n", - " z17 0.8439 0.7646 0.0189 1647.3060 1.0006 missing ⋯\n", - " z18 -0.2088 0.7037 0.0131 2922.5686 1.0005 missing ⋯\n", - " z19 0.5370 0.7092 0.0140 2612.2058 0.9999 missing ⋯\n", - " z20 0.5931 0.7322 0.0157 2219.7736 1.0005 missing ⋯\n", + " param_1 -0.1374 0.9854 0.0802 300.0707 1.0000 missing ⋯\n", + " param_2 0.5816 0.7170 0.0167 1904.9377 0.9999 missing ⋯\n", + " param_3 0.6056 0.7297 0.0185 1622.7416 1.0001 missing ⋯\n", + " param_4 -0.3994 0.6984 0.0139 2588.9803 1.0001 missing ⋯\n", + " param_5 0.0842 0.6967 0.0136 2619.8675 0.9998 missing ⋯\n", + " param_6 0.9201 0.7757 0.0275 796.7068 1.0005 missing ⋯\n", + " param_7 -1.6537 0.9317 0.0419 477.0189 0.9999 missing ⋯\n", + " param_8 -0.0596 0.6990 0.0125 3149.8056 1.0000 missing ⋯\n", + " param_9 0.3409 0.7085 0.0136 2861.0059 1.0005 missing ⋯\n", + " param_10 -1.6002 0.9174 0.0408 475.8869 1.0002 missing ⋯\n", + " param_11 -0.8002 0.7516 0.0214 1236.1506 0.9999 missing ⋯\n", + " param_12 0.9417 0.7878 0.0258 936.9052 1.0005 missing ⋯\n", + " param_13 0.0683 0.7005 0.0124 3229.7104 0.9998 missing ⋯\n", + " param_14 0.0468 0.6980 0.0121 3366.4062 1.0005 missing ⋯\n", + " param_15 -0.2592 0.7172 0.0132 3022.7550 0.9999 missing ⋯\n", + " param_16 -0.0521 0.6835 0.0124 3117.2325 1.0000 missing ⋯\n", + " param_17 -0.6306 0.7495 0.0168 2042.9921 1.0005 missing ⋯\n", + " param_18 0.8219 0.7483 0.0228 1089.0650 1.0004 missing ⋯\n", + " param_19 -0.2059 0.6935 0.0122 3270.9700 0.9999 missing ⋯\n", + " param_20 0.5134 0.7293 0.0161 2107.0161 0.9999 missing ⋯\n", + " param_21 0.5832 0.7261 0.0167 1944.6001 1.0001 missing ⋯\n", "\n", "Quantiles\n", " \u001b[1m parameters \u001b[0m \u001b[1m 2.5% \u001b[0m \u001b[1m 25.0% \u001b[0m \u001b[1m 50.0% \u001b[0m \u001b[1m 75.0% \u001b[0m \u001b[1m 97.5% \u001b[0m\n", " \u001b[90m Symbol \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m\n", "\n", - " θ -1.7840 -0.4151 0.0548 0.4762 1.1514\n", - " z1 -0.7531 0.0832 0.5492 1.0520 2.0397\n", - " z2 -0.7479 0.1118 0.5776 1.0826 2.1415\n", - " z3 -1.9534 -0.8893 -0.4082 0.0317 0.9331\n", - " z4 -1.2931 -0.3616 0.0917 0.5340 1.4834\n", - " z5 -0.4509 0.3888 0.9049 1.4560 2.5997\n", - " z6 -3.4998 -2.2868 -1.6668 -1.0421 -0.0910\n", - " z7 -1.5058 -0.5099 -0.0364 0.4061 1.3121\n", - " z8 -1.0267 -0.1641 0.2975 0.7915 1.7736\n", - " z9 -3.4321 -2.2061 -1.5721 -0.9818 -0.0868\n", - " z10 -2.3602 -1.2892 -0.7811 -0.2913 0.5188\n", - " z11 -0.3643 0.4364 0.9491 1.5134 2.6459\n", - " z12 -1.3453 -0.3995 0.0507 0.5004 1.4078\n", - " z13 -1.3300 -0.4099 0.0529 0.5147 1.5304\n", - " z14 -1.7127 -0.7284 -0.2512 0.1806 1.0861\n", - " z15 -1.4979 -0.5266 -0.0591 0.3851 1.3415\n", - " z16 -2.1178 -1.1170 -0.5887 -0.1188 0.7033\n", - " z17 -0.4985 0.3066 0.7956 1.3341 2.4472\n", - " z18 -1.6518 -0.6633 -0.1882 0.2635 1.1423\n", - " z19 -0.8000 0.0622 0.5029 0.9926 1.9853\n", - " z20 -0.7809 0.0935 0.5566 1.0688 2.1378\n" + " param_1 -2.8736 -0.4698 0.0252 0.4595 1.1645\n", + " param_2 -0.6997 0.0823 0.5279 1.0437 2.1102\n", + " param_3 -0.7198 0.0958 0.5560 1.0790 2.1265\n", + " param_4 -1.8649 -0.8383 -0.3497 0.0475 0.9658\n", + " param_5 -1.3026 -0.3556 0.0713 0.5191 1.5080\n", + " param_6 -0.4136 0.3411 0.8788 1.4364 2.5730\n", + " param_7 -3.5290 -2.2770 -1.6435 -0.9761 0.0245\n", + " param_8 -1.4663 -0.4959 -0.0521 0.3643 1.3249\n", + " param_9 -1.0039 -0.1180 0.2950 0.7910 1.8125\n", + " param_10 -3.4820 -2.2040 -1.5789 -0.9412 0.0187\n", + " param_11 -2.3647 -1.2785 -0.7627 -0.2475 0.5265\n", + " param_12 -0.4238 0.3600 0.9019 1.4577 2.5905\n", + " param_13 -1.3311 -0.3595 0.0602 0.4898 1.4964\n", + " param_14 -1.3760 -0.3897 0.0503 0.4889 1.4548\n", + " param_15 -1.7473 -0.7184 -0.2269 0.1973 1.1298\n", + " param_16 -1.4071 -0.4848 -0.0395 0.3687 1.3586\n", + " param_17 -2.1948 -1.1213 -0.5770 -0.0942 0.7283\n", + " param_18 -0.4829 0.2742 0.7636 1.3043 2.4254\n", + " param_19 -1.6432 -0.6536 -0.1754 0.2373 1.1349\n", + " param_20 -0.8245 0.0114 0.4755 0.9727 2.0750\n", + " param_21 -0.6946 0.0764 0.5349 1.0593 2.1550\n" ] }, - "execution_count": 10, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" }, @@ -5723,46 +515,46 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "id": "9c61e0ab", "metadata": {}, "outputs": [], "source": [ - "theta_nuts = Vector(nuts_samples[\"θ\"][:, 1])\n", - "x10_nuts =Vector(nuts_samples[\"z10\"][:, 1]);" + "theta_nuts = Vector(nuts_samples[\"param_1\"][:, 1])\n", + "x10_nuts =Vector(nuts_samples[\"param_11\"][:, 1]);" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 16, "id": "0b0923f1", "metadata": {}, "outputs": [], "source": [ - "theta_hmc = Vector(hmc_samples[\"θ\"][:, 1])\n", - "x10_hmc =Vector(hmc_samples[\"z10\"][:, 1]);" + "theta_hmc = Vector(hmc_samples[\"param_1\"][:, 1])\n", + "x10_hmc =Vector(hmc_samples[\"param_11\"][:, 1]);" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 17, "id": "fec8ace5", "metadata": {}, "outputs": [], "source": [ - "theta_hmcda = Vector(hmcda_samples[\"θ\"][:, 1])\n", - "x10_hmcda =Vector(hmcda_samples[\"z10\"][:, 1]);" + "theta_hmcda = Vector(hmcda_samples[\"param_1\"][:, 1])\n", + "x10_hmcda =Vector(hmcda_samples[\"param_11\"][:, 1]);" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 18, "id": "8869229b", "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAArEAAAL3CAYAAACd2x1cAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAABT3klEQVR4nO3dd3xUVf7/8XcSkgAhCcGEJiEJWNBF6SJYQEVRcVnAdf2uDYRlbdiwbFAU6yK2da1YwS4q8rNggQVF/YqsVMsCAhI6GAgkwEoSkvn9wTf3nglzh5m0yZm8no8Hj8eZO+fee2YS9MM5n/s5MT6fzycAAADAIrGRHgAAAAAQLoJYAAAAWIcgFgAAANYhiAUAAIB1CGIBAABgHYJYAAAAWIcgFgAAANYhiAUAAIB1CGIBAABgHYJYoBZlZ2crJiZGMTExevfddz37DRgwQDExMZo6darf8REjRigmJkYjRowIep+pU6cqJiZG2dnZkqQvvvjCuW84f+666y7nmuXl5Zo6darOPPNMtWzZUvHx8WrRooWOOuooDR48WA8++KDy8vKq9sWEqbS0VHPmzNEtt9yiXr16qXnz5oqPj1fr1q01ePBgzZw50/PcDRs26Nlnn9Vf//pX9ejRQ4mJiYqJidFf/vKXao3prrvuOuj7a9y4sVq2bKkuXbpoxIgRev3117Vv374qXd/8GbZu3Vp79+4N2G/jxo1Ov0iq+D7M3yHJ/RyH+h2ujorf/2B/mjdvXmv3r28q/rtTV38/gUhpFOkBAA3F7bffriFDhqhRo9r/a9e6dWsNHz78oONLly7VsmXL1KpVK5199tkHvd+1a1dJ0t69e/X73/9en3/+uSSpe/fuOvXUUxUXF6dffvlFn376qT788EM1bdpUY8aMqdXPIknz5s3TmWeeKenAZzv55JOVlJSk//znP/rwww/14Ycf6q9//asmT558UDA3ffp03XjjjbU2NvO7LCsrU2FhoVasWKGXX35ZL7/8sm644QY98cQT+p//+Z8q32Pbtm165JFHdOedd9bUsKNSUlKS/vjHPwZ8r2nTpnU8GgC1jSAWqANNmzbVzz//rBdeeEFXXnllrd+vU6dOB83qSgdmy5YtW+b5vtnv888/V9u2bfXJJ5/o+OOP93u/sLBQ06dPV5s2bWp45IHFxsbq/PPP1/XXX69TTjnF771p06bp4osv1nPPPaeTTjpJl112md/7OTk5uvbaa9W9e3d1795db7/9tu6///4aG5vXd7lmzRrdddddeu211/TnP/9ZBQUFuvrqq8O+fpMmTbRv3z49/PDDuuqqq5SRkVEDo45O6enpQX+vAUQX0gmAOnD99ddLku655x7997//jfBoDu2tt96SJE2YMOGgAFaSUlNTNXLkSJ1zzjl1Mp7TTz9d77777kEBrCRdeOGFzlL1K6+8ctD7f/jDH/T4449rxIgROv744+tkJlySOnbsqFdffVW33HKLpAO/A7/88kvY12nbtq3++Mc/avfu3brvvvtqepgAYC2CWKAOnHvuuerXr5+2bNmif/zjH5EeziFt27ZNktSyZcsIjyQ03bp1k3Qg/7W+uf/++9W2bVvt37+/yj/7+++/X40aNdLkyZO1du3asM7dv3+/XnjhBfXv318tWrRQYmKicnJydNVVV3l+X++9957+8pe/qHPnzkpLS1Pjxo2Vk5OjkSNHauXKlVX6DIH861//0u9//3u1atVK8fHxSktL05FHHqlLLrlEX375ZY3dx5SXl+eXPx6IV06pefzzzz/XWWedpbS0NDVp0kTdu3cP+I8oSerfv79iYmL0xRdfaOnSpRo2bJjS09OVmJioY489Vo888oh8Pp/neObMmaNhw4apTZs2SkhIUMuWLTV06FDNnz+/Kl8BEDUIYoE6MmnSJEnSgw8+qB07dkR4NMG1b99ekjR58mQVFxdHeDSHtmrVKkmqs/SGcMTHx+vCCy+UJM2ePbtK1zjyyCM1evRolZSUaPz48SGft3v3bp155pkaPXq0Fi1apOOPP16DBw9WYmKiJk+erG7dumnJkiUHnfenP/1Jb775ppo0aaLTTz9dAwcOVGxsrKZMmaIePXrom2++qdLnML388ss666yzNHPmTOXk5Oj888/XqaeeqpSUFL311lt67733qn2P2vLSSy/pjDPOUEFBgc4++2x17dpVS5Ys0fDhw/XYY495nvfZZ5+pd+/eWrFihc4880z16dNHP//8s26++WbPvO2bb75ZAwYM0Pvvv6/27dtryJAh6tChg95//32dcsopmjJlSi19SsACPgC1JisryyfJ99VXX/l8Pp9v2LBhPkm+G2+80a/fGWec4ZPkmzJlit/x4cOH+yT5hg8fHvQ+U6ZM8UnyZWVlBe03YcIEnyRfv379gvb7xz/+4ZPkk+Rr1aqVb/To0b4XX3zRt3jxYt/+/fuDnlvXtmzZ4ktNTfVJ8j3++OOH7F/xHYwaNapa9w31u/T5fL7XXnvN+T5LS0tDuv7nn3/uk+Tr2LGjz+c78DmTkpJ8MTExviVLljj9NmzY4Fy7sosuusgnyXfeeef5tm3b5vdexc/4yCOPPOhn+tZbb/n27Nnjd6y8vNz31FNP+ST5fve73/nKy8v93q/4PiZMmBDS58vJyfH7u2Hatm2bb/HixSFdx+cL/fff5/P51q5de8i+FX9v165dG/B4fHy878MPPww4htTUVN9///tfv/f69evn/IwmT57s996cOXN8MTExvri4ON+GDRv83nvuued8knxHHHGEb9myZX7vzZs3z5ecnOxLSEjw/fzzzyGNH4g2zMQCdejvf/+7GjVqpKefflrr1q2L9HA83XDDDbr//vuVlJSkbdu26fnnn9eoUaPUvXt3paWlafjw4TW6rFxV+/fv1yWXXKLCwkIdd9xxuuKKKyI9pIDS09OddkFBQZWu0bp1a914443y+XzKzc09ZP/ly5frzTffVNu2bfXGG28clBpyww036Nxzz9WqVav0ySef+L134YUXKikpye9YTEyMrr76avXp00c//fSTli9fXqXPUWHbtm1KTU3VySeffNB7LVu2dFJEwrFu3TrPEltffPFFtcZruvbaa3Xeeef5HRsxYoQ6deqkwsJCLVy4MOB5w4YNO+h3tGKmu6yszKkGIh0ocVdRruytt946KDf91FNP1R133KGSkhI9++yzNfCpAPsQxAJ16Oijj9bIkSNVXFysO+64I9LDCeq2227Txo0bNXXqVF1++eXq0qWL4uLitHv3br3yyivq1q2bPv7444iO8corr9ScOXN02GGH6d1331VCQkJEx+OlvLzcaVennustt9yi9PR0ffbZZ34BTyAff/yxfD6fzjnnHCUnJwfs079/f0kKmB6wevVqPfnkk7rhhhs0atQojRgxQiNGjHDypav7j5gTTjhBhYWFuuyyy7Ro0SK/76iqkpKSNHz48IB/WrduXe3rV/j9738f8PgxxxwjSdq0aVO1z1uyZIk2b96sjh07qkePHgHPC/bzAxoCSmwBdayi7NLrr7+um2++OeDT/xUqAh5fkIc+zPdruuB98+bNnSBAknbu3KkZM2Zo/Pjx2rJli4YPH65169Ydsgbn9u3bdfPNNx90vFOnTiHNKgZy/fXX68UXX1RaWppmz56to446qkrXCeSFF17Q119/fdDx3NxcderUKezrbd++XdKBn09aWlqVx5WSkqLx48frhhtu0N/+9jctWLDAs29FJYQXX3xRL774YtDr5ufnO+2ysjKNGTNGzz77bNDfu6KiojBH7+/pp5/Weeedp1dffVWvvvqqkpOT1atXL51++um69NJLnbzscNRViS2vsaWkpEiS5wYX4ZxX8fNbs2bNIf9emz8/oCEhiAXqWJs2bXT99ddr4sSJGjduXNDdpiqWdL12a6qwZ88eSVKzZs1qbqABpKWlaeTIkerWrZu6d++u7du363//93+djQiCje/ll18+6Hi/fv2qFMTedNNNevzxx9W8eXPNmjWrSkvPwXz99dcBx1uxZByuxYsXSzoQtFe3xNdVV12lxx57TN99953effdd9enTJ2C/ipnNrl27qkuXLkGv2bt3b6f9z3/+U5MnT1br1q316KOPqm/fvmrVqpUaN24sSbrooov05ptvHvIfVodyzDHHaOXKlZo1a5bmzp2rb775Rl999ZXmzp2re+65Ry+++KIuueSSat2jqg41KxwbW7VFzHDOqxhD69atNXDgwKB9zXQVoCEhiAUi4G9/+5uee+45ffzxx0FLCVXM3KxevTro9Sqezq/K7FVVdOvWTenp6dq+fbszyxhMdnZ2tYOeCrfeeqseffRRpaamatasWerZs2eNXNc0derUGpvRKy0t1dtvvy1JOuuss6p9vYSEBN1777269NJLdfvtt2vWrFkB+2VmZkqSTjrpJD355JMhX79irM8++6wGDx580PsVv2s1oVGjRjr33HN17rnnSjowu/voo4/q7rvv1hVXXKGhQ4celJtbXRUpJ7t37w74fmlpqbZs2VKj96yKip/fYYcdxgYOgAdyYoEISE1N1W233SbpQFDm5fTTT5ckff/9956BbGlpqT744AO//tV1qIBz165dznJyu3btauSeocjNzdVDDz2k1NRUzZ49W7169aqze1fV7bffrs2bNys+Pr7Gtr+9+OKL1aVLF61atUrPP/98wD4VG1F88MEHnsvbgVQ8eJaVlXXQez/99JOWLl0a/oBDlJKSorvuukvNmzfXf//7X/388881fo+MjAwlJCSooKBAv/7660Hvf/bZZ9q/f3+N3zdcvXr1Unp6uv7zn//op59+ivRwgHqJIBaIkGuuuUbt27fXggULPIuW9+zZU2eccYZ8Pp8uueSSg2aIfvvtN1111VVat26dMjIyNGrUqBoZ2wknnKCnn3464JP0W7du1fDhw1VSUqKsrCzP5eyaNn78eE2aNEnNmze3IoD95ZdfdNlll+mhhx6SJD355JMBA8OqiImJ0cSJEyXJsy5pt27ddP7552vDhg0aNmzYQYX7pQNpKq+//rrzsJbkPmT01FNP+S2rb9myRZdddlmNBHj//e9/9eijjwbM5fzqq6+0a9cuxcXF1co/kOLj43XqqadKOvA7ZX7GZcuWacyYMTV+z6qIj4/XhAkT5PP5NHTo0IA52mVlZZo7d66+/fbbCIwQiDzSCYAISUxM1D333KMRI0YE3Yr2tdde01lnnaUFCxaoQ4cO6tu3r9q0aaPCwkLNnz9fO3bsUIsWLTR9+nQ1b968Rsa2atUqXXPNNbruuut03HHHqWPHjmrUqJE2bdqkBQsWqLS0VC1atNBbb71VJ9u4fvDBB7r//vslSUcccYSeeuqpgP3S09P18MMP+x3bsmWLhg4d6rzeuHGjc80TTzzROf7000+re/fuYY9txYoVzra35eXlKiws1IoVK7Rq1Sr5fD5lZGToySef1J/+9Kewrx3MOeeco/79+wctHTVlyhTt2rVLn3zyiY4++mh16dJFOTk58vl8ysvL07Jly1RSUqLly5erVatWkg5Upfj000/1/PPP6/PPP1f37t1VVFSkefPmqUOHDho6dKhmzJhRrbGXlJTopptu0i233KLjjjtORx55pOLj45WXl+cEZLfffrsyMjKqdR8v9913n7788ks9//zzmjdvno4//nht2rRJCxcu1EUXXaQvvviiXpTAGzNmjNavX6+HHnpIp5xyin73u9/piCOOUJMmTbR161YtXbpUu3bt0jPPPOP3uww0FASxQARdeumleuSRR/TDDz949mndurUWLFigF198UdOnT9eyZcv05ZdfqmnTpurYsaP++te/6rrrrqvREkJff/21/vWvf2nu3LlatWqV5syZoz179iglJUW9evXSwIEDdfXVV9fZAyXmjPDChQs963BmZWUdFMQWFxcHfIo/Pz/fbyawqk/bb9u2zXkILCEhQSkpKWrbtq0uvfRSDRw4UMOGDXMeiqpp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/9DkyZN12223RXpo9cq0adM0duxYTZgwQYsXL1aXLl00cOBA/frrr5EeWr00b948XXPNNfr22281e/ZslZaW6qyzztLevXsjPTQAqDMNssTW/v37lZ2drbvvvlujRo2K9HCs88knn2js2LGaPn26fve732nJkiXq2rVrpIdljYceekjPPPOMfvnll0gPpd7o3bu3evXqpSeffFKSVF5erszMTF177bXKzc2N8Ojqv/z8fLVs2VLz5s3TqaeeGunhAECdaJAzsYsXL9amTZsUGxurbt26qU2bNjrnnHP0448/Rnpo9d62bds0evRovfrqq2ratGmkh2OlwsJCtWjRItLDqDdKSkq0aNEiDRgwwDkWGxurAQMGaP78+REcmT0KCwslid8rAA1KgwxiK2bA7rrrLo0fP14fffSR0tLS1L9/fxUUFER4dPWXz+fTiBEjdOWVV6pnz56RHo6VVq9erSeeeEJXXHFFpIdSb2zfvl1lZWVq1aqV3/FWrVpp69atERqVPcrLy3XDDTfopJNOUufOnSM9HACoM1EVxObm5iomJibon4ocRUm6/fbbdf7556tHjx6aMmWKYmJi9M4770T4U9S9UL+3J554Qrt379a4ceMiPeSIC/U7M23atElnn322LrjgAo0ePTpCI0e0ueaaa/Tjjz/qrbfeivRQAKBONYr0AGrSTTfdpBEjRgTt06FDB23ZskWSdOyxxzrHExMT1aFDB61fv742h1gvhfq9zZ07V/Pnzz9oj/aePXvq4osv1ssvv1yLo6xfQv3OKmzevFmnnXaa+vbtq+eee66WR2eX9PR0xcXFadu2bX7Ht23bptatW0doVHYYM2aMPvroI3355Zdq165dpIcDAHUqqoLYjIwMZWRkHLJfjx49lJiYqJUrV+rkk0+WJJWWliovL09ZWVm1Pcx6J9Tv7fHHH9d9993nvN68ebMGDhyoadOmqXfv3rU5xHon1O9MOjADe9pppzkz/rGxUbUAUm0JCQnq0aOH5syZ45S5Ky8v15w5czRmzJjIDq6e8vl8uvbaazVjxgx98cUXysnJifSQAKDORVUQG6qUlBRdeeWVmjBhgjIzM5WVlaWHHnpIknTBBRdEeHT1V/v27f1eN2vWTJLUsWNHZoE8bNq0Sf3791dWVpYefvhh5efnO+8xy+gaO3ashg8frp49e+qEE07QY489pr179+ryyy+P9NDqpWuuuUZvvPGG3n//fSUnJzu5w6mpqWrSpEmERwcAdaNBBrHSgTJHjRo10qWXXqrffvtNvXv31ty5c5WWlhbpoSGKzJ49W6tXr9bq1asPCvQbYHU7TxdeeKHy8/N15513auvWreratas+/fTTgx72wgHPPPOMJKl///5+x6dMmXLINBcAiBYNsk4sAAAA7EZyHgAAAKxDEAsAAADrEMQCAADAOgSxAAAAsA5BLAAAAKxDEAsAAADrEMQCAADAOgSxAAAAsA5BLFADtmzZoosuukhHHXWUYmNjdcMNNwTs984776hTp05q3LixjjvuOH388cd1O1AAAKIEQSxQA4qLi5WRkaHx48erS5cuAft88803+vOf/6xRo0ZpyZIlGjJkiIYMGaIff/yxjkcLAID92HYWCEF+fr6OO+44XXfddbrtttskHQhK+/fvr08++URnnHGG07d///7q2rWrHnvsMb9rXHjhhdq7d68++ugj59iJJ56orl27avLkyXXyOQAAiBbMxAIhyMjI0EsvvaS77rpLCxcu1O7du3XppZdqzJgxfgFsMPPnz9eAAQP8jg0cOFDz58+vjSEDABDVGkV6AIAtzj33XI0ePVoXX3yxevbsqaSkJE2cODHk87du3apWrVr5HWvVqpW2bt1a00MFACDqMRMLhOHhhx/W/v379c477+j1119XYmJipIcEAECDRBALhGHNmjXavHmzysvLlZeXF9a5rVu31rZt2/yObdu2Ta1bt67BEQIA0DAQxAIhKikp0SWXXKILL7xQ9957r/7yl7/o119/Dfn8Pn36aM6cOX7HZs+erT59+tT0UAEAiHrkxAIhuv3221VYWKjHH39czZo108cff6yRI0c61QaWLl0qSdqzZ4/y8/O1dOlSJSQk6Nhjj5UkXX/99erXr58eeeQRDRo0SG+99ZYWLlyo5557LlIfCQAAa1FiCwjBF198oTPPPFOff/65Tj75ZElSXl6eunTpogceeEBXXXWVYmJiDjovKyvLL+3gnXfe0fjx45WXl6cjjzxSDz74oM4999y6+hgAAEQNglgAAABYh5xYAAAAWIcgFgAAANYhiAUAAIB1CGIBAABgHYJYAAAAWIcgFgAAANYhiAUAAIB1CGIBAABgHYJYAAAAWIcgFgAAANYhiAUAAIB1CGIBAABgnf8PfIHF6R9psnUAAAAASUVORK5CYII=", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAArEAAAL3CAYAAACd2x1cAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAABS7klEQVR4nO3dd3xUVf7/8fdAChBICBBKlpCEYkGR0ESsKCj2RVz1uzaiyNpwRSyLiiKuLmJb14ptwbaKin4VEJVFRVmRFSX+LFQl0rskFE1IMr8/+ObeM8PcMJNMMjmT1/PxyONxc+eWk5kQP57zvuf4/H6/XwAAAIBFGsW6AQAAAECkKGIBAABgHYpYAAAAWIciFgAAANahiAUAAIB1KGIBAABgHYpYAAAAWIciFgAAANahiAUAAIB1KGKBWpSTkyOfzyefz6c333zT87jBgwfL5/Np6tSpAfvz8/Pl8/mUn59f5X2mTp0qn8+nnJwcSdInn3zi3DeSr7vuusu5ZkVFhaZOnaqTTz5Zbdu2VWJiolq1aqWDDjpIZ599tu6//34VFhZW742J0N69ezV37lzdfPPN6tevn1q2bKnExES1b99eZ599tmbNmuV57po1a/T000/rT3/6k/r06aPk5GT5fD5dccUVNWrTXXfdtd/716RJE7Vt21Y9e/ZUfn6+XnnlFf3222/Vur75GbZv3167d+8OedzatWud42Kp8v0wf4ck9+c40O9wTVT+/lf11bJly1q7f31T+Xenrv59ArGSEOsGAA3F7bffrqFDhyohofb/2bVv317Dhw/fb39BQYG++eYbtWvXTqeeeup+r+fl5UmSdu/erbPOOksff/yxJKl37946/vjj1bhxY/300096//33NWPGDDVr1kyjRo2q1Z9FkubNm6eTTz5Z0r6f7dhjj1VKSop++OEHzZgxQzNmzNCf/vQnTZ48eb9ibvr06brhhhtqrW3me1leXq6ioiItXbpUL7zwgl544QWNHj1ajz32mP7nf/6n2vfYtGmTHnroId15553RanZcSklJ0R/+8IeQrzVr1qyOWwOgtlHEAnWgWbNmWr58uZ577jldddVVtX6/Qw45ZL9eXWlfb9k333zj+bp53Mcff6zMzEzNnj1bRxxxRMDrRUVFmj59ujp06BDllofWqFEjnXvuubr++ut13HHHBbw2bdo0XXTRRXrmmWd0zDHH6NJLLw14PTc3V9ddd5169+6t3r176/XXX9e9994btbZ5vZc//vij7rrrLr388sv64x//qO3bt+uaa66J+PpNmzbVb7/9pgcffFBXX321MjIyotDq+NSmTZsqf68BxBfiBEAduP766yVJd999t/bs2RPj1hzYa6+9JkkaP378fgWsJKWlpenyyy/XaaedViftOemkk/Tmm2/uV8BK0gUXXOAMVb/44ov7vf773/9ejz76qPLz83XEEUfUSU+4JHXp0kUvvfSSbr75Zkn7fgd++umniK+TmZmpP/zhD9q5c6fuueeeaDcTAKxFEQvUgdNPP10nnHCCNmzYoL///e+xbs4Bbdq0SZLUtm3bGLckPL169ZK0L/9a39x7773KzMxUWVlZtT/7e++9VwkJCZo8ebJWrVoV0bllZWV67rnnNHDgQLVq1UrJycnKzc3V1Vdf7fl+vfXWW7riiit0+OGHKz09XU2aNFFubq4uv/xyLVu2rFo/Qyj//ve/ddZZZ6ldu3ZKTExUenq6unXrposvvliffvpp1O5jKiwsDMiPh+KVKTX3f/zxxzrllFOUnp6upk2bqnfv3iH/J0qSBg4cKJ/Pp08++UQFBQUaNmyY2rRpo+TkZHXv3l0PPfSQ/H6/Z3vmzp2rYcOGqUOHDkpKSlLbtm11zjnnaMGCBdV5C4C4QREL1JFJkyZJku6//35t27Ytxq2pWqdOnSRJkydPVklJSYxbc2ArVqyQpDqLN0QiMTFRF1xwgSRpzpw51bpGt27dNHLkSJWWlmrcuHFhn7dz506dfPLJGjlypL766isdccQROvvss5WcnKzJkyerV69eWrx48X7nnX/++Xr11VfVtGlTnXTSSRoyZIgaNWqkKVOmqE+fPvr888+r9XOYXnjhBZ1yyimaNWuWcnNzde655+r4449XamqqXnvtNb311ls1vkdt+ec//6lBgwZp+/btOvXUU5WXl6fFixdr+PDheuSRRzzP++CDD9S/f38tXbpUJ598sgYMGKDly5frpptu8sxt33TTTRo8eLDeeecdderUSUOHDlXnzp31zjvv6LjjjtOUKVNq6acELOAHUGuys7P9kvyfffaZ3+/3+4cNG+aX5L/hhhsCjhs0aJBfkn/KlCkB+4cPH+6X5B8+fHiV95kyZYpfkj87O7vK48aPH++X5D/hhBOqPO7vf/+7X5Jfkr9du3b+kSNH+p9//nn/119/7S8rK6vy3Lq2YcMGf1paml+S/9FHHz3g8ZXvwYgRI2p033DfS7/f73/55Zed93Pv3r1hXf/jjz/2S/J36dLF7/fv+zlTUlL8Pp/Pv3jxYue4NWvWONcOduGFF/ol+c8880z/pk2bAl6r/Iy7deu232f62muv+Xft2hWwr6Kiwv/EE0/4JfkPO+wwf0VFRcDrle/H+PHjw/r5cnNzA/5tmDZt2uT/+uuvw7qO3x/+77/f7/evWrXqgMdW/rtdtWpVyP2JiYn+GTNmhGxDWlqaf8+ePQGvnXDCCc5nNHny5IDX5s6d6/f5fP7GjRv716xZE/DaM88845fk79q1q/+bb74JeG3evHn+Fi1a+JOSkvzLly8Pq/1AvKEnFqhDf/vb35SQkKAnn3xSP//8c6yb42n06NG69957lZKSok2bNunZZ5/ViBEj1Lt3b6Wnp2v48OFRHVaurrKyMl188cUqKipSjx49dOWVV8a6SSG1adPG2d6+fXu1rtG+fXvdcMMN8vv9Gjt27AGPX7JkiV599VVlZmbqX//6137RkNGjR+v000/XihUrNHv27IDXLrjgAqWkpATs8/l8uuaaazRgwAB9//33WrJkSbV+jkqbNm1SWlqajj322P1ea9u2rRMRicTPP//sOcXWJ598UqP2mq677jqdeeaZAfvy8/N1yCGHqKioSIsWLQp53rBhw/b7Ha3s6S4vL3dmA5H2TXFXOV3Za6+9tl82/fjjj9cdd9yh0tJSPf3001H4qQD7UMQCdejggw/W5ZdfrpKSEt1xxx2xbk6VbrvtNq1du1ZTp07VZZddpp49e6px48bauXOnXnzxRfXq1UvvvfdeTNt41VVXae7cuWrdurXefPNNJSUlxbQ9XioqKpztmsznevPNN6tNmzb64IMPAgqeUN577z35/X6ddtppatGiRchjBg4cKEkh4wErV67U448/rtGjR2vEiBHKz89Xfn6+k5eu6f/EHHnkkSoqKtKll16qr776KuA9qq6UlBQNHz485Ff79u1rfP1KZ511Vsj9hx56qCRp3bp1NT5v8eLFWr9+vbp06aI+ffqEPK+qzw9oCJhiC6hjldMuvfLKK7rppptCPv1fqbLg8Vfx0If5erQnvG/ZsqVTBEjSL7/8orffflvjxo3Thg0bNHz4cP38888HnINz69atuummm/bbf8ghh4TVqxjK9ddfr+eff17p6emaM2eODjrooGpdJ5TnnntO8+fP32//2LFjdcghh0R8va1bt0ra9/mkp6dXu12pqakaN26cRo8erb/85S9auHCh57GVMyE8//zzev7556u87pYtW5zt8vJyjRo1Sk8//XSVv3fFxcURtj7Qk08+qTPPPFMvvfSSXnrpJbVo0UL9+vXTSSedpEsuucTJZUeirqbY8mpbamqqJHkucBHJeZWf348//njAf9fm5wc0JBSxQB3r0KGDrr/+ek2cOFG33nprlatNVQ7peq3WVGnXrl2SpObNm0evoSGkp6fr8ssvV69evdS7d29t3bpV//nPf5yFCKpq3wsvvLDf/hNOOKFaReyNN96oRx99VC1bttSHH35YraHnqsyfPz9keyuHjCP19ddfS9pXtNd0iq+rr75ajzzyiL788ku9+eabGjBgQMjjKns28/Ly1LNnzyqv2b9/f2f7H//4hyZPnqz27dvr4Ycf1tFHH6127dqpSZMmkqQLL7xQr7766gH/x+pADj30UC1btkwffvihPvroI33++ef67LPP9NFHH+nuu+/W888/r4svvrhG96iuA/UKN2pUvUHMSM6rbEP79u01ZMiQKo814ypAQ0IRC8TAX/7yFz3zzDN67733qpxKqLLnZuXKlVVer/Lp/Or0XlVHr1691KZNG23dutXpZaxKTk5OjYueSrfccosefvhhpaWl6cMPP1Tfvn2jcl3T1KlTo9ajt3fvXr3++uuSpFNOOaXG10tKStJf//pXXXLJJbr99tv14YcfhjwuKytLknTMMcfo8ccfD/v6lW19+umndfbZZ+/3euXvWjQkJCTo9NNP1+mnny5pX+/uww8/rAkTJujKK6/UOeecs182t6YqIyc7d+4M+frevXu1YcOGqN6zOio/v9atW7OAA+CBTCwQA2lpabrtttsk7SvKvJx00kmSpP/3//6fZyG7d+9evfvuuwHH19SBCs4dO3Y4w8kdO3aMyj3DMXbsWD3wwANKS0vTnDlz1K9fvzq7d3XdfvvtWr9+vRITE6O2/O1FF12knj17asWKFXr22WdDHlO5EMW7777rObwdSuWDZ9nZ2fu99v3336ugoCDyBocpNTVVd911l1q2bKk9e/Zo+fLlUb9HRkaGkpKStH37dm3evHm/1z/44AOVlZVF/b6R6tevn9q0aaMffvhB33//faybA9RLFLFAjFx77bXq1KmTFi5c6Dlped++fTVo0CD5/X5dfPHF+/UQ/frrr7r66qv1888/KyMjQyNGjIhK24488kg9+eSTIZ+k37hxo4YPH67S0lJlZ2d7DmdH27hx4zRp0iS1bNnSigL2p59+0qWXXqoHHnhAkvT444+HLAyrw+fzaeLEiZLkOS9pr169dO6552rNmjUaNmzYfhP3S/tiKq+88orzsJbkPmT0xBNPBAyrb9iwQZdeemlUCrw9e/bo4YcfDpnl/Oyzz7Rjxw41bty4Vv4HKTExUccff7ykfb9T5s/4zTffaNSoUVG/Z3UkJiZq/Pjx8vv9Ouecc0JmtMvLy/XRRx/piy++iEELgdgjTgDESHJysu6++27l5+dXuRTtyy+/rFNOOUULFy5U586ddfTRR6tDhw4qKirSggULtG3bNrVq1UrTp09Xy5Yto9K2FStW6Nprr9Wf//xn9ejRQ126dFFCQoLWrVunhQsXau/evWrVqpVee+21OlnG9d1339W9994rSerataueeOKJkMe1adNGDz74YMC+DRs26JxzznG+X7t2rXPNo446ytn/5JNPqnfv3hG3benSpc6ytxUVFSoqKtLSpUu1YsUK+f1+ZWRk6PHHH9f5558f8bWrctppp2ngwIFVTh01ZcoU7dixQ7Nnz9bBBx+snj17Kjc3V36/X4WFhfrmm29UWlqqJUuWqF27dpL2zUrx/vvv69lnn9XHH3+s3r17q7i4WPPmzVPnzp11zjnn6O23365R20tLS3XjjTfq5ptvVo8ePdStWzclJiaqsLDQKchuv/12ZWRk1Og+Xu655x59+umnevbZZzVv3jwdccQRWrdunRYtWqQLL7xQn3zySb2YAm/UqFFavXq1HnjgAR133HE67LDD1LVrVzVt2lQbN25UQUGBduzYoaeeeirgdxloKChigRi65JJL9NBDD+nbb7/1PKZ9+/ZauHChnn/+eU2fPl3ffPONPv30UzVr1kxdunTRn/70J/35z3+O6hRC8+fP17///W999NFHWrFihebOnatdu3YpNTVV/fr105AhQ3TNNdfU2QMlZo/wokWLPOfhzM7O3q+ILSkpCfkU/5YtWwJ6Aqv7tP2mTZuch8CSkpKUmpqqzMxMXXLJJRoyZIiGDRvmPBQV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s2bNYt0cKxUVFalVq1axbka9UVpaqq+++kqDBw929jVq1EiDBw/WggULYtgyexQVFUkSv1cAGpQGWcRW9oDdddddGjdunGbOnKn09HQNHDhQ27dvj3Hr6i+/36/8/HxdddVV6tu3b6ybY6WVK1fqscce05VXXhnrptQbW7duVXl5udq1axewv127dtq4cWOMWmWPiooKjR49Wsccc4wOP/zwWDcHAOpMXBWxY8eOlc/nq/KrMqMoSbfffrvOPfdc9enTR1OmTJHP59Mbb7wR45+i7oX7vj322GPauXOnbr311lg3OebCfc9M69at06mnnqrzzjtPI0eOjFHLEW+uvfZafffdd3rttddi3RQAqFMJsW5ANN14443Kz8+v8pjOnTtrw4YNkqTu3bs7+5OTk9W5c2etXr26NptYL4X7vn300UdasGDBfmu09+3bVxdddJFeeOGFWmxl/RLue1Zp/fr1OvHEE3X00UfrmWeeqeXW2aVNmzZq3LixNm3aFLB/06ZNat++fYxaZYdRo0Zp5syZ+vTTT9WxY8dYNwcA6lRcFbEZGRnKyMg44HF9+vRRcnKyli1bpmOPPVaStHfvXhUWFio7O7u2m1nvhPu+Pfroo7rnnnuc79evX68hQ4Zo2rRp6t+/f202sd4J9z2T9vXAnnjiiU6Pf6NGcTUAUmNJSUnq06eP5s6d60xzV1FRoblz52rUqFGxbVw95ff7dd111+ntt9/WJ598otzc3Fg3CQDqXFwVseFKTU3VVVddpfHjxysrK0vZ2dl64IEHJEnnnXdejFtXf3Xq1Cng++bNm0uSunTpQi+Qh3Xr1mngwIHKzs7Wgw8+qC1btjiv0cvoGjNmjIYPH66+ffvqyCOP1COPPKLdu3frsssui3XT6qVrr71W//rXv/TOO++oRYsWTnY4LS1NTZs2jXHrAKBuNMgiVto3zVFCQoIuueQS/frrr+rfv78++ugjpaenx7ppiCNz5szRypUrtXLlyv0K/QY4u52nCy64QFu2bNGdd96pjRs3Ki8vT++///5+D3thn6eeekqSNHDgwID9U6ZMOWDMBQDiRYOcJxYAAAB2I5wHAAAA61DEAgAAwDoUsQAAALAORSwAAACsQxELAAAA61DEAgAAwDoUsQAAALAORSwAAACsQxELRMGGDRt04YUX6qCDDlKjRo00evTokMe98cYbOuSQQ9SkSRP16NFD7733Xt02FACAOEERC0RBSUmJMjIyNG7cOPXs2TPkMZ9//rn++Mc/asSIEVq8eLGGDh2qoUOH6rvvvqvj1gIAYD+WnQXCsGXLFvXo0UN//vOfddttt0naV5QOHDhQs2fP1qBBg5xjBw4cqLy8PD3yyCMB17jgggu0e/duzZw509l31FFHKS8vT5MnT66TnwMAgHhBTywQhoyMDP3zn//UXXfdpUWLFmnnzp265JJLNGrUqIACtioLFizQ4MGDA/YNGTJECxYsqI0mAwAQ1xJi3QDAFqeffrpGjhypiy66SH379lVKSoomTpwY9vkbN25Uu3btAva1a9dOGzdujHZTAQCIe/TEAhF48MEHVVZWpjfeeEOvvPKKkpOTY90kAAAaJIpYIAI//vij1q9fr4qKChUWFkZ0bvv27bVp06aAfZs2bVL79u2j2EIAABoGilggTKWlpbr44ot1wQUX6K9//auuuOIKbd68OezzBwwYoLlz5wbsmzNnjgYMGBDtpgIAEPfIxAJhuv3221VUVKRHH31UzZs313vvvafLL7/cmW2goKBAkrRr1y5t2bJFBQUFSkpKUvfu3SVJ119/vU444QQ99NBDOuOMM/Taa69p0aJFeuaZZ2L1IwEAYC2m2ALC8Mknn+jkk0/Wxx9/rGOPPVaSVFhYqJ49e+q+++7T1VdfLZ/Pt9952dnZAbGDN954Q+PGjVNhYaG6deum+++/X6effnpd/RgAAMQNilgAAABYh0wsAAAArEMRCwAAAOtQxAIAAMA6FLEAAACwDkUsAAAArEMRCwAAAOtQxAIAAMA6FLEAAACwDkUsAAAArEMRCwAAAOtQxAIAAMA6FLEAAACwzv8HMpRE5SOI1+UAAAAASUVORK5CYII=", "text/plain": [ "Figure(PyObject
)" ] @@ -5793,13 +585,13 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 19, "id": "fe4c8b70", "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAArEAAAL3CAYAAACd2x1cAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAABRYklEQVR4nO3deXhU5f3//9eEkEAggQBhDwRwQ6FBdlxBUFBcqEhtXQqIXOpXbBWXhioirS1ScCnaaq0i6kcLUkVUFAUsKAqKLCqKCEgA2ZdAwmICZH5/+Muc+4Q5w0y2mXvyfFwX13XmzFneM0F8577f5337/H6/XwAAAIBFEqIdAAAAABApklgAAABYhyQWAAAA1iGJBQAAgHVIYgEAAGAdklgAAABYhyQWAAAA1iGJBQAAgHVIYgEAAGAdkligCmVlZcnn82natGkhj+vdu7d8Pp8eeugh1/6FCxfK5/MF/qxcuTLkdc4666zAsTfffLPncUePHtULL7ygQYMGqVWrVqpdu7ZSUlLUtm1bXXPNNXrllVdUVFQU7scsl127dumll17Sddddp1NPPVW1atVSSkqKzjjjDP3ud79Tbm6u57kfffSR/vrXv2rw4MGB79rn82nx4sXlism8ls/nU0JCglJTU9WyZUv16dNH99xzjz7//PMyX3/YsGGBa48aNcrzuIcfflg+n0/Dhg0r870qQsn3UfpnUfI5Fi5cWGn3LvlvI9SfO++8s9LuH0tK/j3o3bt3tEMBoiIx2gEAKLupU6fqySefDPre0qVL9e233570GitWrNA111yjjRs3yufzKTs7W927d1dCQoJyc3P15ptv6vXXX9f999+vb7/9VikpKRX9MVxGjx6tV155RQkJCerQoYOuvPJKHTp0SMuWLdOTTz6pqVOnatasWbr44otPOPd3v/udvvzyy0qL7dxzz9Upp5wiSTpy5Ij27NmjlStXauHChXr00Ud14YUXaurUqWrbtm2Z7/Hss8/qrrvuUrt27Soq7LiUnZ2tTp06BX2ve/fuVRsMgKggiQUs1KpVK/3000969dVXNXnyZCUnJ59wzNSpUyVJ3bp107Jly4JeZ8WKFTr//PN1+PBhXX755ZoyZYratGnjOmb37t16/PHH9eijj6qoqKjSk9gGDRpo/PjxGjFihFq0aBHYf/DgQY0cOVLTp0/Xr3/9a61fv17p6emucy+++GL98pe/VOfOndW5c2ede+652rRpU4XFdvPNN58wCur3+/Xee+/pzjvv1KJFi3TOOedoyZIlJ3yP4UhJSdHhw4d1//33a/r06RUUdXwaNGjQCTMVAKoXygkAC9WsWVM33HCD9u3bpzfffPOE9w8fPqzp06erRYsW6t+/f9BrHD16VEOGDNHhw4c1aNAgzZ49O2jilZGRob/+9a9avHhx0GS5ok2ZMkUPPvigK4GVpLp16+r5559Xamqq9u3bpzlz5pxw7qRJkzRu3DhdccUVJ5xfWXw+ny677DJ9/vnnOvXUU7Vz586QpRuhjBgxQnXr1tVrr72mFStWVHCkABBfSGIBS910002SnBFX08yZM1VQUKDf/va3qlGjRtDzX331Vf3www9KSkrS008/rYSE0P8cdOvWTbVr1y5/4OWQkpKi008/XZK0ZcuWqMZSWv369fXEE09Ikj788EMtX7484ms0btxYd999t/x+v/7whz9EfP62bds0evRotW/fXikpKUpNTVW3bt301FNP6dixYyccv3v3bk2ZMkWXXXaZ2rRpo9q1aystLU1du3bVxIkT9dNPP0UcQzCFhYWaNGmSunTpotTUVCUlJalp06bq1q2b7rvvPu3bt69C7lPaQw89FLS2vIRXTam5/+jRo5o4caLOOuss1a5dWw0bNtTVV1+tNWvWnHC93Nxc+Xw+ZWVlye/369lnn1WXLl1Up04d1atXT5dccomWLFniGe+RI0f06KOPqmfPnqpfv75q1aql008/Xffdd5/27t1bnq8CiEsksYClzjrrLHXv3l3z588/IaF7/vnnJUnDhw/3PH/27NmSpP79+6tp06aVF2gFOnr0aOBhombNmkU3mCAuvfRSNWjQQJI0b968Ml3jnnvuUePGjTV//vyIrvHRRx+pQ4cOevzxx/XTTz/p4osv1rnnnqsNGzbojjvu0MCBA3X06FHXOe+//75+//vf66uvvlLr1q01aNAgde/eXWvXrlVOTo4uuugiFRYWlulzlCguLtbAgQN13333af369Tr//PN1zTXXqGPHjtq9e7cmTZqkzZs3l+seleXo0aO67LLL9Kc//UmtWrXSwIEDVadOHc2aNUvnnHNOyIcMhw8frlGjRql+/fq6/PLL1bRpU82bN099+vTRZ599dsLx27ZtU48ePXTPPfdo3bp16tatmy677LLALwBdu3at0NIYIB6QxAIWGzFihIqLi13dDtatW6ePP/5YF1xwgU499VTPc7/44gtJP4+w2uL555/Xnj17VLt2bV166aXRDucEPp9PnTt3liR98803ZbpG3bp19cADD0iScnJy5Pf7T3rOjh07dPXVV2v//v365z//qQ0bNmj27NmaO3eu1q1bp4suukgffPCBJkyY4DqvS5cuWrJkiX788UctXLhQ//nPfzR//nxt3rw5MGo4ZcqUsGOfNm2a/H6/a2Rz8eLFWrBggc4++2z9+OOPevfdd/Xqq69q3rx5ys3N1bJly5SZmRn2ParSp59+qr1792rDhg1677339N///lfff/+9+vfvr/3795/wfZbYtGmTFi5cqNWrV2vBggWaMWOGvv32W910000qLCzUgw8+6Dre7/frV7/6lb7++muNGDFCubm5mjdvnt544w2tX79ed999t3Jzc0P+UgpURySxQBQMHz48ZIugRYsWhXWdX//610pJSQkkD5JTXlBSbuBl9+7dkn6ewrbB119/rXvvvVeSNHbsWDVp0iTKEQXXqFEjSSrX9O+tt96qtm3basWKFZoxY8ZJj3/iiSe0d+9e3X777brttttcpSENGzbUSy+9pJo1a+qpp55yJcXt27dXz549T7heenp6oOvFzJkzy/w5JGnnzp2SpPPPP1+pqaknvN+1a1c1bNgw4uuOHz8+6H87WVlZ5YrX5PP59MILL7hmKmrVqqXx48dLkubPn+957pNPPqnTTjst8LpGjRr6y1/+IklatGiRa1T8/fff1yeffKJOnTrpmWeecX1PiYmJ+tvf/qYOHTrof//7n1avXl1hnw+wHd0JgCgwWzUFM3fu3MD//ENJS0vT4MGD9fLLL2vhwoW64IIL9NJLLyk1NVVDhgypyJCj6scff9QVV1yhgwcP6sorr1ROTk60Q/JUXFws6ecEqKxq1qyphx9+WNddd50eeOABDR48WDVr1vQ8vuQht2uvvTbo+y1atNCpp56qb7/9VuvWrXMlV8ePH9fChQv16aefavv27Tpy5Ij8fn8g2V27dm2ZP4ckde7cWTVq1NDUqVN12mmn6eqrr66QUhCvFlslv0RUhFatWik7O/uE/e3bt5ckbd26Neh5iYmJGjBgwAn7mzZtqvT0dOXl5Wnv3r2B5Ljk5zd48GAlJp74v+WEhARdcMEFWr16tT799FN16NChzJ8JiCcksUAUBGvVZOrdu3dYSaz084jryy+/rKlTp+rw4cPatm2bbr755pO2wsrIyNCWLVu0a9euSEI/qTfffDNox4Sbb75Z5513XsTX27Fjh/r27atNmzapf//+eu2118qVIJYW7OfQqFEjTZ48uUzX27NnjyQFamPL6te//rUmTZqklStX6l//+lfIRRB++OEHST+Pdp7M7t27A0nsunXr9Mtf/jJk6UN+fn6Ekbu1a9dOjz/+uO69916NGjVKo0aNUuvWrdWrVy9dfvnlGjJkiJKSkiK+blW02GrVqlXQ/WlpaZLkWS/crFkzz1860tLSlJeX53poruTnN3bsWI0dOzZkTCUzKABIYgHrXXjhhWrXrp1ef/117dixQ9LJSwmkn+sht2zZ4tlDtqxWrVqlF1988YT9vXv3jjiJ3bVrly666CJ9//336tevn958880Kb/MVLNbWrVuXKYn1+/2BVdQ6duxYrrh8Pp8eeeQR9e/fX3/+859D/tJTMvp7zTXXqE6dOiGva07dX3PNNfrmm290+eWX67777tOZZ56ptLQ01axZU0VFRRX2Xd9xxx361a9+pbfeekuLFy/W4sWLNX36dE2fPl3jxo3Txx9/HJUH9Uq+Ny8n69hRUeeVxHHeeeeddJGLs846q0wxAfGIJBawXMkypGPHjtX8+fPVvn179erV66TnXXXVVXrzzTf1/vvva+fOnRVWY/rQQw9VyAjZ7t27ddFFF2nNmjXq27ev3nrrLdWqVav8AZYSzoNT4Xr33XeVl5cnSbrkkkvKfb1LLrlEffv21YIFC/Too496tkvLzMzUunXr9Ic//EFdu3YN69rfffedvvrqKzVu3FizZs06YRp73bp15Y7f1KRJE40cOVIjR44M3P+mm27SkiVLlJOTE/SXifIqGeEtKCgI+n6sPO1f8mDbVVddpXvuuSfK0QD24MEuIA4MGzZMGRkZatiwoW655Zawzrn++uuVlZWloqIi3XbbbScdlVq+fLmOHDlSEeGe1J49e3TRRRfpm2++Ud++ffX2229HvUftyRw4cEB33XWXpJ9XDvNaEjVSEydOlM/n06OPPuo5lVzSqeG1114L+7olvVmbN28etA7z//7v/8oQbfjOOOOMQC/cVatWVco9Sha8CNbTVVLQBTOioeTnN3PmzAr9pQqIdySxQBxo2bKldu3apT179uj3v/99WOfUrFlTr732mmrVqqVZs2Zp0KBB2rhx4wnH7du3T2PHjtW5555b7p6h4di3b5/69u2r1atXq1+/fjGfwJYsO9u9e3etW7dOzZo107///e8Ku36XLl00ZMgQFRQU6Lnnngt6zL333qv69evrscceCywPXNrGjRtdielpp52mGjVq6Ouvv9bChQtdx7799tt6/PHHKyT+Dz/8UO++++4JPWr9fr/eeecdST+Xb1SGiy66SAkJCXr//fddHT/8fr+mTJmi119/vVLuG6mrrrpK3bp10+eff67hw4cH/WUlLy9PzzzzTNBFK4DqinICoBrr1q2bPvroIw0ZMkRvv/223nnnHZ199tlq27atEhIStGnTJn3xxRc6fvy42rZtWyXLzt5888366quv5PP51KBBA912221Bjxs0aJAGDRrk2vfcc8+5Er3t27dLkm655ZZA26JmzZpp1qxZZYrtueeeCyR8hYWF2rNnj1asWBEY1ezdu7emTp1a4UnZX/7yF82aNUuHDx8O+n7Lli01e/ZsDR48WPfcc0+gJVOzZs104MABrVmzRhs2bFCPHj10ww03SPr54bVRo0bp73//u/r27avzzz9fzZs319q1a7VixQo98MADevjhh8sd+1dffaW77rpLaWlp6ty5s5o3b64jR45oxYoV2rRpk+rVq6c//elP5b5PMJmZmbrjjjtcn7FBgwb68ssvtXnzZuXk5OiRRx6plHtHIiEhQW+++aYGDhyoF198Uf/973+VnZ2tVq1aqaioSD/88IO+/vprHT9+XMOGDQs6cg5UR/yXAFRz3bp10/fff6+XX35Zs2fP1ooVK/TNN9/I5/OpWbNm+uUvf6nBgweftM1TRSlJCP1+f8jp8aysrBOS2B9//DHoakjffvttYLs8CeYnn3yiTz75RJICS4l27NhRXbt21bXXXltpC0eccsopGjlypP75z396HnPBBRfom2++0VNPPaU5c+Zo2bJlKiwsVOPGjdWqVSvdcMMNGjx4sOucxx9/XL/4xS/0z3/+U8uXL9eqVavUsWNHTZ8+Xddee22FJLFXXHGFDhw4oI8//ljr1q3T0qVLVbt2bWVmZionJ0e33367WrZsWe77eHn88cfVqlUrPffcc/r0009Vt25dnXvuuXrttdeUn58fE0ms9HNZx9KlSzVt2jTNmDFDX331lT7//HM1aNBAzZs316233qorr7yyUurCAVv5/BTgAAAAwDLUxAIAAMA6JLEAAACwDkksAAAArEMSCwAAAOuQxAIAAMA6JLEAAACwDkksAAAArEMSCwAAAOuQxAIAAMA6JLEAAACwDkksAAAArEMSCwAAAOuQxAIAAMA6JLEAAACwDkksAAAArEMSCwAAAOuQxAIAAMA6JLEAAACwDkksAAAArEMSCwAAAOuQxAIAAMA6JLEAAACwDkksAAAArEMSCwAAAOuQxAIAAMA6JLEAAACwDkksAAAArEMSCwAAAOuQxAIAAMA6JLEAAACwDkksAAAArEMSCwAAAOuQxAIAAMA6JLEAAACwDkksAAAArEMSCwAAAOuQxAIAAMA6JLEAAACwDkksAAAArEMSCwAAAOuQxAIAAMA6JLEAAACwDkksAAAArEMSCwAAAOuQxAIAAMA6JLEAAACwDkksAAAArEMSCwAAAOuQxAIAAMA6JLEAAACwDkksAAAArEMSCwAAAOuQxAIAAMA6JLEAAACwDkksAAAArEMSCwAAAOuQxAIAAMA6JLEAAACwDkksAAAArEMSCwAAAOuQxAIAAMA6JLEAAACwTmK0A6hKxcXF2rZtm1JTU+Xz+aIdDgCUm9/vV0FBgZo3b66EBMYlAFQf1SqJ3bZtmzIzM6MdBgBUuC1btqhly5bRDgMAqky1SmJTU1Ml/fyPfVpaWpSjAYDyy8/PV2ZmZuDfNwCoLqpVEltSQpCWlkYSCyCuUCIFoLqhgAoAAADWIYkFAACAdUhiAQAAYB2SWAAAAFiHJBYAAADWIYkFAACAdUhiAQAAYB2SWAAAAFiHJBYAAADWIYkFAACAdUhiAQAAYJ3EaAcAILqycuYEtnMfGRjFSAAACB8jsQAAALAOSSwAAACsQxILAAAA65DEAgAAwDoksQAAALAOSSwAAACsQxILAAAA65DEAgAAwDoksQAAALAOSSwAAACsQxILAAAA65DEAgAAwDoksQAAALAOSSwAAACsQxILAAAA65DEAgAAwDoksQAAALAOSSwAAACsQxILAAAA65DEAgAAwDoksQAAALAOSSwAAACsQxILAAAA65DEAgAAwDoksQAAALAOSSwAAACsQxILAAAA65DEAgAAwDoksQAAALAOSSwAAACsQxILAAAA65DEAgAAwDoksQAAALAOSSwAAACsQxILAAAA6yRGOwAAsSMrZ05gO/eRgVGMBACA0BiJBQAAgHVIYgEAAGAdklgAAABYhyQWAAAA1iGJBQAAgHVIYgEAAGAdklgAAABYhyQWAAAA1iGJBQAAgHVIYgEAAGAdklgAAABYhyQWAAAA1kmMdgAAYlNWzpzAdu4jA6MYCQAAJ2IkFgAAANYhiQUAAIB1SGIBAABgHZJYAAAAWIcHu4BqyHxoCwAAGzESCwAAAOuQxAI4qaycOYzeAgBiCuUEAMJG71gAQKxgJBYAAADWIYkFAACAdUhiAQAAYB2SWAAAAFiHJBYAAADWIYkFAACAdUhiAQAAYB2SWAAAAFiHJBYAAADWYcUuAOXGSl4AgKrGSCwAAACsw0gsUE2Yo6UAANiOkVgAAABYhyQWAAAA1iGJBQAAgHVIYgEAAGAdklgAAABYh+4EQByibysAIN4xEgsAAADrkMQCAADAOiSxAAAAsA41sQAqFPW4AICqwEgsAAAArEMSCwAAAOtQTgDECXMaPx7vBwCAiZFYAAAAWIckFgAAANYhiQUAAIB1SGIBAABgHZJYAAAAWIckFgAAANYhiQUAAIB1SGIBAABgHZJYAAAAWIcVuwDLmCtl5T4yMIqRAAAQPYzEAgAAwDoksQAAALAOSSwAAACsQ00sEOfMGloAAOIFI7EAAACwDkksAAAArEMSCwAAAOuQxAIAAMA6JLEAAACwDkksAAAArEMSCwAAAOuQxAIAAMA6JLEAAACwDkksAAAArEMSCwAAAOuQxAIAAMA6JLEAAACwDkksAAAArEMSCwAAAOuQxAIAAMA6JLEAAACwTmK0AwBQdlk5c6IdAgAAUcFILAAAAKxDEgsAAADrkMQCAADAOiSxAAAAsA5JLAAAAKxDEgsAAADrkMQCAADAOiSxAAAAsA5JLAAAAKxDEgsAAADrkMQCAADAOiSxAAAAsA5JLAAAAKyTGO0AALhl5cwJbOc+MjCKkQAAELsYiQUAAIB1SGIBAABgHZJYAAAAWIckFgAAANbhwS7AEuYDXwAAVHeMxAIAAMA6JLEAAACwDkksAAAArEMSCwAAAOvwYBeASscqZACAisZILAAAAKzDSCyASkNbMABAZWEkFgAAANZhJBaIYYxkAgAQHCOxAAAAsA5JLAAAAKxDEgsAAADrkMQCAADAOiSxAAAAsA5JLAAAAKxDEgsAAADrkMQCAADAOiSxAAAAsA5JLAAAAKxDEgsAAADrkMQCAADAOiSxAAAAsA5JLAAAAKxDEgsAAADrkMQCAADAOiSxAAAAsA5JLAAAAKxDEgsAAADrkMQCAADAOiSxAAAAsA5JLAAAAKxDEgsAAADrkMQCAADAOiSxAAAAsA5JLAAAAKyTGO0AAEhZOXOiHQIAAFZhJBYAAADWIYkFAACAdUhiAQAAYB2SWAAAAFiHJBYAAADWIYkFAACAdUhiAQAAYB2SWAAAAFiHxQ4AVClzYYfcRwZGMRIAgM0YiQUAAIB1GIkFooSlZgEAKDtGYgEAAGAdklgAAABYhyQWAAAA1iGJBQAAgHVIYgEAAGAdklgAAABYhyQWAAAA1iGJBQAAgHVIYgEAAGAdVuwCEBPMFcxyHxkYxUgAADYgiQUQNSy9CwAoK8oJAAAAYB2SWAAAAFiHJBYAAADWIYkFAACAdUhiAQAAYB2SWAAAAFiHJBYAAADWIYkFAACAdUhiAQAAYB1W7AKqECtUAQBQMRiJBQAAgHVIYgEAAGAdklgAAABYhyQWAAAA1iGJBQAAgHVIYgEAAGAdklgAAABYhyQWAAAA1mGxA6AKsMgBAAAVi5FYAAAAWIckFgAAANYhiQUAAIB1SGIBAABgHR7sAioJD3MBAFB5GIkFAACAdUhiAQAAYB2SWAAAAFiHJBYAAADWIYkFAACAdUhiAQAAYB2SWAAAAFiHJBYAAADWIYkFAACAdVixC0DMMVc7y31kYBQjAQDEKpJYoJxYXhYAgKpHOQEAAACsw0gsUAaMvladku+asgIAgImRWAAAAFiHJBYAAADWIYkFAACAdUhiAQAAYB2SWAAAAFiHJBYAAADWIYkFAACAdUhiAQAAYB2SWAAAAFiHJBYAAADWIYkFAACAdUhiAQAAYB2SWAAAAFiHJBYAAADWIYkFAACAdUhiAQAAYB2SWAAAAFiHJBYAAADWIYkFAACAdUhiAQAAYJ3EaAcAAJHKypkT2M59ZGAUIwEARAsjsQAAALAOSSwAAACsQxILAAAA65DEAgAAwDoksQAAALAOSSwAAACsQxILAAAA69AnFoAVzN6wAACQxAIRIJECACA2kMQCJ0HiCgBA7KEmFgAAANYhiQUAAIB1SGIBAABgHWpiAVjNrFnOfWRgFCMBAFQlRmIBAABgHZJYAAAAWIckFgAAANYhiQUAAIB1eLALQNzgIS8AqD4YiQUAAIB1GIkF/n+M4gEAYA+SWCAIM6EFAACxh3ICAAAAWIeRWFRrjLgCAGAnRmIBAABgHZJYAAAAWIdyAlQ7lBBUDyU/ZzpNAEB8YiQWAAAA1iGJBQAAgHUoJwAQ11jEAgDiEyOxAAAAsA4jsag2eKALAID4wUgsAAAArMNILKxFrSMixd8ZAIgfjMQCAADAOiSxAAAAsA7lBACqPcoMAMA+JLEAYCChBQA7kMQiLtA+CwCA6sWaJHbChAl644039N1336l27do655xzNHHiRJ1++unRDg1VgCQVFY2/UwBgN2se7Fq0aJFuv/12LV26VPPmzdPRo0d1ySWX6NChQ9EODUCcy8qZE/gDAIgN1ozEzp071/V62rRpaty4sZYvX64LLrggSlEBAAAgGqwZiS3twIEDkqQGDRpEORIAAABUNZ/f7/dHO4hIFRcX68orr9T+/fu1ePFiz+MKCwtVWFgYeJ2Xl6esrCx98803SktLq4pQIannXxecsG/pH/sGfd9rPxCLzL+v0bJ//3517NhRGzdu5Jd6AHHB7/eroKBAzZs3V0KC93irlUnsbbfdpvfee0+LFy9Wy5YtPY976KGHNH78+CqMDAAAABVhy5YtIfM865LYUaNGafbs2froo4/Upk2bkMd6jcSep8uUqJqVHSoQkNioYWD72J69UYwE8eaIDukzzdeWLVuYYQIQF/Lz85WZman9+/erXr16nsdZ82CX3+/XHXfcoVmzZmnhwoUnTWAlKTk5WcnJySfsT1RNJfpIYlF1EhOSnBf83UMFqun/+e9WWloaSSyAuOLz+UK+b00Se/vtt+vVV1/V7NmzlZqaqh07dkiS6tWrp9q1a0c5OiC0Y7v3RDsEAADiijXdCZ5++mkdOHBAvXv3VrNmzQJ/ZsyYEe3QAAAAUMWsGYm1rHQXAAAAlciaJBaIF4kZjQLblBkAAFA21pQTAAAAACVIYgEAAGAdygmAKhbrJQRlKXfwOifSa1FqAQAIFyOxAAAAsA5JLAAAAKxDOQEAl7JM43udE+m1KCEAAISLkVgAAABYhyQWAAAA1qGcAIhx4T6xH85x8fj0f0V1RgAA2IWRWAAAAFiHJBYAAADWoZwAMcHmqd/Kns4O99xwjrPtuw1HPH4mAMDJMRILAAAA65DEAgAAwDqUEyAm2DwlHOtPxMdiTF4qshNDrH9WAED5kMQCQBzoMO59JSSnBF7nPjIwitEAQOWjnAAAAADWYSQWMJRl6j2c7gReyrsoQXmm1atikYBI71GRnRgAAPGNJBYA4sDq8f2VlpYW7TAAoMpQTgAAAADrMBKLai/S6fPSZQIRT+OfforzIsL7lbvEwbz3vv1Bzy3vPcK5VqTlAOF+5wCA6oMkFgDiQOnuBCXoUgAgXlFOAAAAAOuQxAIAAMA6lBMgrkVat1kVbaeOrV0fdH84LbnC1qC+c90w7l0WkX4/5ak9pgY2cpQRAIh3jMQCAADAOiSxAAAAsA7lBIChsqatK2plrXCZZQNmW61Eo8zAbLFVaZ/buHc4ZRRlWb0LAFA9MRILAAAA6zASCwBxKCtnTljH8QAYAFuRxCLuVMpT7eY0fBVMc3uVEIRcuapntnPchq0nvYdXd4Fwjg/3WsfS6wTfX87vkM4FAADKCQAAAGAdklgAqMaycuaEXXoAALGEcgLEtLJMG3seZ0y3a+mXEd3D9bR/iCn9cJ7GN0XcecAsa1Cp/4A9SghCxR44prKm981uA+bx5fyeIl0swfzeKnLBBwBA9DASCwAAAOuQxAIAAMA6lBMgppX7yXOPJ/aPBTu2lHCn+s2pca/9nlP6HtPcXtcszauU4XCb9MB2ynLjBON+iWHcO9TUu+f341G2YYp0Sr8sfw+8yhoAAPGBkVgAAABYhyQWAECXAgDWoZwAMacsjfc9n443prM9SwjCWMjAa9r+BPv2B92995ZzAttNFu4KbJvT/klrvS8bDnNhgaS5y5w3zO/Gq2TBKAHIa1M7sJ0aatrf/N7Mz+3V+aFdC2d/3qHgMYVZwsECBwAAq5LYjz76SJMmTdLy5cu1fft2zZo1S4MGDYp2WAAQN8o6GsvytQCqmlXlBIcOHVJ2drb+8Y9/RDsUAAAARJFVI7GXXnqpLr300miHgUoWcSP7EO+5ygA89ns9Ke95rjFtL8lz+tycbm/yxvdB75FiTMO7yh08yhJKc93PXOwgnJIMj2n81KXBP3e453uJtITA6/uXFFYHhPIoyyIbAICqZVUSG6nCwkIVFhYGXufn50cxGgCIXyVlCJQVAKgqVpUTRGrChAmqV69e4E9mZma0QwIAAEAFiOuR2DFjxmj06NGB1/n5+SSycSLcKV7P0gLzyXxz6t584t68nzn9XfpNr24FHiUBXnEkeh3jUaJwwj08YjePCWva34gpr7NzfPqKUt+5WZJhdh4wj/FaUCHCBR9OKPkIo0zESziLOVBCAACxL66T2OTkZCUnJ0c7DACoNiq61yzlCQC8xHU5AQAAAOKTVSOxBw8e1Pr1zvTfxo0btWrVKjVo0ECtWrWKYmSoaqWnxb2mfz33e0wje02Fm/c73KWN65yU5RuDXss8LmVjXvB7eNyvoJ8z5Z2cdzywvbdDTdcpmS/uD3qpnb0bB7Ybful0U3B1CEgPvt8sIUjdeCTofklKN0sZzOsapQUmz9KOcEo4wvx5h8PrupQQAIBdrEpiv/jiC/Xp0yfwuqTedejQoZo2bVqUogIAVJbKWgqXMgXAflYlsb1795bf7492GAAAAIgyq5JY2CPSBQfCYja4N6avJbmeVveMyeOp9EinuZP2F7le5xlT/+YT/K7jjKl383hzut6c0j/YwilXT5/vxJq03z1Vb07dF7SpHTTezZc6ZQNtX3XuUVQ/Kejx5v22DD0tsN1s8qeu4/J+09M5x+xc4LH4wOEB3QLbrs9hLtJgCNmVweyMEOHfr0j/blZkKQMAoOKQxAIAooZpfQBlRXcCAAAAWMfnr0ZFpvn5+apXr5566yol+mqe/ARERVU8MZ7otUCBySgBCDm9bD6Nb0ylh5wOLznX7BBgTKvvvNqZxk/KLw5sm+UHoezNdq4bzvnm8YeaO/vrbHO2m7zxfVj3NrkWQTA+n2t/6dKQEh6LRUjyXCAhUvHQneAn/2Et1rvKvPM1JSSnRDucmMNIL2CfknztwIEDSktL8zyOkVgAAABYhyQWAAAA1uHBLlSYipqa9XyqPIw170PF4Zre95iqdh1vlhwY+83uApL7yfxjHh0UzIUCXE/yG8xOAEkFzn5zsYPSHQXMxQ/qbi3WyZjnmwswNFnoxGoulGCWEJRexGD7eU4JQrPFwUsCXKUC5uIR5n6zbMO8R6ifsbldjm4DkXYwCPd8xI7K6jNbGSh9ACLDSCwAAACsQxILAAAA61BOgApTGVOrrqnbspQQmCUBYXQbKN15IMAoEyhdDnC4TXpgO2X5RucextS4q+TA6EhgTu9nvr0rsG2WHxS0dkoGGv7LveBAQ3VTMLt6BN2txOaFge1mU524t9/k7PetcY7/YZRT4tB0yVH3vVc7r83OA5F2YnD9vTG7FoToIOF1LS/hlqIEjQmoIrFQ+kBJA2zCSCwAAACsQxILAAAA61BOAABAHKEkANUFSSxiWtitkcw6TPM9jzpYs8b1mHkdY8Uteaw2Vbrm06sO1nMlKsOWATWc20136jzNtlp5ZzgTJg3NFl6SdvRy6mXTv3NabGXOPa5gtgwwV3Ryjkn6vG5g22zVZcaRtL/IdS1zla/CdKfm1KuFmFn/m2h8h9uN1mLh1tl6vmd8/8fM1dM86nTLgnpZAIgNlBMAAADAOozEAgAQR6Ld5YByBlQVkljEtHBXR/Jqm+RZjuB1P7Otk8dqU2Z7J0lK9Fj9y1z56lBzZ3/bp5xVsFJ+dKbSN/y6trHfmSQ5Ws+Z3t98qfvebV8N3pbLXaZwJLBdf41z/o5ezj387Q86F53llByYK4I1W+wuJ0jddDToccl5TusurzjMn1emysAsDzC+f9fPwqNdWnlW8gIAxA6SWAAAUGGiNRLMCHD1Q00sAAAArMNILGJaWaZ7wzrO7EJg8ljZybWqV+kYjSfizSfwmywMPtV/uEubwLa5SpdZfpCU75QQNFvsTMOvG+lcv/R1D7ZwfidtN90phTC7CJjXLUp1jk+p69zjYAunU8HB9k7JQMFWp9yh9P2SCpz9ZheDxp855xS0cbZTlzrHmyuemeea33PpchGvldW8ft5e3Qm8rhPq7xBlBwAQG0hiAQCA9U5WxkC5QfyhnAAAAADWYSQWccerBMHkNSXsVUJglgyUtv08Y7remFZPWb4/sJ2+wojP6G5gTqWbT/unbMwLbJslAw0+d//e+eDDzwe2H/jbiMC2u9OBc3xSvrNtLmqQtywjsO3v7nQqaD01ObBd0Np9b3NhArMLgRS8fMHFWLTB/Kzmd+PqAlFqkQdzIYOiAd2cay13jjHLNhLNBSnKWQJACQEAxAaSWAAAEPei3T/XC2UOZUc5AQAAAKzDSCxijudUf4gygUi7GHiVGbgYT7SbXQdSjKlpSarbxulokD4/+KILW65wOg+YT/w3ne9Mw6duPHLS41vPPH7yuCXVX+P8fmoutLCrh7N9xflfBLbf/rir88Y2Z7GD7TcdDmz71jgLGvzMeV3zQPA4itKcOMxuDS7GAgUFRumEeW7DLw+ZZ7gWpUgs9fMoUfrnFOxcz/KR8na/AABUOpJYAACAMDH9HzsoJwAAAIB1GImFlUJN44YzxRtO+YE51Zyyzyg/KNU4PznPmeI3uxiYiwy4FjUocEoFitKc65glC0dTnf11jWn87Tc5nQMkadTbwwPbjc2FDNKC/37a+DNn+205JQQdOztT71+vcJ7qLypwuhMktXffu8lT2wLbW4aeFtguPfVfwmtRAxldCMySisQ85zquTgWSqwTB/Hm4ygM8ygbk8fcj3NITSggAIDaQxAIAAISpsrscUK4QPsoJAAAAYB1GYhFzKnK61rMLgVkSYE5Ne51bqoTA5JoaN5jT6uaCBeZT+ub+Hb2Mp/2NRRPM7gTJa+q67tGo227nWgecBQvqbNNJmR0MvjvQLrBd3NK53z97vxTY/n8Lf+s6f+39pxivnFKGzZc6U/9H6wVf7CBzblLQ/UlzlzkvjO8/1D9UrjKFtcYbYfxcwyorKUOnAq+/d5QiADiZWO1nezLRGEFmJBYAAADWIYkFAACAdSgnQFzznOKNtITAON7sQCC5uwqYpQUFbWoHts1FEA53cZ7+N5klAEVGd4L2f8tzzjWmziVpe3vnHkVGGcDRes4iCjUPOL+r5p3hbJslCyazhOD9/R0D2wkFNVzHnf60892uuc+Iy7hfu+lHdDLm96ee2YHNY8YxZqcCyf1zTdrv/Dw8FzI43Sx9MK7rcc1wRbrIBgCUBQ97BcdILAAAAKxDEgsAAADrUE6AaimsxvZmCYE5bVz6HI/OBcn1gz+Bn7LRKQ8oTHfuZ5YQmB0JDq92pupTljuLEkhSg3RnmtxcdGHTEGfb3/xwYLvZVGfxgr0dnG4IZheBAbWdkog/PeAsiNDoxr2ue6+9zYk9KdW5R9MlzjFenQrMEodW7zmlAokbtga2XR0CjDIDSa6yAy390jnOOMQ1vW8uduBxTFlQQgCgKtCxIDhGYgEAAGAdklgAAABYx7pygn/84x+aNGmSduzYoezsbD355JPq3r17tMOCBcIqIQhjEYTS1/EqJ/BaBMHsMGB2LUg1uh6sa++UIhS0dqb9d/Q6zXUts6NB+gonrtYznXvs7eAskLCjV9CQVJzqlB+0//dtzvXTnGP2f9/QdU6iUaaQ9Llzj01DnFKI1jOdbbN8IfPF7wPbP4xyPlOr94xOA8a98oxOD5KUutHpeuDVkSCcn3dZuguUtwQBAGKNrd0PrBqJnTFjhkaPHq1x48ZpxYoVys7OVv/+/bVr166TnwwAAIC4YVUS+9hjj2nkyJEaPny4zjzzTD3zzDNKSUnR1KlTox0aAAAAqpA15QRFRUVavny5xowZE9iXkJCgfv36acmSJUHPKSwsVGFhYeB1fn5+pccJO3hOHXtML3s1yw95D6NBv7nAgavMwChF2JvtPMkvOdPwqZuc7f3t3QsOHGx/2HjPibfxZ8FjKjQWRMg+dXNge/tBp24gYb5TNlCU5v17bt0FTgnB/vZO54EGnztlAwWtneMbrnbubS4YYXYt8GKWXZzA+A7DKRUwlbc0gI4EAKLJ1jKAimLNSOyePXt0/PhxNWnSxLW/SZMm2rFjR9BzJkyYoHr16gX+ZGZmVkWoAAAAqGTWjMSWxZgxYzR69OjA6/z8fBJZAAAQM6r7aGp5WJPENmrUSDVq1NDOnTtd+3fu3KmmTZsGPSc5OVnJyclB30P1FlanAvN446n3ogHdXO8lzV3mnO/xpHzKPue6ef2M0gTjqXuzbKDJG86iBluGOk/vn/60+yHGvM7OdXf0czoM7OrhlB00/syZrq+71dn/dUEb4xjnmg8+/EJg+67/GxHYrr/GPXFzsO/BwHaK0Z2gyUInxi1XNA5sm10WDvVyts34zBKMnVc7n9v8biT3ghHm9+z58ytDFwIvlBAAQGywppwgKSlJXbp00YIFCwL7iouLtWDBAvXq5dE3CAAAAHHJmpFYSRo9erSGDh2qrl27qnv37nriiSd06NAhDR8+PNqhAQAARKwylpStLiUKViWx1157rXbv3q0HH3xQO3bsUKdOnTR37twTHvYCAABAfLMqiZWkUaNGadSoUdEOA5bzqosMp97RayUuSTqWbrTJ6pnt7F/6ZWA7fUV95xhjVTCzBrSgtbPdbLFTJ+q6filma6uiVGf/QaeblavNVcfOToutw9OduvL/t/C3ge3WS5zjj/zOiVWSkj7MCBqje6UzpyY2Kd9speVUMpnts8zv3/zV1FzlTHLXwZrfszZsDWyatcuun5lRd6sIV/UCAMQO65JYAAAAm1SX6f2qZs2DXQAAAEAJRmJRLYUzRey5mpM5HS3pmHmOMZ3tYrTeMqfGk4zyALONVGG60wrL1XaqtzM9X5p5/t4ONT2PK7HhrXaB7YMjnXOTUp1V7jYNcVrUJXzvrOQlSSnG9vbznM9RNLp5YLuu00xEB1s4vzM3m/xpYDvvNz0D28l5TtsvhSjbCIerhMAo55DHSmxmiUJ5SwgoRwCAykcSCwAAqhWm9+MD5QQAAACwDiOxgCGcaeDEBvXLdY+U5c5qXPK4VspGp4TALD8ovXLVpiEy3nO2kwqC39tcNcvsVGCu5LXvl87xCQXO/sy5zopgklRoNAwovnFvYPvoMqdrgdklwYypwCghSF9hdIfw6L5grtAlyVUSYHZ+MMs2zDIMs+TD5OpyYGBVLwCIfSSxAACgWqmMBQa8ULpQeSgnAAAAgHUYiQUM4UwDl56CNp9wdzf6V9D95j2KujhP45tT5uY9ktKdZv4HHjzsumz7oc455mIJJtfCB+2dEoJ93Z39Tec72w1mOX0HzI4CBa3dv/OapQ0pRhzNXs93Ynra+XypG48Ejc8sISiqn+Rcs3QJgckow3CVd3h8/17lAeF0JyjdpYJSAcAejILGN0ZiAQAAYB2SWAAAAFiHcgLA4LnAQQjhPOHuNf1ttvM3p9Vd5xpP2Tccut91jx9GOSUETZe4OxeUMLsh5PVzps+T85xuA0n7nan+dSOdKf3WM51jzM4GkrRlgNO5oHG6c919O5ySh7ppzu/JXqUC5uc2Yz3WrkXQc0uf71Wq4VlCYO73+NmZSpcPeP0docwAqHyUB8DESCwAAACsQxILAAAA61BOAHgoy/SwZ5N8jyfik+YuC3qdwwO6BT2m9FR226e+d14YZQrmAglbhjolB+aCA2Y5genUfxcF3a9S5QQpPxqlAmnOft+aus798osD23s7OOenGOs9mKUCZqlFQZvage3U/yx1x2J2hDBLNYxDzHIEVeBUP2UDQPiY/kdlYiQWAAAA1iGJBQAAgHUoJwAM5Z0qDtUkP3BMGE/Eu56+D9ExwTVlbp5vPOWftN85xpyiN7sLnP600wHBZJYllGaWJjT80jm/ycLg10pfEfw6ZtcDs8wgfYXxswjVNcJc4MAsLTC6OhzzPts53qsUJNQ5HoslALGK6X3EE0ZiAQAAYB2SWAAAAFiHcgIgDOFONYfTCD+ca5lT00VGpwJXmUEIh7u0CWwn7Xe6DaRudBY1SJ+/NbBtLoJgTuO7zi11j/p/3BzY3qJ2znGbnG4DhelOycLBFs7vzHW3Ol0Lmizc5cTR2flu0uc734EZX+n3zBIC83szp/pNnt95GUpJKCFARWCKHygbRmIBAABgHUZiAQCIoqycORV+TUZ3UR2QxAJhCHeqOdIpaVdpgdlpYOmXgU2z08AJ55tP5pv7PY43ywzMBQBSNzr3Nqf0zfKDglKLHRQ+7VyryQqnJMDsaGAuqGBey1zgYGfvxs4xm44Gtt3fZfDSAEmu7gSucg5zf4RdBMrSqQAAULUoJwAAAIB1GIkFAKASMKUPVC6SWKCSeE1Je05Pmx0MPKa/Sz9x7/XesfQ6zv4NThcCs9uAemYHNref5xxvdg4wFZVqT5C6ySkVMEsCzIUPTObiA6YmZrmE0WlAxudJ/c9S1znm4gVeXQhcx3uUEHh2MKDrAADEPMoJAAAAYB2SWAAAKhilBEDlK1M5wY8//qi33npLmzdvVlFRkeu9xx57rEICA+KJV2lBxE/Bl+pG4DrfLCEwpu7NrgdmaYG5gEDD1U5XALPkwLxO5tvucgCvEoKCNrUD22Z3ArMjgWnv1acFts2FD8zPU5pnuYXX9+xxPGUDAGCviJPYBQsW6Morr1Tbtm313XffqUOHDsrNzZXf71fnzp0rI0YAAADAJeJygjFjxuiee+7R119/rVq1aun111/Xli1bdOGFF2rIkCGVESMAANaglACoGhGPxK5Zs0b/+c9/fj45MVFHjhxR3bp19ac//UlXXXWVbrvttgoPErCdV6mAV2mBVwP/UCUHieaT/QZzej89zznGXHzA6/hkjxIASWryxvfOC+Pe6WYpg0eXBLPEocnGPOc6ZrmEea753ZRmdFk4ZiwS4freWOAAAOJOxCOxderUCdTBNmvWTBs2bAi8t2cP//ADAACg8kU8EtuzZ08tXrxY7du312WXXaa7775bX3/9td544w317NmzMmIEAKBSUQIA2CfiJPaxxx7TwYMHJUnjx4/XwYMHNWPGDJ166ql0JgAMkU5Je3URMIWcVjem4s1rmWUDngsnGOeaJQdmOYBXd4FQ9mY75zdxJm3c3RPMLgQe5QfyKJUIJZzvnxICALBXxEls27ZtA9t16tTRM888U6EBAQBQGRhtBeJLxDWxbdu21d69e0/Yv3//fleCCwAAAFSWiJPY3NxcHT9+/IT9hYWF2ro1+BQoAAAAUJHCLid46623Atvvv/++6tWrF3h9/PhxLViwQFlZWRUaHFBdea02VXrFLpdw6kaNdlTyWtXL2G9um623JCnFuN/a25za0tP/4tTdNnnDiNeMz/wcHituhRLpSlvh1L5SHwsAdgk7iR00aJAkyefzaejQoa73atasqaysLD366KMVGpzpL3/5i+bMmaNVq1YpKSlJ+/fvr7R7AQAAILaFncQWFxdLktq0aaNly5apUaPwRkwqSlFRkYYMGaJevXrp+eefr9J7AwAAILZE3J1g48aNge2ffvpJtWrVqtCAvIwfP16SNG3atCq5H1AVXFPYxmpTJs+2WKXeUxglCOY0+TGPOFzXN8oMDrZwl9CnbnTaYbW7c6nzhnHvvM6NjOOdVl+uf3iMe8hjVS+V+m4qqjyAsgE70FUAQDARP9hVXFysP//5z2rRooXq1q2rH374QZI0duxYRkgBAABQJSJOYh9++GFNmzZNf/vb35SU5DQ/79Chg5577rkKDa68CgsLlZ+f7/oDAAAA+0VcTvDSSy/p2WefVd++fXXrrbcG9mdnZ+u7776L6Fo5OTmaOHFiyGPWrFmjM844I9IwJUkTJkwIlCEAVaGyn3Av/VS+WTZgvudVgmD+B+8qLTC2iwZ0C2wnzV0W2G5mVAyUPi7FLEcwV/+a72wf7tLGicPoeuAqFTDLIIz95r0kKXFjnvPCLKMIs7sBYgNlAgDKI+IkduvWrTrllFNO2F9cXKyjR49GdK27775bw4YNC3lMeRZQGDNmjEaPHh14nZ+fr8zMzDJfDwAAALEh4iT2zDPP1Mcff6zWrVu79v/3v//V2WefHdG1MjIylJGREWkIYUtOTlZycnKlXR8AAADREXES++CDD2ro0KHaunWriouL9cYbb2jt2rV66aWX9M4771RGjJKkzZs3a9++fdq8ebOOHz+uVatWSZJOOeUU1a1bt9LuC0Qi0hKC8jbe92r6X7qLQbBreXUwMKfqD3uUFkhS0v6ik173WLrTwaAwvUZgO8VpcuIZqyll+caTHlNapD8LFjuoelk5c1yvKS8AEImIH+y66qqr9Pbbb2v+/PmqU6eOHnzwQa1Zs0Zvv/22Lr744sqIUdLPyfPZZ5+tcePG6eDBgzr77LN19tln64svvqi0ewIAACA2RTwSK0nnn3++5s2bV9GxhDRt2jR6xAJAHCs9MhsORm+B6qtMSaz08wpau3btCqzkVaJVq1blDgqo7o55PHEfcpq7Z7ZznPFkf1hP7DeoH3S3WQJQ+JuerveS844Htr26ExR0Lnu3AK/OCyccV0EdCSghAAC7RJzErlu3TjfddJM+/fRT136/3y+fz6fjx497nAkAAABUjIiT2GHDhikxMVHvvPOOmjVrJp/PVxlxAQCqCUoCAJRFxEnsqlWrtHz58jIvQAAgMl6lBaXfUxglBIke0/7enOPT57un9I+1a+G88ChHSN14xLm3ucCBKYw4Qn5u894e14q08wCdCgAg9kXcneDMM8/Unj38ow4AAIDoCWskNj8/P7A9ceJE3XffffrrX/+qjh07qmbNmq5j09LSKjZCAIC1KBUAUFnCSmLr16/vqn31+/3q27ev6xge7AIqX7hT2xU1ZZ66sUXQ/ZKUuGFrYDuvn9NJwCw7MP+BMRc+8CwtMEoDQnYk8OhcUORanMH5TJEuKkEJAQDEvrCS2P/973+B7dzcXGVmZqpGjRquY4qLi7V58+aKjQ4AAAAIIqwk9sILLwxsX3TRRdq+fbsaN27sOmbv3r3q16+fhg4dWrERAgBiBuUBAGJFxN0JSsoGSjt48KBq1apVIUEBqDjhTJmb0/OuJ/yNkoHSHQjMafz0+cHvbZYQeHFN3XvEVLq0wHzt6lwwd9lJ7+d5bwCAVcJOYkePHi1J8vl8Gjt2rFJSUgLvHT9+XJ999pk6depU4QECAAAApYWdxK5cuVLSzyOxX3/9tZKSkgLvJSUlKTs7W/fcc0/FRwgAqHKUDQCIdWEnsSUPdw0fPlx///vfaaUFxICKasrv1QnAdf0Q3QLMhQ/MrgWJIcoRgt3DK6aQix0AAKqliGtiX3jhhcqIAwAQQ7Jy5gS2GZUFEIsiXrELAAAAiLaIR2IBxI5wptWrYurdXLzAq7TgcJv0wHbKxryIrl/6M4TqXBALKqrMAwDgjSQWAEDJAADrUE4AAAAA6zASC1RTXl0BPPXMdp9vdh4wFkhINLbNqfSkuca0usd0e7gxeXUuiJWp+1iJAwDiGUksAMDVjaAsKEcAUNUoJwAAAIB1GIkFqimvKe+C3/QMbKevMKb6zfKBENdylQSUKkEIMBdE8CghCFUm4NWdwOsczwUVmPYHAGuRxAJANcK0P4B4QTkBAAAArEMSCwAAAOtQTgDAJfU/SwPbx8pygQb1ne2lXwY2w6lXde036l5L/0PltUqXV41rpLWvsdi2q6KE24WAsgMAsY6RWAAAAFiHkVgAqEYYYQUQL0higTgU8dR9GabPvdpcHUuvE/wEo8zA/IfHsxWWsfLXCfeu5On+UO254q28AABsRTkBAAAArMNILABUI14PdlFmAMA2JLFAHIq0VCCc1a1cXQck13S/6x5GRwLXPTw6CoQTRzSn8CkfAIDYRDkBAAAArMNILADEMcoEAMQrklggzkU6He45pR+iHMBVgtAz29m/YatzfrsWzjEeJQdhXb+Uypjuj5VSBgCAN8oJAAAAYB1GYgEgjrHMLIB4RRILwJOrtMBY3EAqtcCBeZzH+fK4lleZAh0JAAChUE4AAAAA6zASCwBxjDIBAPGKJBZAWEpP+3uVBHiVIBxLr+Nsm90JjG4GZteCUB0JXHEx9Q8A1ZIV5QS5ubkaMWKE2rRpo9q1a6tdu3YaN26cioqKoh0aAMS0rJw5YT/cBQA2sWIk9rvvvlNxcbH+9a9/6ZRTTtHq1as1cuRIHTp0SJMnT452eAAAAKhiViSxAwYM0IABAwKv27Ztq7Vr1+rpp58miQVi2b79zrZRcuAqM/BY+IAyAQBAKFYkscEcOHBADRo0CHlMYWGhCgsLA6/z8/MrOywAiDk83AUgHllRE1va+vXr9eSTT+qWW24JedyECRNUr169wJ/MzMwqihAAAACVKaojsTk5OZo4cWLIY9asWaMzzjgj8Hrr1q0aMGCAhgwZopEjR4Y8d8yYMRo9enTgdX5+Poks4pb5NH9lTMWX7hbgtUiBV1cBV3wRnktpAQCgtKgmsXfffbeGDRsW8pi2bdsGtrdt26Y+ffronHPO0bPPPnvS6ycnJys5Obm8YQKA1Up3J6C8AEA8iGoSm5GRoYyMjLCO3bp1q/r06aMuXbrohRdeUEKClZUQAAAAqABWPNi1detW9e7dW61bt9bkyZO1e/fuwHtNmzaNYmRA7KjsKfdwr+9a7MCrtMBjoYSy3K+yyygAALHJiiR23rx5Wr9+vdavX6+WLVu63vP7/VGKCgDsZJYXUFoAwFZWzMkPGzZMfr8/6B8AAABUP1aMxAIou6qYbvcqD/C6X2KD+s62R8lBWe4HAKg+rBiJBQAAAEwksQAAALAO5QRAnIu0hCDc8oNwpvTNY7x4lhyEiCPSEgI6GPAAF4D4w0gsAAAArEMSCwAAAOtQTgBUI+FMq4e9qIE5pd8z29le+mVg83Cb9MB20txlJ4/PLD/Ytz+sOMJRHUsIKB8AEO8YiQUAAIB1SGIBAABgHcoJgGqkIqfVXd0JjBICk1cJgVfZQLhdDljg4ORKlpalrABAvGIkFgAAANYhiQUAAIB1KCcAgDhEGQGAeEcSC6BMzLrUsFbvMtt7RVrTWoHttgAA8YFyAgAAAFiHJBYA4lBWzpxAhwIAiEeUEwBwCWdVr9JcpQXG+WpQP+gxkd6vOq64BQAIjSQWAOIQD3YBiHeUEwAAAMA6jMQCcKnIqXuvDgauVbooFQAAlAFJLADECUoIAFQnlBMAAADAOozEAvBUpk4FxnFeCxyY+8O5h6vjQQSxAADiFyOxABAHVo/vH+0QAKBKkcQCAADAOpQTAKg0XqUFXscAABAuklgAiAMdxr2vhOQUSXQpAFA9UE4AAAAA6zASC8BTeaf6I+084HUMJQcAgNJIYgEgDqwe319paWnRDgMAqgzlBAAAALAOSSyASnNs957An8SMRoE/Xseg7DqMez/aIQBAlSKJBQAAgHVIYgEAAGAdHuwCUCZeXQW89penOwFOjmVnAVQ3jMQCAADAOiSxAAAAsA7lBADKJJyFCVjIoOqYy85KLD0LIP4xEgsAAADrkMQCAADAOtYksVdeeaVatWqlWrVqqVmzZrrxxhu1bdu2aIcFIIRwFjLwWgTB65hQxwEAqg9rktg+ffrotdde09q1a/X6669rw4YNuuaaa6IdFgAAAKLAmge77rrrrsB269atlZOTo0GDBuno0aOqWbNmFCMDAABAVbMmiTXt27dPr7zyis4555yQCWxhYaEKCwsDr/Pz86siPAARYBGEirF6fH+lpaVFOwwAqDLWlBNI0h/+8AfVqVNHDRs21ObNmzV79uyQx0+YMEH16tUL/MnMzKyiSAEAAFCZoprE5uTkyOfzhfzz3XffBY6/9957tXLlSn3wwQeqUaOGfvvb38rv93tef8yYMTpw4EDgz5YtW6riYwFAlesw7v1ohwAAVSqq5QR33323hg0bFvKYtm3bBrYbNWqkRo0a6bTTTlP79u2VmZmppUuXqlevXkHPTU5OVnJyckWGDOAkIi0DSDz9FOf4tesrJSYAQPyJahKbkZGhjIyMMp1bXFwsSa6aVwAAAFQPVjzY9dlnn2nZsmU677zzlJ6erg0bNmjs2LFq166d5ygsAFQnq8f3j3YIAFClrHiwKyUlRW+88Yb69u2r008/XSNGjNAvfvELLVq0iHIBAACAasiKkdiOHTvqww8/jHYYAMJwrF2LwLb5D4xXfaxXHSxttQAAoViRxAIAQusw7n0lJKdIknIfGRjlaACg8llRTgAAAACYGIkFULGWfhnYPBbFMAAA8Y0kFgDiAMvOAqhuKCcAAACAdRiJBRAzvFb7MveXfg8AUD2RxAJAHDC7E0h0KAAQ/ygnAAAAgHUYiQUQMzwXRKB8ICyMvgKoThiJBQAAgHVIYgEAAGAdygkAVLlwuxAEOwbBrR7fP9ohAECVYiQWAAAA1iGJBQAAgHUoJwBQ5ehCAAAoL0ZiAQAAYB2SWAAAAFiHcgIAVSLx9FOcF/v2Bz2GcgIAQLgYiQUAAIB1SGIBAABgHcoJAFSJY2vXB7bDWeyA0gIAQCiMxAIAAMA6JLEAAACwDuUEAKocJQQAgPJiJBYAAADWIYkFAACAdSgnABBVXiUElBkAAEJhJBYAAADWIYkFAACAdUhiAQAAYB2SWAAAAFiHJBYAAADWoTsBgJhERwIAQCiMxAIAAMA6JLEAAACwDuUEAKocCxkAAMqLkVgAAABYhyQWAAAA1iGJBQAAgHWoiQVQ5aiDBQCUFyOxAAAAsI51SWxhYaE6deokn8+nVatWRTscAAAARIF1Sex9992n5s2bRzsMAAAARJFVSex7772nDz74QJMnT452KAAAAIgiax7s2rlzp0aOHKk333xTKSkpYZ1TWFiowsLCwOsDBw5Iko7pqOSvlDABoEodVZEkKT8/P8qRAEDFKPn3zO8PnaxZkcT6/X4NGzZMt956q7p27arc3NywzpswYYLGjx9/wv7FereCIwSA6MrMzIx2CABQoQoKClSvXj3P933+k6W5lSgnJ0cTJ04MecyaNWv0wQcf6LXXXtOiRYtUo0YN5ebmqk2bNlq5cqU6derkeW7pkdj9+/erdevW2rx5c8gvBY78/HxlZmZqy5YtSktLi3Y41uB7ixzfWdnk5eUpKytLubm5Sk9Pj3Y4AFBufr9fBQUFat68uRISvCtfo5rE7t69W3v37g15TNu2bfWrX/1Kb7/9tnw+X2D/8ePHVaNGDV1//fV68cUXw7pffn6+6tWrpwMHDvA/yTDxnZUN31vk+M7Khu8NQHUV1XKCjIwMZWRknPS4KVOm6OGHHw683rZtm/r3768ZM2aoR48elRkiAAAAYpAVNbGtWrVyva5bt64kqV27dmrZsmU0QgIAAEAUWdViq7ySk5M1btw4JScnRzsUa/CdlQ3fW+T4zsqG7w1AdRXVmlgAAACgLKrVSCwAAADiA0ksAAAArEMSCwAAAOuQxAIAAMA61TqJnTNnjnr06KHatWsrPT1dgwYNinZI1igsLFSnTp3k8/m0atWqaIcTs3JzczVixAi1adNGtWvXVrt27TRu3DgVFRVFO7SY849//ENZWVmqVauWevTooc8//zzaIcWsCRMmqFu3bkpNTVXjxo01aNAgrV27NtphAUCVqrZJ7Ouvv64bb7xRw4cP15dffqlPPvlE1113XbTDssZ9992n5s2bRzuMmPfdd9+puLhY//rXv/TNN9/o8ccf1zPPPKM//vGP0Q4tpsyYMUOjR4/WuHHjtGLFCmVnZ6t///7atWtXtEOLSYsWLdLtt9+upUuXat68eTp69KguueQSHTp0KNqhAUCVqZYtto4dO6asrCyNHz9eI0aMiHY41nnvvfc0evRovf766zrrrLO0cuVKderUKdphWWPSpEl6+umn9cMPP0Q7lJjRo0cPdevWTU899ZQkqbi4WJmZmbrjjjuUk5MT5ehi3+7du9W4cWMtWrRIF1xwQbTDAYAqUS1HYlesWKGtW7cqISFBZ599tpo1a6ZLL71Uq1evjnZoMW/nzp0aOXKkXn75ZaWkpEQ7HCsdOHBADRo0iHYYMaOoqEjLly9Xv379AvsSEhLUr18/LVmyJIqR2ePAgQOSxN8rANVKtUxiS0bAHnroIT3wwAN65513lJ6ert69e2vfvn1Rji52+f1+DRs2TLfeequ6du0a7XCstH79ej355JO65ZZboh1KzNizZ4+OHz+uJk2auPY3adJEO3bsiFJU9iguLtadd96pc889Vx06dIh2OABQZeIqic3JyZHP5wv5p6RGUZLuv/9+DR48WF26dNELL7wgn8+nmTNnRvlTVL1wv7cnn3xSBQUFGjNmTLRDjrpwvzPT1q1bNWDAAA0ZMkQjR46MUuSIN7fffrtWr16t6dOnRzsUAKhSidEOoCLdfffdGjZsWMhj2rZtq+3bt0uSzjzzzMD+5ORktW3bVps3b67MEGNSuN/bhx9+qCVLlpywRnvXrl11/fXX68UXX6zEKGNLuN9ZiW3btqlPnz4655xz9Oyzz1ZydHZp1KiRatSooZ07d7r279y5U02bNo1SVHYYNWqU3nnnHX300Udq2bJltMMBgCoVV0lsRkaGMjIyTnpcly5dlJycrLVr1+q8886TJB09elS5ublq3bp1ZYcZc8L93qZMmaKHH3448Hrbtm3q37+/ZsyYoR49elRmiDEn3O9M+nkEtk+fPoER/4SEuJoAKbekpCR16dJFCxYsCLS5Ky4u1oIFCzRq1KjoBhej/H6/7rjjDs2aNUsLFy5UmzZtoh0SAFS5uEpiw5WWlqZbb71V48aNU2Zmplq3bq1JkyZJkoYMGRLl6GJXq1atXK/r1q0rSWrXrh2jQB62bt2q3r17q3Xr1po8ebJ2794deI9RRsfo0aM1dOhQde3aVd27d9cTTzyhQ4cOafjw4dEOLSbdfvvtevXVVzV79mylpqYGaofr1aun2rVrRzk6AKga1TKJlX5uc5SYmKgbb7xRR44cUY8ePfThhx8qPT092qEhjsybN0/r16/X+vXrT0j0q2F3O0/XXnutdu/erQcffFA7duxQp06dNHfu3BMe9sLPnn76aUlS7969XftfeOGFk5a5AEC8qJZ9YgEAAGA3ivMAAABgHZJYAAAAWIckFgAAANYhiQUAAIB1SGIBAABgHZJYAAAAWIckFgAAANYhiQUAAIB1SGKBCrB9+3Zdd911Ou2005SQkKA777wz6HEzZ87UGWecoVq1aqljx4569913qzZQAADiBEksUAEKCwuVkZGhBx54QNnZ2UGP+fTTT/Wb3/xGI0aM0MqVKzVo0CANGjRIq1evruJoAQCwH8vOAmHYvXu3OnbsqN/97nf64x//KOnnpLR3795677331Ldv38CxvXv3VqdOnfTEE0+4rnHttdfq0KFDeueddwL7evbsqU6dOumZZ56pks8BAEC8YCQWCENGRoamTp2qhx56SF988YUKCgp04403atSoUa4ENpQlS5aoX79+rn39+/fXkiVLKiNkAADiWmK0AwBscdlll2nkyJG6/vrr1bVrV9WpU0cTJkwI+/wdO3aoSZMmrn1NmjTRjh07KjpUAADiHiOxQAQmT56sY8eOaebMmXrllVeUnJwc7ZAAAKiWSGKBCGzYsEHbtm1TcXGxcnNzIzq3adOm2rlzp2vfzp071bRp0wqMEACA6oEkFghTUVGRbrjhBl177bX685//rJtvvlm7du0K+/xevXppwYIFrn3z5s1Tr169KjpUAADiHjWxQJjuv/9+HThwQFOmTFHdunX17rvv6qabbgp0G1i1apUk6eDBg9q9e7dWrVqlpKQknXnmmZKk3//+97rwwgv16KOPauDAgZo+fbq++OILPfvss9H6SAAAWIsWW0AYFi5cqIsvvlj/+9//dN5550mScnNzlZ2drUceeUS33XabfD7fCee1bt3aVXYwc+ZMPfDAA8rNzdWpp56qv/3tb7rsssuq6mMAABA3SGIBAABgHWpiAQAAYB2SWAAAAFiHJBYAAADWIYkFAACAdUhiAQAAYB2SWAAAAFiHJBYAAADWIYkFAACAdUhiAQAAYB2SWAAAAFiHJBYAAADWIYkFAACAdf4/OAYOLYqm1oUAAAAASUVORK5CYII=", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAArEAAAL3CAYAAACd2x1cAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAABS2ElEQVR4nO3deXRV1f3//9cNGSBAwhSGSCAgUkUoUSZxZFJUHGgR7dehgshSf2KrODRUEam2SHEq2Gr9KE4fLWAVEVARsYAoogipooiAhFEgTAmTIZD7+8NPztn3cs/l3kw3++b5WIu1dk72OWffE4lv9n6f9/b5/X6/AAAAAIskxHoAAAAAQLQIYgEAAGAdglgAAABYhyAWAAAA1iGIBQAAgHUIYgEAAGAdglgAAABYhyAWAAAA1iGIBQAAgHUIYoFqlJ2dLZ/Pp5deeilsvz59+sjn8+mhhx4KOL5w4UL5fD7nz8qVK8Ne5/TTT3f63nzzzZ79SkpK9OKLL2rw4MFq06aN6tWrp9TUVLVv315XXXWVXnvtNR05ciTSj1khO3fu1CuvvKJrr71Wp5xyiurWravU1FSdeuqp+t3vfqf8/HzPcxcvXqy//OUvGjJkiPOsfT6flixZUqExmdfy+XxKSEhQw4YN1bp1a/Xt21f33HOPPv/883Jff9iwYc61R40a5dnvkUcekc/n07Bhw8p9r8pQ9jyCfxZln2PhwoVVdu+yvxvh/tx5551Vdv+apOz3QZ8+fWI9FCAmEmM9AADlN3XqVE2ZMiXk9z777DN9++23J7zGihUrdNVVV2nDhg3y+Xzq2rWrevbsqYSEBOXn5+vtt9/Wm2++qfvvv1/ffvutUlNTK/tjBBg9erRee+01JSQkqHPnzrriiit08OBBffHFF5oyZYqmTp2qmTNn6sILLzzu3N/97nf673//W2VjO+ecc9ShQwdJ0uHDh7Vr1y6tXLlSCxcu1OOPP64LLrhAU6dOVfv27ct9j+eee0533XWXTj755Moadlzq2rWrcnJyQn6vZ8+e1TsYADFBEAtYqE2bNvrpp5/0+uuv67HHHlNKSspxfaZOnSpJ6tGjh7744ouQ11mxYoXOO+88HTp0SJdddpkmT56sdu3aBfQpKCjQk08+qccff1xHjhyp8iC2SZMmGj9+vEaMGKGTTjrJOX7gwAGNHDlS06ZN029+8xutW7dOjRs3Djj3wgsv1K9+9SudeeaZOvPMM3XOOedo48aNlTa2m2+++bhZUL/fr/fee0933nmnFi1apLPPPltLly497jlGIjU1VYcOHdL999+vadOmVdKo49PgwYOPW6kAULuQTgBYKCkpSddff7327Nmjt99++7jvHzp0SNOmTdNJJ52kgQMHhrxGSUmJhg4dqkOHDmnw4MGaNWtWyMArIyNDf/nLX7RkyZKQwXJlmzx5sh588MGAAFaSGjRooBdeeEENGzbUnj17NHfu3OPOnTRpksaNG6fLL7/8uPOris/n06WXXqrPP/9cp5xyinbs2BE2dSOcESNGqEGDBpoxY4ZWrFhRySMFgPhCEAtY6qabbpLkzria3njjDe3fv1+//e1vVadOnZDnv/766/rhhx+UnJysZ555RgkJ4X8d9OjRQ/Xq1av4wCsgNTVVv/jFLyRJmzdvjulYgjVq1EhPPfWUJOmjjz7Sl19+GfU1mjdvrrvvvlt+v19/+MMfoj5/27ZtGj16tE477TSlpqaqYcOG6tGjh55++mkdPXr0uP4FBQWaPHmyLr30UrVr10716tVTWlqaunfvrokTJ+qnn36KegyhFBcXa9KkSerWrZsaNmyo5ORktWzZUj169NB9992nPXv2VMp9gj300EMhc8vLeOWUmsdLSko0ceJEnX766apXr56aNm2qX//611q9evVx18vPz5fP51N2drb8fr+ee+45devWTfXr11d6erouuugiLV261HO8hw8f1uOPP66zzjpLjRo1Ut26dfWLX/xC9913n3bv3l2RRwHEJYJYwFKnn366evbsqQ8//PC4gO6FF16QJA0fPtzz/FmzZkmSBg4cqJYtW1bdQCtRSUmJ8zJRq1atYjuYEC655BI1adJEkjR//vxyXeOee+5R8+bN9eGHH0Z1jcWLF6tz58568skn9dNPP+nCCy/UOeeco/Xr1+uOO+7QoEGDVFJSEnDOvHnz9Pvf/15fffWV2rZtq8GDB6tnz55as2aNcnNz1a9fPxUXF5frc5QpLS3VoEGDdN9992ndunU677zzdNVVV6lLly4qKCjQpEmTtGnTpgrdo6qUlJTo0ksv1Z/+9Ce1adNGgwYNUv369TVz5kydffbZYV8yHD58uEaNGqVGjRrpsssuU8uWLTV//nz17dtXy5YtO67/tm3b1KtXL91zzz1au3atevTooUsvvdT5B0D37t0rNTUGiAcEsYDFRowYodLS0oBqB2vXrtXHH3+s888/X6eccornucuXL5f08wyrLV544QXt2rVL9erV0yWXXBLr4RzH5/PpzDPPlCR988035bpGgwYN9MADD0iScnNz5ff7T3jO9u3b9etf/1r79u3TP/7xD61fv16zZs3S+++/r7Vr16pfv3764IMPNGHChIDzunXrpqVLl2rLli1auHCh/vWvf+nDDz/Upk2bnFnDyZMnRzz2l156SX6/P2Bmc8mSJVqwYIHOOOMMbdmyRe+++65ef/11zZ8/X/n5+friiy+UlZUV8T2q06effqrdu3dr/fr1eu+99/Tvf/9b33//vQYOHKh9+/Yd9zzLbNy4UQsXLtSqVau0YMECTZ8+Xd9++61uuukmFRcX68EHHwzo7/f7dfXVV+vrr7/WiBEjlJ+fr/nz5+utt97SunXrdPfddys/Pz/sP0qB2oggFoiB4cOHhy0RtGjRooiu85vf/EapqalO8CC56QVl6QZeCgoKJP28hG2Dr7/+Wvfee68kaezYsWrRokWMRxRas2bNJKlCy7+33nqr2rdvrxUrVmj69Okn7P/UU09p9+7duv3223XbbbcFpIY0bdpUr7zyipKSkvT0008HBMWnnXaazjrrrOOu17hxY6fqxRtvvFHuzyFJO3bskCSdd955atiw4XHf7969u5o2bRr1dcePHx/y7052dnaFxmvy+Xx68cUXA1Yq6tatq/Hjx0uSPvzwQ89zp0yZoo4dOzpf16lTR3/+858lSYsWLQqYFZ83b54++eQT5eTk6Nlnnw14TomJifrrX/+qzp076z//+Y9WrVpVaZ8PsB3VCYAYMEs1hfL+++87//MPJy0tTUOGDNGrr76qhQsX6vzzz9crr7yihg0baujQoZU55JjasmWLLr/8ch04cEBXXHGFcnNzYz0kT6WlpZJ+DoDKKykpSY888oiuvfZaPfDAAxoyZIiSkpI8+5e95HbNNdeE/P5JJ52kU045Rd9++63Wrl0bEFwdO3ZMCxcu1Keffqoff/xRhw8flt/vd4LdNWvWlPtzSNKZZ56pOnXqaOrUqerYsaN+/etfV0oqiFeJrbJ/RFSGNm3aqGvXrscdP+200yRJW7duDXleYmKiLr744uOOt2zZUo0bN9bevXu1e/duJzgu+/kNGTJE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cuSIvvzySw0YMMA5lpCQoAEDBmjp0qUxHJk9CgsLJYn/rgDUKrUyiC2bAXvooYf0wAMPaM6cOWrcuLH69OmjPXv2xHh0NZff79ewYcN06623qnv37rEejpXWrVunKVOm6JZbbon1UGqMXbt26dixY2rRokXA8RYtWmj79u0xGpU9SktLdeedd+qcc85R586dYz0cAKg2cRXE5ubmyufzhf1TlqMoSffff7+GDBmibt266cUXX5TP59Mbb7wR409R/SJ9blOmTNH+/fs1ZsyYWA855iJ9ZqatW7fq4osv1tChQzVy5MgYjRzx5vbbb9eqVas0bdq0WA8FAKpVYqwHUJnuvvtuDRs2LGyf9u3b68cff5QkderUyTmekpKi9u3ba9OmTVU5xBop0uf20UcfaenSpcft0d69e3ddd911evnll6twlDVLpM+szLZt29S3b1+dffbZeu6556p4dHZp1qyZ6tSpox07dgQc37Fjh1q2bBmjUdlh1KhRmjNnjhYvXqzWrVvHejgAUK3iKojNyMhQRkbGCft169ZNKSkpWrNmjc4991xJUklJifLz89W2bduqHmaNE+lzmzx5sh555BHn623btmngwIGaPn26evXqVZVDrHEifWbSzzOwffv2dWb8ExLiagGkwpKTk9WtWzctWLDAKXNXWlqqBQsWaNSoUbEdXA3l9/t1xx13aObMmVq4cKHatWsX6yEBQLWLqyA2Umlpabr11ls1btw4ZWVlqW3btpo0aZIkaejQoTEeXc3Vpk2bgK8bNGggSTr55JOZBfKwdetW9enTR23bttVjjz2mgoIC53vMMrpGjx6tG2+8Ud27d1fPnj311FNP6eDBgxo+fHish1Yj3X777Xr99dc1a9YsNWzY0MkdTk9PV7169WI8OgCoHrUyiJV+LnOUmJioG264QYcPH1avXr300UcfqXHjxrEeGuLI/PnztW7dOq1bt+64QL8WVrfzdM0116igoEAPPvigtm/frpycHL3//vvHveyFnz3zzDOSpD59+gQcf/HFF0+Y5gIA8aJW1okFAACA3UjOAwAAgHUIYgEAAGAdglgAAABYhyAWAAAA1iGIBQAAgHUIYgEAAGAdglgAAABYhyAWAAAA1iGIBSrBjz/+qGuvvVYdO3ZUQkKC7rzzzpD93njjDZ166qmqW7euunTponfffbd6BwoAQJwgiAUqQXFxsTIyMvTAAw+oa9euIft8+umn+n//7/9pxIgRWrlypQYPHqzBgwdr1apV1TxaAADsx7azQAQKCgrUpUsX/e53v9Mf//hHST8HpX369NF7772n/v37O3379OmjnJwcPfXUUwHXuOaaa3Tw4EHNmTPHOXbWWWcpJydHzz77bLV8DgAA4gUzsUAEMjIyNHXqVD300ENavny59u/frxtuuEGjRo0KCGDDWbp0qQYMGBBwbODAgVq6dGlVDBkAgLiWGOsBALa49NJLNXLkSF133XXq3r276tevrwkTJkR8/vbt29WiRYuAYy1atND27dsre6gAAMQ9ZmKBKDz22GM6evSo3njjDb322mtKSUmJ9ZAAAKiVCGKBKKxfv17btm1TaWmp8vPzozq3ZcuW2rFjR8CxHTt2qGXLlpU4QgAAageCWCBCR44c0fXXX69rrrlGDz/8sG6++Wbt3Lkz4vN79+6tBQsWBBybP3++evfuXdlDBQAg7pETC0To/vvvV2FhoSZPnqwGDRro3Xff1U033eRUG8jLy5MkHThwQAUFBcrLy1NycrI6deokSfr973+vCy64QI8//rgGDRqkadOmafny5Xruuedi9ZEAALAWJbaACCxcuFAXXnih/vOf/+jcc8+VJOXn56tr16569NFHddttt8nn8x13Xtu2bQPSDt544w098MADys/P1ymnnKK//vWvuvTSS6vrYwAAEDcIYgEAAGAdcmIBAABgHYJYAAAAWIcgFgAAANYhiAUAAIB1CGIBAABgHYJYAAAAWIcgFgAAANYhiAUAAIB1CGIBAABgHYJYAAAAWIcgFgAAANYhiAUAAIB1/n8MtbHhDJMiKQAAAABJRU5ErkJggg==", "text/plain": [ "Figure(PyObject
)" ] @@ -5830,13 +622,13 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 20, "id": "2c9052ab", "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAArEAAAL3CAYAAACd2x1cAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAABVbklEQVR4nO3deXiU1f3//9ckkECAhC3sgYDgCiUqiwhVKCiKaLFIbd0ABZdLbC360eAColZErbVaf1oVxLUitYhsImIBUVwQoiIggoR9CVvCmpBkfn/4zdxnhrnDDJnJ5Eyej+vi8uSec9/3mQmJb8553+/j8Xq9XgEAAAAWSYj1AAAAAIBwEcQCAADAOgSxAAAAsA5BLAAAAKxDEAsAAADrEMQCAADAOgSxAAAAsA5BLAAAAKxDEAsAAADrEMQCJ5CZmSmPx6MpU6aU2693797yeDx66KGH/I4vXLhQHo/H92fFihXlXuess87y9R0xYoRrv2PHjunVV1/VoEGD1Lp1a9WuXVspKSlq166drrrqKr311lsqKiryO2fYsGF+Y/F4PKpdu7aaNm2qrl276uabb9YHH3yg4uLicsdo6ty5szwej5KTk7Vnz56Qz4ukXbt26fXXX9c111yjDh06qFatWkpJSdHpp5+uP/3pT8rNzXU9d/HixXrsscc0ePBg3/fa4/FoyZIlFRqTeS2Px6OEhATVq1dPrVq1Up8+fXT33Xfrq6++qtA93Dz00EO++w4cONC135tvvimPx6PevXtHZRyhKvvZWbhwod/xsvdxop+9igj2MxH4Z9CgQVG7f1WSm5srj8ejzMzMWA8FCEmNWA8AqG4mT56s5557LuhrX3zxhVatWnXCayxfvlxXXXWVNmzYII/Ho86dO6tbt25KSEhQbm6u3n//fb333nu6//77tWrVKqWkpPidf8opp6hXr16SpOLiYu3bt08rV67Uyy+/rJdffllt2rTRpEmT1Ldv33LH8fXXX+u7776TJBUVFenNN9/Un//851A+hogaPXq03nrrLSUkJKhjx4664oordOjQIX399dd67rnnNHnyZE2fPl0XXXTRcef+6U9/0rfffhu1sfXs2VPt27eXJB05ckS7d+/WihUrtHDhQv3tb3/ThRdeqMmTJ6tdu3ZRuf/s2bO1ePFiXXDBBVG5frwwfyYCnXPOOZU8GgChIIgFKknr1q119OhRvf3223rqqaeUnJx8XJ/JkydLkrp27aqvv/466HWWL1+uX//61zp8+LAGDhyoZ599Vm3btvXrk5eXp7///e/629/+pqKiouOC2F69egWd3fr222+VnZ2tDz/8UP3799f06dN1+eWXu76nSZMmSZJatmyprVu3atKkSTEJYhs2bKjx48frpptuUsuWLX3HDx48qJEjR+qdd97RH/7wB61bt04NGjTwO/eiiy7SlVdeqXPOOUfnnHOOevbsqY0bN0ZsbCNGjNCwYcP8jnm9Xs2dO1d33nmnFi1apPPPP19Lly497vtYUSkpKTp8+LDuvfdeLV26NKLXjjduPxMAqi7SCYBKUrNmTV133XXau3ev3n///eNeP3z4sN555x21bNlS/fv3D3qNY8eOaciQITp8+LAGDRqkGTNmBA180tPT9dhjj2nJkiVBg2U3nTt31pw5c3T11VerpKREQ4cOVUFBQdC+hw8f1r///W9J0htvvKG6devq+++/dw2+o+nZZ5/V2LFj/QJYSapbt64mTZqkevXqae/evZo9e/Zx5z755JMaN26cLr/88uPOjxaPx6MBAwboq6++UocOHbRz585yU0dO1pVXXqmMjAx98cUXmj59esSvDwCxRBALVKIbb7xRkjPjapo2bZoOHDigG264QYmJiUHPf/vtt/Xzzz8rKSlJL7zwghISyv8R7tq1q2rXrh3WGD0ej55//nnVrl1b+/bt08svvxy037Rp01RQUKCOHTuqT58+uvrqqyU5s7NVRUpKik477TRJ0ubNm2M8Gn/169fXM888I0n65JNP9M0330T0+rVq1dLDDz8sSbrvvvtUUlIS1vn79u3TuHHjlJWVpXr16iklJUWdOnXSo48+qsOHDx/X/8CBA3r55Zf1u9/9Th06dFCdOnVUp04dderUSffff7/2798fibel0tJSvfTSS+rZs6fq16+vmjVrqkmTJurcubPuuOOOcnOgK2LKlCnyeDzHzayXccspNY97vV699NJLOvfcc1WnTh2lpaXp4osvdp0pL8vLlaT33ntPvXr1UmpqqurUqaOePXtqzpw5ruMtLi7WK6+8ot69e6thw4ZKTk5W27Ztddttt1W5nwXgZBDEApXorLPOUrdu3fTxxx8f9z+RsuBv+PDhrufPmDFDktS/f381a9YsauNs1KiRLrnkEknS/Pnzg/YpG29ZYF7233feeUdHjhyJ2tjCdezYMV9Q07x589gOJohLL71UDRs2lOT+WVfEDTfcoI4dO2rNmjVB//HkZtWqVercubMefvhh7dq1S7169VK/fv2Ul5enBx98UD179lR+fr7fOd9++61uvvlmLVmyRM2aNdPll1+uXr16afv27XrsscfUtWvXiDz8N2LECN1yyy1avny5unbtqiFDhuicc87RkSNH9M9//lM5OTkVvke0DB8+XKNGjVL9+vU1cOBANWvWTPPnz1efPn305Zdfup43btw4DRkyRJI0YMAAdejQQZ9//rkGDhwYdJb9wIEDuuiiizRy5Eh98803+tWvfqUrrrhCycnJevHFF3X22Wef8CFToKojiAUq2U033aTS0lK//LuffvpJn376qS644AJ16NDB9dxly5ZJ+mWGNdrOPfdcSdIPP/xw3Gtr167Vp59+6kuRkKTzzz9fp59+uvLz8/Wf//wn6uML1aRJk7R7927Vrl1bl156aayHcxyPx+N7cCjYZ11RCQkJeuyxxyRJ48ePD+kfGEeOHNEVV1yhzZs364EHHlBubq7mzp2rDz74QD///LP++Mc/KicnR3/5y1/8zsvMzNTHH3+sHTt26NNPP9U777yjefPmadOmTbrhhhu0bt06jR07NuSxP/TQQ/J6vX4zn5s2bdKrr76qVq1aacOGDZo/f77efvttffjhh1q7dq1WrVpVZR/E2rhxoxYuXKiVK1dqwYIFmjp1qlatWqUbb7xRhYWF5X42zz77rJYuXaolS5bonXfeUU5OjsaNGyev16vs7Ozj+t96661auHChBg4cqPXr12vhwoWaNm2a1qxZo7///e/as2ePL20IsBVBLBCi4cOHl1uGZ9GiRSFd5w9/+INSUlI0ZcoUeb1eSU56Qdlsppu8vDxJUpMmTSrwTkLTuHFjSQo6c1Y23iuuuELp6em+42XjryopBd9//73+7//+T5L04IMPqmnTpjEeUXDlfdaRcPnll+vXv/61tm7dqn/84x8n7P/aa69p/fr1GjhwoB555BElJSX5XktJSdFLL72kJk2a6I033tC+fft8r7Vq1Up9+/Y9Ls0lJSVFL7zwgmrUqKFp06ZV6L3s3LlT0i8VA4KtRpxxxhlq3bp12Nd97bXXXH+2I+m5557Tqaee6vs6MTFRf/3rXyVJixYt0rFjx4Ke9/DDD6t79+5+x8aMGaO0tDStXbvWb2Vn9erV+ve//60WLVro7bffPu73xZ133qkBAwbop59+0ty5cyP11oBKR3UCIERmqaRgPvzwQ9//YMuTmpqqwYMH64033tDChQt1wQUX6PXXX1e9evV8y4VVQWlpqSQd9z/x4uJivfbaa5KOD7pvuOEG3XfffVq8eLHWr1+vU045pXIGG8SWLVt0+eWX6+DBg7riiiuCzlZVFW6fdSRNnDhR559/viZOnKibb77Zl8IQTNkDcGV5zoHq1q2rLl26aM6cOfr666918cUX+73++eef69NPP9WmTZt0+PBh3z/WkpKSlJeXp3379h1XJSJUp59+uurVq6c5c+bor3/9q6655pqIVHUor8RWpNSoUcOXpmNq1qyZGjRooH379mnPnj1Bg/NgVUKSk5PVrl07rVixQlu3blVGRoYkac6cOfJ6vbr00ktVr169oGPp3bu35syZ40tJAGxEEAuEKFipJFPv3r1DCmKlX4K/N954Q5MnT9bhw4e1bds2jRgx4rhSWIHS09O1efNm7dq1K5yhn5Tdu3dL0nHBzuzZs7Vjx46gVRSaNm2qAQMG6IMPPtDkyZN9M0wn8v777wet2DBixIiTCix27Nihvn37auPGjerfv7/efffdiAaIwf4eNG7cWE899dRJXc/ts46kHj16aNCgQXr//ff12GOPlTvWn3/+WZJ0/fXX6/rrry/3umWrA9Ivm04MHjz4hBtFFBQUnHQQW69ePb366qsaPny4HnjgAT3wwANq3ry5zjvvPF1yySW65pprVLdu3bCvWxkltpo3b66aNWsGfS01NVX79u3T0aNHg77uNrucmpoqSX7nlX3/Jk2adMJVEfP7B9iGIBaIgQsvvFCnnHKK3nvvPe3YsUPSiVMJpF/yVDdv3lwpZayWL18uSerUqZPf8bL/KR49elQXXnjhcedt3bpV0i9Pcj/88MOulRZMOTk5vtldU+/evcMOYnft2qXf/OY3Wrt2rfr166f3338/rDJjoQg21jZt2pxUEOv1en0P2AR+1pH22GOPaebMmXr++efLredbNjN8ySWXnDAFo02bNr72iBEjtGTJEvXo0UPjx49X586d1aBBA1/g1qJFC23fvt03M3uyBg8erH79+umDDz7Qp59+qs8++0zTp0/X9OnTNXbsWM2fPz/qn2UwZZ+bmxNVE4nUuWXjyMrKUufOncvtG5iiANiEIBaIgbIyPQ8++KA+/vhjnXHGGerRo8cJz/vtb3+r999/X/PmzdPOnTujluO5e/duzZs3T5L8loq3b9/uK+mzZ88effbZZ67X2LZtmz788ENddtllJ7zfQw89dNx2vScjLy9Pv/nNb7R69Wr17dtXH3zwgWrVqlXh6waqaBBmmjNnji+vNHBZPtLOOOMMDRs2TJMmTdLYsWNdd2TLyMjQmjVrdNNNN+mqq64K6dqHDh3SnDlzlJCQoDlz5qh+/frHvV72D7ZISEtL85sp3rx5s+644w7NmDFDo0aNCjlHPRxlucEHDhwI+nokN8moiLK0gp49e+qf//xnjEcDRA8PdgExMmzYMKWnp6tRo0a65ZZbQjrn2muvVWZmpoqKinTbbbedcObnm2++Cbvcldfr1ahRo3TkyBE1bNhQN910k++1KVOmqKSkRN27d5fX63X9c88990iq3Ae8du/erd/85jf64Ycf1LdvX82cOTPsGrmVLT8/3/eE/0UXXaSsrKyo33P8+PGqXbu2Xn/9dddqCGVVHN59992Qr5ufn6+SkhKlpqYeF8BK0ptvvhnR4D9QRkaGxo8fL0lRK7FVthnGmjVrgr4ebDONWCj7/n3wwQeu6QlAPCCIBWKkVatW2rVrl3bv3h3yVq01a9bUu+++q1q1amn69OkaNGiQNmzYcFy/vXv3+mp5FhYWhjym7777TgMGDNDUqVOVmJioN9980+/BkLKqBEOHDi33OjfccIMkadasWZWSc7d371717dtXK1euVL9+/ap8AFu27Wy3bt30008/qXnz5q6bSkRay5Ytdccdd6i0tFTPPvts0D4333yz2rRpo2nTpunee+8NOvO4Y8cOvzE3bdpUDRo00P79+/XGG2/49f3iiy80ZsyYiIx/xYoVmjp1atB/nM2cOVOSf4pDJHXr1k2pqalatWrVce9x2rRprp9nZTv77LM1ePBgbd68Wb/73e+Cbv5w6NAhvfXWWyHn8QNVEekEgGW6du2qxYsXa8iQIZo5c6ZmzZqls88+W+3atVNCQoI2btyoZcuWqaSkRO3atQuaD7pkyRLfw0nFxcXav3+/Vq5c6VsObdu2rSZNmqQ+ffr4zlm0aJHWrVun5ORk/eEPfyh3jGeddZbOOeccLV++XK+//rruuuuuyH0AQYwYMULfffedPB6PGjZsqNtuuy1ov0GDBmnQoEF+x1555RW98sorvq+3b98uSbrlllt8AXzz5s1PetvWV155RQsXLpQkFRYWavfu3Vq+fLn27t0r6Ze838mTJ0ct8ApmzJgxevnll/3KY5nq1Kmj2bNna+DAgXriiSf00ksv6Ve/+pVatWqlw4cPa+3atVq9erWaNGmikSNHSvqlVNTYsWP1l7/8RTfccIOef/55tWvXTps2bdLnn3+u6667TosXL67wkvvGjRv1hz/8QbVr19Y555yjjIwMFRcX6/vvv9ePP/6opKQkPfHEExW6h5vatWtr/Pjxvvf4wgsvqGXLllq9erVWrVqlBx54QI888khU7h2uV199Vfv379fcuXN12mmnqXPnzmrbtq28Xq9yc3P17bffqqioSKtXr66ypeeAEyGIBSzUtWtXrV27Vm+88YZmzJih5cuX64cffpDH41Hz5s115ZVXavDgwRo8eHDQp6HXr1+v9evXS/qlTE9aWpoyMjJ08cUXa+DAgRowYIBq1PD/9VCWGnD55ZeH9GT5DTfcoOXLl2vSpElRD2LLAkKv11vuEnhmZuZxQeyWLVuC7pS0atUqX7siAeZnn33myx0u22a0U6dO6tKli66++upK2bgiUP369TVmzBhf2kcwZ511lr777ju9+OKLmj59ur777jstXbpUjRs3VqtWrXT33Xfryiuv9DvnzjvvVNu2bfXEE09o1apV+uGHH3T66afr+eef16233hqRUljnnXeeHn/8cS1evFirV6/WihUrVKNGDbVq1Uq333677rjjDt82w9Fw5513qmHDhvrHP/6hFStW6IcfflCXLl30zDPPqH379lUmiK1Xr54++ugjTZ06VW+++aa++eYb5eTkKDU1Vc2bN9e1116rK664IqZl8ICK8nijmaQEAAAARAE5sQAAALAOQSwAAACsQxALAAAA6xDEAgAAwDoEsQAAALAOQSwAAACsQxALAAAA6xDEAgAAwDoEsQAAALAOQSwAAACsQxALAAAA6xDEAgAAwDoEsQAAALAOQSwAAACsQxALAAAA6xDEAgAAwDoEsQAAALAOQSwAAACsQxALAAAA6xDEAgAAwDoEsQAAALAOQSwAAACsQxALAAAA6xDEAgAAwDoEsQAAALAOQSwAAACsQxALAAAA6xDEAgAAwDoEsQAAALAOQSwA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8rRnz55y+7Rr106///3vNXPmTHk8Ht/xkpISJSYm6tprr9Vrr70W0v0KCgqUlpam/Px8/icZIj6zk8PnFj4+s5PD5waguoppOkF6errS09NP2O/ZZ5/Vo48+6vt627Zt6t+/v6ZOnaru3btHc4gAAACogqzIiW3durXf13Xr1pUknXLKKWrVqlUshgQAAIAYsqrEVkUlJydr3LhxSk5OjvVQrMFndnL43MLHZ3Zy+NwAVFcxzYkFAAAATka1mokFAABAfCCIBQAAgHUIYgEAAGAdglgAAABYp1oHsbNnz1b37t1Vu3ZtNWjQQIMGDYr1kKxRWFiorKwseTwe5eTkxHo4VVZubq5uuukmtW3bVrVr19Ypp5yicePGqaioKNZDq3Kef/55ZWZmqlatWurevbu++uqrWA+pypowYYK6du2qevXqqUmTJho0aJB+/PHHWA8LACpVtQ1i33vvPV1//fUaPny4vv32W3322We65pprYj0sa9xzzz1q0aJFrIdR5a1Zs0alpaX617/+pR9++EF///vf9eKLL+q+++6L9dCqlKlTp2r06NEaN26cli9frs6dO6t///7atWtXrIdWJS1atEi33367vvjiC82fP1/Hjh3TxRdfrEOHDsV6aABQaaplia3i4mJlZmZq/Pjxuummm2I9HOvMnTtXo0eP1nvvvaezzjpLK1asUFZWVqyHZY0nn3xSL7zwgn7++edYD6XK6N69u7p27ap//vOfkqTS0lJlZGTojjvuUHZ2doxHV/Xl5eWpSZMmWrRokS644IJYDwcAKkW1nIldvny5tm7dqoSEBJ199tlq3ry5Lr30Uq1cuTLWQ6vydu7cqZEjR+qNN95QSkpKrIdjpfz8fDVs2DDWw6gyioqK9M0336hfv36+YwkJCerXr5+WLl0aw5HZIz8/X5L4ewWgWqmWQWzZDNhDDz2kBx54QLNmzVKDBg3Uu3dv7d27N8ajq7q8Xq+GDRumW2+9VV26dIn1cKy0bt06Pffcc7rllltiPZQqY/fu3SopKVHTpk39jjdt2lQ7duyI0ajsUVpaqjvvvFM9e/ZUx44dYz0cAKg0cRXEZmdny+PxlPunLEdRku6//34NHjxY5557rl599VV5PB5NmzYtxu+i8oX6uT333HM6cOCAxowZE+shx1yon5lp69atuuSSSzRkyBCNHDkyRiNHvLn99tu1cuVKvfPOO7EeCgBUqhqxHkAk3XXXXRo2bFi5fdq1a6ft27dLks4880zf8eTkZLVr106bNm2K5hCrpFA/t08++URLly49bo/2Ll266Nprr9Vrr70WxVFWLaF+ZmW2bdumPn366Pzzz9dLL70U5dHZpXHjxkpMTNTOnTv9ju/cuVPNmjWL0ajsMGrUKM2aNUuLFy9Wq1atYj0cAKhUcRXEpqenKz09/YT9zj33XCUnJ+vHH39Ur169JEnHjh1Tbm6u2rRpE+1hVjmhfm7PPvusHn30Ud/X27ZtU//+/TV16lR17949mkOsckL9zKRfZmD79Onjm/FPSIirBZAKS0pK0rnnnqsFCxb4ytyVlpZqwYIFGjVqVGwHV0V5vV7dcccdmj59uhYuXKi2bdvGekgAUOniKogNVWpqqm699VaNGzdOGRkZatOmjZ588klJ0pAhQ2I8uqqrdevWfl/XrVtXknTKKacwC+Ri69at6t27t9q0aaOnnnpKeXl5vteYZXSMHj1aQ4cOVZcuXdStWzc988wzOnTokIYPHx7roVVJt99+u95++23NmDFD9erV8+UOp6WlqXbt2jEeHQBUjmoZxEq/lDmqUaOGrr/+eh05ckTdu3fXJ598ogYNGsR6aIgj8+fP17p167Ru3brjAv1qWN3O1dVXX628vDyNHTtWO3bsUFZWlj788MPjHvbCL1544QVJUu/evf2Ov/rqqydMcwGAeFEt68QCAADAbiTnAQAAwDoEsQAAALAOQSwAAACsQxALAAAA6xDEAgAAwDoEsQAAALAOQSwAAACsQxALAAAA6xDEAhGwfft2XXPNNTr11FOVkJCgO++8M2i/adOm6fTTT1etWrXUqVMnzZkzp3IHCgBAnCCIBSKgsLBQ6enpeuCBB9S5c+egfT7//HP98Y9/1E033aQVK1Zo0KBBGjRokFauXFnJowUAwH5sOwuEIC8vT506ddKf/vQn3XfffZJ+CUp79+6tuXPnqm/fvr6+vXv3VlZWlp555hm/a1x99dU6dOiQZs2a5Tt23nnnKSsrSy+++GKlvA8AAOIFM7FACNLT0zV58mQ99NBDWrZsmQ4cOKDrr79eo0aN8gtgy7N06VL169fP71j//v21dOnSaAwZAIC4ViPWAwBsMWDAAI0cOVLXXnutunTpojp16mjChAkhn79jxw41bdrU71jTpk21Y8eOSA8VAIC4x0wsEIannnpKxcXFmjZtmt566y0lJyfHekgAAFRLBLFAGNavX69t27aptLRUubm5YZ3brFkz7dy50+/Yzp071axZswiOEACA6oEgFghRUVGRrrvuOl199dV65JFHNGLECO3atSvk83v06KEFCxb4HZs/f7569OgR6aECABD3yIkFQnT//fcrPz9fzz77rOrWras5c+boxhtv9FUbyMnJkSQdPHhQeXl5ysnJUVJSks4880xJ0p///GddeOGF+tvf/qbLLrtM77zzjpYtW6aXXnopVm8JAABrUWILCMHChQt10UUX6X//+5969eolScrNzVXnzp31+OOP67bbbpPH4znuvDZt2vilHUybNk0PPPCAcnNz1aFDBz3xxBMaMGBAZb0NAADiBkEsAAAArENOLAAAAKxDEAsAAADrEMQCAADAOgSxAAAAsA5BLAAAAKxDEAsAAADrEMQCAADAOgSxAAAAsA5BLAAAAKxDEAsAAADrEMQCAADAOgSxAAAAsM7/D7wVDsJ4wBbwAAAAAElFTkSuQmCC", + "image/png": "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XnqpJGnRokUhz6kYb0VhXvG/r7zyio4dOxa1sUXq+PHjTlHTunXr2A4mhMsuu0zNmjWT5P1ZV8d1112nrl27asOGDSH/8eRl3bp1ysvL0z333KM9e/aoX79+Gjx4sAoKCnTXXXfp/PPPV2FhYcA1n332mX7xi19o+fLlatWqla644gr169dP3333ne677z717NmzRh7+GzdunG688UatWrVKPXv21KhRo9S9e3cdO3ZMf/3rX7VmzZpqv0e0jBkzRhMmTFCTJk10+eWXq1WrVlq0aJEGDhyoDz/80PO6qVOnatSoUZKkoUOHqnPnzlqxYoUuv/zykLPshw4d0sUXX6zx48fr008/1dlnn63hw4crNTVVTz75pM4555yTPmQKxDuKWKCWjR07VuXl5QH5u2+++Ubvv/++LrzwQnXu3Nnz2k8++UTSDzOs0XbuuedKkr788ssTvvf111/r/fffdyISktS3b1916dJFhYWF+vvf/x718YVrxowZ2rt3r9LS0nTZZZfFejgn8Pl8zoNDoT7r6kpKStJ9990nSZo2bVpY/8A4duyYhg8frm3btunOO+9Ufn6+Fi5cqHnz5unbb7/Vz372M61Zs0a/+tWvAq7Lzc3Vu+++q127dun999/XK6+8onfeeUdbt27Vddddp40bN2rKlClhj/3uu++W3+8PmPncunWrnn32WWVnZ2vz5s1atGiRXn75Zb399tv6+uuvtW7durh9EGvLli1asmSJ1q5dq8WLF2v27Nlat26dbrjhBhUXF1f62Tz66KNauXKlli9frldeeUVr1qzR1KlT5ff7NWnSpBPOv+mmm7RkyRJdfvnl2rRpk5YsWaI5c+Zow4YN+vOf/6x9+/Y5sSHAVhSxQJjGjBlTaRuepUuXhnWfn/70p2rYsKFmzZolv98vyY0XVMxmeikoKJAktWjRoho/SXiaN28uSSFnzirGO3z4cGVlZTmvV4w/XiIFX3zxhf7f//t/kqS77rpLLVu2jPGIQqvss64JV1xxhS644ALt2LFDf/nLX056/nPPPadNmzbp8ssv1+9//3ulpKQ432vYsKGeeuoptWjRQi+88IIOHDjgfC87O1uDBg06IebSsGFDPfHEE6pfv77mzJlTrZ9l9+7dkn7oGBBqNeL0009Xu3btIr7vc8895/l3uyY99thj+tGPfuR8Xa9ePf3hD3+QJC1dulTHjx8Ped0999yj3r17B7w2efJkZWZm6uuvvw5Y2Vm/fr3+9re/qU2bNnr55ZdP+O/FbbfdpqFDh+qbb77RwoULa+pHA2od3QmAMJmtkkJ5++23nf+DrUxGRoauvPJKvfDCC1qyZIkuvPBCPf/880pPT3eWC+NBeXm5JJ3wf+KlpaV67rnnJJ1YdF933XW64447tGzZMm3atEmdOnWqncGGsH37dl1xxRU6fPiwhg8fHnK2Kl54fdY16YEHHlDfvn31wAMP6Be/+IUTYQil4gG4ipxzsMaNG6tHjx5asGCBPv74Y11yySUB31+xYoXef/99bd26VUePHnX+sZaSkqKCggIdOHDghC4R4erSpYvS09O1YMEC/eEPf9DVV19dI10dKmuxVVPq16/vxHRMrVq1UtOmTXXgwAHt27cvZHEeqktIamqqOnbsqNWrV2vHjh3KycmRJC1YsEB+v1+XXXaZ0tPTQ45lwIABWrBggRNJAGxEEQuEKVSrJNOAAQPCKmKlH4q/F154QTNnztTRo0e1c+dOjRs37oRWWMGysrK0bds27dmzJ5KhV8nevXsl6YRiZ/78+dq1a1fILgotW7bU0KFDNW/ePM2cOdOZYTqZ119/PWTHhnHjxlWpsNi1a5cGDRqkLVu2aMiQIXr11VdrtEAM9eegefPmeuihh6p0P6/Puib16dNHI0aM0Ouvv6777ruv0rF+++23kqRrr71W1157baX3rVgdkH7YdOLKK6886UYRRUVFVS5i09PT9eyzz2rMmDG68847deedd6p169Y677zzdOmll+rqq69W48aNI75vbbTYat26tZKTk0N+LyMjQwcOHND3338f8vtes8sZGRmSFHBdxe/fjBkzTroqYv7+AbahiAVioH///urUqZNee+017dq1S9LJowTSDznVbdu21Uobq1WrVkmSzjrrrIDXK/5P8fvvv1f//v1PuG7Hjh2SfniS+5577vHstGBas2aNM7trGjBgQMRF7J49e3TRRRfp66+/1uDBg/X6669H1GYsHKHG2r59+yoVsX6/33nAJvizrmn33Xef3nzzTT3++OOV9vOtmBm+9NJLTxrBaN++vXM8btw4LV++XH369NG0adOUl5enpk2bOoVbmzZt9N133zkzs1V15ZVXavDgwZo3b57ef/99/fvf/9bcuXM1d+5cTZkyRYsWLYr6ZxlKxefm5WTdRGrq2opxdOvWTXl5eZWeGxxRAGxCEQvEQEWbnrvuukvvvvuuTj/9dPXp0+ek1/34xz/W66+/rnfeeUe7d++OWsZz7969eueddyQpYKn4u+++c1r67Nu3T//+978977Fz5069/fbbGjZs2Enf7+677z5hu96qKCgo0EUXXaT169dr0KBBmjdvnho0aFDt+warbhFmWrBggZMrDV6Wr2mnn366Ro8erRkzZmjKlCmeO7Ll5ORow4YNGjt2rH7yk5+Ede8jR45owYIFSkpK0oIFC9SkSZMTvl/xD7aakJmZGTBTvG3bNt1666164403NGHChLAz6pGoyAYfOnQo5PdrcpOM6qiIFZx//vn661//GuPRANHDg11AjIwePVpZWVk65ZRTdOONN4Z1zTXXXKPc3FyVlJTo5ptvPunMz6effhpxuyu/368JEybo2LFjatasmcaOHet8b9asWSorK1Pv3r3l9/s9f/3mN7+RVLsPeO3du1cXXXSRvvzySw0aNEhvvvlmxD1ya1thYaHzhP/FF1+sbt26Rf09p02bprS0ND3//POe3RAquji8+uqrYd+3sLBQZWVlysjIOKGAlaQXX3yxRov/YDk5OZo2bZokRa3FVsVmGBs2bAj5/VCbacRCxe/fvHnzPOMJQCKgiAViJDs7W3v27NHevXvD3qo1OTlZr776qho0aKC5c+dqxIgR2rx58wnn7d+/3+nlWVxcHPaYPv/8cw0dOlSzZ89WvXr19OKLLwY8GFLRleD666+v9D7XXXedJOmtt96qlczd/v37NWjQIK1du1aDBw+O+wK2YtvZXr166ZtvvlHr1q09N5WoaW3bttWtt96q8vJyPfrooyHP+cUvfqH27dtrzpw5+u1vfxty5nHXrl0BY27ZsqWaNm2qgwcP6oUXXgg494MPPtDkyZNrZPyrV6/W7NmzQ/7j7M0335QUGHGoSb169VJGRobWrVt3ws84Z84cz8+ztp1zzjm68sortW3bNv3Hf/xHyM0fjhw5opdeeinsHD8Qj4gTAJbp2bOnli1bplGjRunNN9/UW2+9pXPOOUcdO3ZUUlKStmzZok8++URlZWXq2LFjyDzo8uXLnYeTSktLdfDgQa1du9ZZDu3QoYNmzJihgQMHOtcsXbpUGzduVGpqqn76059WOsYzzzxT3bt316pVq/T888/r9ttvr7kPIIRx48bp888/l8/nU7NmzXTzzTeHPG/EiBEaMWJEwGvPPPOMnnnmGefr7777TpJ04403OgV869atq7xt6zPPPKMlS5ZIkoqLi7V3716tWrVK+/fvl/RD7nfmzJlRK7xCmTx5sp5++umA9limRo0aaf78+br88sv14IMP6qmnntLZZ5+t7OxsHT16VF9//bXWr1+vFi1aaPz48ZJ+aBU1ZcoU/epXv9J1112nxx9/XB07dtTWrVu1YsUK/fznP9eyZcuqveS+ZcsW/fSnP1VaWpq6d++unJwclZaW6osvvtBXX32llJQUPfjgg9V6Dy9paWmaNm2a8zM+8cQTatu2rdavX69169bpzjvv1O9///uovHeknn32WR08eFALFy7Uaaedpry8PHXo0EF+v1/5+fn67LPPVFJSovXr18dt6zngZChiAQv17NlTX3/9tV544QW98cYbWrVqlb788kv5fD61bt1aI0eO1JVXXqkrr7wy5NPQmzZt0qZNmyT90KYnMzNTOTk5uuSSS3T55Zdr6NChql8/8D8PFdGAK664Iqwny6+77jqtWrVKM2bMiHoRW1EQ+v3+SpfAc3NzTyhit2/fHnKnpHXr1jnH1Skw//3vfzvZ4YptRs866yz16NFDV111Va1sXBGsSZMmmjx5shP7COXMM8/U559/rieffFJz587V559/rpUrV6p58+bKzs7Wr3/9a40cOTLgmttuu00dOnTQgw8+qHXr1unLL79Uly5d9Pjjj+umm26qkVZY5513nu6//34tW7ZM69ev1+rVq1W/fn1lZ2frlltu0a233upsMxwNt912m5o1a6a//OUvWr16tb788kv16NFDjzzyiE499dS4KWLT09P1z3/+U7Nnz9aLL76oTz/9VGvWrFFGRoZat26ta665RsOHD49pGzygunz+aIaUAAAAgCggEwsAAADrUMQCAADAOhSxAAAAsA5FLAAAAKxDEQsAAADrUMQCAADAOhSxAAAAsA5FLAAAAKxDEQsAAADrUMQCAADAOhSxAAAAsA5FLAAAAKxDEQsAAADrUMQCAADAOhSxAAAAsA5FLAAAAKxDEQsAAADrUMQCAADAOhSxAAAAsA5FLAAAAKxDEQsAAADrUMQCAADAOhSxAAAAsA5FLAAAAKxDEQsAAADrUMQCAADAOhSxAAAAsA5FLAAA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vN6yZUvt2rUrRqOyR3l5uW677Tadf/756tq1a6yHAwC1JqGK2EmTJsnn81X6qyKjKEm/+93vdOWVV+rcc8/Vs88+K5/Ppzlz5sT4p6h94X5ujz32mA4dOqTJkyfHesgxF+5nZtqxY4cuvfRSjRo1SuPHj4/RyJFobrnlFq1du1avvPJKrIcCALWqfqwHUJNuv/12jR49utJzOnbsqO+++06SdMYZZzivp6amqmPHjtq6dWs0hxiXwv3c3nvvPa1cufKEPdp79Oiha665Rs8991wURxlfwv3MKuzcuVMDBw5U37599dRTT0V5dHZp3ry56tWrp927dwe8vnv3brVq1SpGo7LDhAkT9NZbb2nZsmXKzs6O9XAAoFYlVBGblZWlrKysk5537rnnKjU1VV999ZX69esnSTp+/Ljy8/PVvn37aA8z7oT7uT366KO69957na937typIUOGaPbs2erdu3c0hxh3wv3MpB9mYAcOHOjM+CclJdQCSLWlpKTo3HPP1eLFi502d+Xl5Vq8eLEmTJgQ28HFKb/fr1tvvVVz587VkiVL1KFDh1gPCQBqXUIVseHKyMjQTTfdpKlTpyonJ0ft27fXH//4R0nSqFGjYjy6+NWuXbuArxs3bixJ6tSpE7NAHnbs2KEBAwaoffv2euihh1RQUOB8j1lG18SJE3X99derR48e6tWrlx555BEdOXJEY8aMifXQ4tItt9yil19+WW+88YbS09Od7HBmZqbS0tJiPDoAqB11soiVfmhzVL9+fV177bU6duyYevfurffee09NmzaN9dCQQBYtWqSNGzdq48aNJxT6dbC7naerrrpKBQUFmjJlinbt2qVu3brp7bffPuFhL/zgiSeekCQNGDAg4PVnn332pDEXAEgUdbJPLAAAAOxGOA8AAADWoYgFAACAdShiAQAAYB2KWAAAAFiHIhYAAADWoYgFAACAdShiAQAAYB2KWAAAAFiHIhaoAd99952uvvpq/ehHP1JSUpJuu+22kOfNmTNHXbp0UYMGDXTWWWdpwYIFtTtQAAASBEUsUAOKi4uVlZWlO++8U3l5eSHPWbFihX72s59p7NixWr16tUaMGKERI0Zo7dq1tTxaAADsx7azQBgKCgp01lln6Ze//KXuuOMOST8UpQMGDNDChQs1aNAg59wBAwaoW7dueuSRRwLucdVVV+nIkSN66623nNfOO+88devWTU8++WSt/BwAACQKZmKBMGRlZWnmzJm6++679cknn+jQoUO69tprNWHChIACtjIrV67U4MGDA14bMmSIVq5cGY0hAwCQ0OrHegCALYYOHarx48frmmuuUY8ePdSoUSNNnz497Ot37dqlli1bBrzWsmVL7dq1q6aHCgBAwmMmFojAQw89pNLSUs2ZM0cvvfSSUlNTYz0kAADqJIpYIAKbNm3Szp07VV5ervz8/IiubdWqlXbv3h3w2u7du9WqVasaHCEAAHUDRSwQppKSEv385z/XVVddpd///vcaN26c9uzZE/b1ffr00eLFiwNeW7Rokfr06VPTQwUAIOGRiQXC9Lvf/U6FhYV69NFH1bhxYy1YsEA33HCD021gzZo1kqTDhw+roKBAa9asUUpKis444wxJ0n//93+rf//+evjhhzVs2DC98sor+uSTT/TUU0/F6kcCAMBatNgCwrBkyRJdfPHF+te//qV+/fpJkvLz85WXl6f7779fN998s3w+3wnXtW/fPiB2MGfOHN15553Kz89X586d9eCDD2ro0KG19WMAAJAwKGIBAABgHTKxAAAAsA5FLAAAAKxDEQsAAADrUMQCAADAOhSxAAAAsA5FLAAAAKxDEQsAAADrUMQCAADAOhSxAAAAsA5FLAAAAKxDEQsAAADrUMQCAADAOv8fp3ghGYoNLqQAAAAASUVORK5CYII=", "text/plain": [ "Figure(PyObject
)" ] diff --git a/src/abstractmcmc.jl b/src/abstractmcmc.jl index 28d4c62e..74f28385 100644 --- a/src/abstractmcmc.jl +++ b/src/abstractmcmc.jl @@ -30,7 +30,7 @@ end function AbstractMCMC.step( rng::AbstractRNG, - model::DynamicPPL.Model, + model::AbstractMCMC.AbstractModel, spl::AbstractMCMC.AbstractSampler; init_params = nothing, kwargs..., @@ -41,7 +41,6 @@ function AbstractMCMC.step( logdensityfunction = DynamicPPL.LogDensityFunction(vi, model, ctxt) logdensityproblem = LogDensityProblemsAD.ADgradient(logdensityfunction) logdensitymodel = AbstractMCMC.LogDensityModel(logdensityproblem) - #model = getmodel(logdensitymodel) # We will need to implement this but it is going to be # Interesting how to plug the transforms along the sampling @@ -106,7 +105,7 @@ end function AbstractMCMC.step( rng::AbstractRNG, - model::DynamicPPL.Model, + model::AbstractMCMC.AbstractModel, spl::AbstractMCMC.AbstractSampler, state::HMCState; nadapts::Int = 0, From 8fa9fcb4a428d5f663a1810b886b55bba9fa31e5 Mon Sep 17 00:00:00 2001 From: jaimerz Date: Thu, 8 Jun 2023 17:08:36 +0100 Subject: [PATCH 19/27] fixed constructors --- src/AdvancedHMC.jl | 32 +++++++++++++++++++++++++++----- src/constructors.jl | 30 +++++++++++++++--------------- 2 files changed, 42 insertions(+), 20 deletions(-) diff --git a/src/AdvancedHMC.jl b/src/AdvancedHMC.jl index 78b77cfc..1b86347a 100644 --- a/src/AdvancedHMC.jl +++ b/src/AdvancedHMC.jl @@ -65,6 +65,30 @@ export Trajectory, MultinomialTS, find_good_stepsize +# Useful defaults + +struct NUTS{TS,TC} end + +""" +$(SIGNATURES) + +Convenient constructor for the no-U-turn sampler (NUTS). +This falls back to `HMCKernel(Trajectory{TS}(int, TC(args...; kwargs...)))` where + +- `TS<:Union{MultinomialTS, SliceTS}` is the type for trajectory sampler +- `TC<:Union{ClassicNoUTurn, GeneralisedNoUTurn, StrictGeneralisedNoUTurn}` is the type for termination criterion. + +See [`ClassicNoUTurn`](@ref), [`GeneralisedNoUTurn`](@ref) and [`StrictGeneralisedNoUTurn`](@ref) for details in parameters. +""" +NUTS{TS,TC}(int::AbstractIntegrator, args...; kwargs...) where {TS,TC} = + HMCKernel(Trajectory{TS}(int, TC(args...; kwargs...))) +NUTS(int::AbstractIntegrator, args...; kwargs...) = + HMCKernel(Trajectory{MultinomialTS}(int, GeneralisedNoUTurn(args...; kwargs...))) +NUTS(ϵ::AbstractScalarOrVec{<:Real}) = + HMCKernel(Trajectory{MultinomialTS}(Leapfrog(ϵ), GeneralisedNoUTurn())) + +export NUTS + # Deprecations for trajectory.jl abstract type AbstractTrajectory end @@ -80,7 +104,6 @@ struct StaticTrajectory{TS} end Trajectory{EndPointTS}(Leapfrog(ϵ), FixedNSteps(L)), ) -#= struct HMCDA{TS} end @deprecate HMCDA{TS}(int::AbstractIntegrator, λ) where {TS} HMCKernel( Trajectory{TS}(int, FixedIntegrationTime(λ)), @@ -91,11 +114,10 @@ struct HMCDA{TS} end @deprecate HMCDA(ϵ::AbstractScalarOrVec{<:Real}, λ) HMCKernel( Trajectory{EndPointTS}(Leapfrog(ϵ), FixedIntegrationTime(λ)), ) -=# @deprecate find_good_eps find_good_stepsize -export StaticTrajectory, find_good_eps #HMCDA, +export StaticTrajectory, HMCDA, find_good_eps include("adaptation/Adaptation.jl") using .Adaptation @@ -147,8 +169,8 @@ include("diagnosis.jl") include("sampler.jl") export sample -include("constructors.jl") include("abstractmcmc.jl") +include("constructors.jl") ## Without explicit AD backend function Hamiltonian(metric::AbstractMetric, ℓ::LogDensityModel; kwargs...) @@ -243,4 +265,4 @@ function __init__() end end -end # module +end # module \ No newline at end of file diff --git a/src/constructors.jl b/src/constructors.jl index 7134ba2a..bab615b7 100644 --- a/src/constructors.jl +++ b/src/constructors.jl @@ -19,12 +19,12 @@ and `adaptor` after sampling. To access the updated fields use the resulting [`HMCState`](@ref). """ struct HMCSampler{K,M,A} <: AbstractMCMC.AbstractSampler - "Initial [`AbstractMCMCKernel`](@ref)." - initial_kernel::K - "Initial [`AbstractMetric`](@ref)." - initial_metric::M - "Initial [`AbstractAdaptor`](@ref)." - initial_adaptor::A + "[`AbstractMCMCKernel`](@ref)." + kernel::K + "[`AbstractMetric`](@ref)." + metric::M + "[`AbstractAdaptor`](@ref)." + adaptor::A end HMCSampler(kernel, metric) = HMCSampler(kernel, metric, Adaptation.NoAdaptation()) @@ -57,7 +57,7 @@ Arguments: - `init_ϵ::Float64` : Initial step size; 0 means automatically searching using a heuristic procedure. """ -struct NUTS <: AdaptiveHamiltonian +struct AHMC_NUTS <: AdaptiveHamiltonian n_adapts::Int # number of samples with adaption for ϵ TAP::Float64 # target accept rate max_depth::Int # maximum tree depth @@ -81,10 +81,10 @@ function NUTS( return StanHMCAdaptor(MassMatrixAdaptor(metric), StepSizeAdaptor(TAP, integrator)) end - NUTS(n_adapts, TAP, max_depth, Δ_max, init_ϵ, metric, integrator, NUTS_kernel, adaptor) + AHMC_NUTS(n_adapts, TAP, max_depth, Δ_max, init_ϵ, metric, integrator, NUTS_kernel, adaptor) end -export NUTS +export AHMC_NUTS ####### # HMC # ####### @@ -124,7 +124,7 @@ sample(gdemo([1.5, 2]), HMC(0.1, 10), 1000) sample(gdemo([1.5, 2]), HMC(0.01, 10), 1000) ``` """ -struct HMC <: StaticHamiltonian +struct AHMC_HMC <: StaticHamiltonian ϵ::Float64 # leapfrog step size n_leapfrog::Int # leapfrog step number metric @@ -140,10 +140,10 @@ function HMC( integrator=Leapfrog) kernel = HMC_kernel(n_leapfrog) adaptor = Adaptation.NoAdaptation() - return HMC(ϵ, n_leapfrog, metric, integrator, kernel, adaptor) + return AHMC_HMC(ϵ, n_leapfrog, metric, integrator, kernel, adaptor) end -export HMC +export AHMC_HMC ######### # HMCDA # ######### @@ -179,7 +179,7 @@ For more information, please view the following paper ([arXiv link](https://arxi setting path lengths in Hamiltonian Monte Carlo." Journal of Machine Learning Research 15, no. 1 (2014): 1593-1623. """ -struct HMCDA <: AdaptiveHamiltonian +struct AHMC_HMCDA <: AdaptiveHamiltonian n_adapts :: Int # number of samples with adaption for ϵ TAP :: Float64 # target accept rate λ :: Float64 # target leapfrog length @@ -202,7 +202,7 @@ function HMCDA( return StanHMCAdaptor(MassMatrixAdaptor(metric), StepSizeAdaptor(TAP, integrator)) end - return HMCDA(n_adapts, TAP, λ, ϵ, metric, integrator, kernel, adaptor) + return AHMC_HMCDA(n_adapts, TAP, λ, ϵ, metric, integrator, kernel, adaptor) end -export HMCDA \ No newline at end of file +export AHMC_HMCDA \ No newline at end of file From c582abfc807696d42966ec6851c524cfb462a26d Mon Sep 17 00:00:00 2001 From: jaimerz Date: Fri, 9 Jun 2023 11:57:52 +0100 Subject: [PATCH 20/27] constructors reworked --- Lab.ipynb | 339 ++++++++++++++++++++------------------------ src/abstractmcmc.jl | 70 +++++---- src/constructors.jl | 118 +++++++-------- 3 files changed, 240 insertions(+), 287 deletions(-) diff --git a/Lab.ipynb b/Lab.ipynb index 426beaa7..e4d30c35 100644 --- a/Lab.ipynb +++ b/Lab.ipynb @@ -11,18 +11,10 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "id": "896323ee", "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32m\u001b[1m Activating\u001b[22m\u001b[39m project at `~/Cambdrige`\n" - ] - } - ], + "outputs": [], "source": [ "using Pkg\n", "Pkg.activate(\"..\")" @@ -40,10 +32,10 @@ "text": [ "\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling AdvancedHMC [0bf59076-c3b1-5ca4-86bd-e02cd72cde3d]\n", "\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling Turing [fce5fe82-541a-59a6-adf8-730c64b5f9a0]\n", - "WARNING: Method definition sample(Random.AbstractRNG, AbstractMCMC.AbstractModel, AbstractMCMC.AbstractSampler, AbstractMCMC.AbstractMCMCEnsemble, Integer, Integer) in module AbstractMCMC at /home/jaimerz/.julia/packages/AbstractMCMC/bE6VB/src/sample.jl:81 overwritten in module Inference at /home/jaimerz/Cambdrige/Turing.jl/src/inference/Inference.jl:214.\n", + "WARNING: Method definition sample(Random.AbstractRNG, AbstractMCMC.AbstractModel, AbstractMCMC.AbstractSampler, AbstractMCMC.AbstractMCMCEnsemble, Integer, Integer) in module AbstractMCMC at /home/jaimerz/.julia/packages/AbstractMCMC/bE6VB/src/sample.jl:81 overwritten in module Inference at /home/jaimerz/Cambdrige/Turing.jl/src/inference/Inference.jl:210.\n", " ** incremental compilation may be fatally broken for this module **\n", "\n", - "WARNING: Method definition kwcall(Any, typeof(StatsBase.sample), Random.AbstractRNG, AbstractMCMC.AbstractModel, AbstractMCMC.AbstractSampler, AbstractMCMC.AbstractMCMCEnsemble, Integer, Integer) in module AbstractMCMC at /home/jaimerz/.julia/packages/AbstractMCMC/bE6VB/src/sample.jl:81 overwritten in module Inference at /home/jaimerz/Cambdrige/Turing.jl/src/inference/Inference.jl:214.\n", + "WARNING: Method definition kwcall(Any, typeof(StatsBase.sample), Random.AbstractRNG, AbstractMCMC.AbstractModel, AbstractMCMC.AbstractSampler, AbstractMCMC.AbstractMCMCEnsemble, Integer, Integer) in module AbstractMCMC at /home/jaimerz/.julia/packages/AbstractMCMC/bE6VB/src/sample.jl:81 overwritten in module Inference at /home/jaimerz/Cambdrige/Turing.jl/src/inference/Inference.jl:210.\n", " ** incremental compilation may be fatally broken for this module **\n", "\n" ] @@ -137,7 +129,7 @@ { "data": { "text/plain": [ - "AdvancedHMC.NUTS(500, 0.95, 10, 1000.0, 0.1, nothing, Leapfrog, AdvancedHMC.NUTS_kernel, AdvancedHMC.var\"#adaptor#32\"{Float64}(0.95))" + "AdvancedHMC.HMCSampler{Nothing, Nothing, Nothing, Nothing}(AdvancedHMC.NUTS_alg(500, 0.95, 10, 1000.0, 0.1), nothing, nothing, nothing, nothing)" ] }, "execution_count": 5, @@ -148,7 +140,8 @@ "source": [ "nadapts=500 \n", "TAP=0.95\n", - "nuts = AdvancedHMC.NUTS(nadapts, TAP; init_ϵ=0.1)" + "ϵ=0.1\n", + "nuts = AdvancedHMC.NUTS(nadapts, TAP; ϵ=ϵ)" ] }, { @@ -160,7 +153,7 @@ { "data": { "text/plain": [ - "AdvancedHMC.HMC(0.1, 20, nothing, Leapfrog, AdvancedHMC.var\"#kernel#33\"{Int64}(20), AdvancedHMC.Adaptation.NoAdaptation())" + "AdvancedHMC.HMCSampler{Nothing, Nothing, Nothing, Nothing}(AdvancedHMC.HMC_alg(0.1, 20), nothing, nothing, nothing, nothing)" ] }, "execution_count": 6, @@ -183,7 +176,7 @@ { "data": { "text/plain": [ - "AdvancedHMC.HMCDA(500, 0.95, 1.0, 0.1, nothing, Leapfrog, AdvancedHMC.var\"#kernel#35\"{Float64}(1.0), AdvancedHMC.var\"#adaptor#37\"{Float64}(0.95))" + "AdvancedHMC.HMCSampler{Nothing, Nothing, Nothing, Nothing}(AdvancedHMC.HMCDA_alg(500, 0.95, 1.0, 0.1), nothing, nothing, nothing, nothing)" ] }, "execution_count": 7, @@ -195,28 +188,21 @@ "n_adapts = 500\n", "TAP = 0.95\n", "λ = 0.1 * 10\n", - "#ϵ = 0.1\n", - "hmcda = AdvancedHMC.HMCDA(n_adapts, TAP, λ; ϵ = 0.1)" + "ϵ=0.1\n", + "hmcda = AdvancedHMC.HMCDA(n_adapts, TAP, λ; ϵ=ϵ)" ] }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 14, "id": "b0193663", "metadata": {}, "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "true\n" - ] - }, { "name": "stderr", "output_type": "stream", "text": [ - "\u001b[32mSampling: 100%|█████████████████████████████████████████| Time: 0:00:01\u001b[39m\n" + "\u001b[32mSampling: 100%|█████████████████████████████████████████| Time: 0:00:02\u001b[39m\n" ] }, { @@ -231,60 +217,59 @@ "internals = lp, n_steps, is_accept, acceptance_rate, log_density, hamiltonian_energy, hamiltonian_energy_error, max_hamiltonian_energy_error, tree_depth, numerical_error, step_size, nom_step_size, is_adapt\n", "\n", "Summary Statistics\n", - " \u001b[1m parameters \u001b[0m \u001b[1m mean \u001b[0m \u001b[1m std \u001b[0m \u001b[1m mcse \u001b[0m \u001b[1m ess_bulk \u001b[0m \u001b[1m rhat \u001b[0m \u001b[1m ess_per_se\u001b[0m ⋯\n", - " \u001b[90m Symbol \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Real \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Missin\u001b[0m ⋯\n", + " \u001b[1m parameters \u001b[0m \u001b[1m mean \u001b[0m \u001b[1m std \u001b[0m \u001b[1m mcse \u001b[0m \u001b[1m ess_bulk \u001b[0m \u001b[1m rhat \u001b[0m \u001b[1m ess_per_sec\u001b[0m ⋯\n", + " \u001b[90m Symbol \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Real \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Missing\u001b[0m ⋯\n", "\n", - " param_1 -0.0174 0.7500 0.0350 730.0857 1.0004 missin ⋯\n", - " param_2 0.6148 0.7632 0.0113 4717.0640 0.9999 missin ⋯\n", - " param_3 0.6330 0.7287 0.0104 5085.7554 1.0002 missin ⋯\n", - " param_4 -0.4251 0.7090 0.0092 5955.7914 0.9999 missin ⋯\n", - " param_5 0.0785 0.6943 0.0069 10060.6359 1.0011 missin ⋯\n", - " param_6 0.9763 0.7883 0.0148 2783.3659 1.0000 missin ⋯\n", - " param_7 -1.7070 0.8929 0.0234 1386.4922 1.0003 missin ⋯\n", - " param_8 -0.0592 0.7182 0.0080 8050.8462 1.0003 missin ⋯\n", - " param_9 0.3400 0.7102 0.0078 8396.9475 0.9999 missin ⋯\n", - " param_10 -1.6307 0.8631 0.0220 1459.1123 1.0008 missin ⋯\n", - " param_11 -0.8527 0.7616 0.0121 4055.1172 1.0008 missin ⋯\n", - " param_12 0.9897 0.7565 0.0145 2731.9896 1.0004 missin ⋯\n", - " param_13 0.0393 0.7191 0.0076 9121.5795 1.0000 missin ⋯\n", - " param_14 0.0494 0.6942 0.0074 8791.7218 0.9999 missin ⋯\n", - " param_15 -0.2733 0.7141 0.0076 8812.5283 1.0000 missin ⋯\n", - " param_16 -0.0573 0.7148 0.0073 9500.3237 1.0000 missin ⋯\n", - " param_17 -0.6470 0.7472 0.0103 5434.1051 1.0012 missin ⋯\n", - " param_18 0.8703 0.7677 0.0132 3439.5268 0.9999 missin ⋯\n", - " param_19 -0.2340 0.7265 0.0082 7689.3257 1.0000 missin ⋯\n", - " param_20 0.5327 0.7314 0.0093 6332.7328 1.0002 missin ⋯\n", - " param_21 0.6139 0.7429 0.0106 4997.4199 1.0000 missin ⋯\n", - "\u001b[36m 1 column omitted\u001b[0m\n", + " param_1 -0.0258 0.8033 0.0415 657.1151 1.0003 missing ⋯\n", + " param_2 0.6087 0.7479 0.0103 5429.6179 1.0007 missing ⋯\n", + " param_3 0.6272 0.7310 0.0116 4004.8332 1.0006 missing ⋯\n", + " param_4 -0.4405 0.7362 0.0095 6115.2473 0.9998 missing ⋯\n", + " param_5 0.0763 0.7130 0.0076 8880.6431 1.0001 missing ⋯\n", + " param_6 0.9663 0.7823 0.0161 2293.4661 1.0008 missing ⋯\n", + " param_7 -1.7041 0.9094 0.0254 1180.7796 1.0002 missing ⋯\n", + " param_8 -0.0535 0.6781 0.0071 9184.4234 1.0003 missing ⋯\n", + " param_9 0.3371 0.7144 0.0079 8376.5056 1.0028 missing ⋯\n", + " param_10 -1.6400 0.8972 0.0248 1219.6314 1.0014 missing ⋯\n", + " param_11 -0.8355 0.7792 0.0138 3173.6435 0.9999 missing ⋯\n", + " param_12 0.9743 0.7949 0.0161 2460.7900 1.0003 missing ⋯\n", + " param_13 0.0657 0.7135 0.0074 9248.4906 0.9999 missing ⋯\n", + " param_14 0.0562 0.7009 0.0077 8360.4727 0.9999 missing ⋯\n", + " param_15 -0.2658 0.7304 0.0076 8803.2204 1.0027 missing ⋯\n", + " param_16 -0.0616 0.6954 0.0071 9749.6279 1.0013 missing ⋯\n", + " param_17 -0.6454 0.7203 0.0102 4972.0347 1.0002 missing ⋯\n", + " param_18 0.8517 0.7576 0.0134 3178.1742 0.9999 missing ⋯\n", + " param_19 -0.2281 0.7108 0.0081 7625.7069 1.0011 missing ⋯\n", + " param_20 0.5463 0.7184 0.0104 4930.7785 0.9999 missing ⋯\n", + " param_21 0.6342 0.7547 0.0114 4398.4838 1.0003 missing ⋯\n", "\n", "Quantiles\n", " \u001b[1m parameters \u001b[0m \u001b[1m 2.5% \u001b[0m \u001b[1m 25.0% \u001b[0m \u001b[1m 50.0% \u001b[0m \u001b[1m 75.0% \u001b[0m \u001b[1m 97.5% \u001b[0m\n", " \u001b[90m Symbol \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m\n", "\n", - " param_1 -1.7713 -0.3872 0.0793 0.4723 1.1709\n", - " param_2 -0.8114 0.1038 0.5695 1.0997 2.2276\n", - " param_3 -0.6902 0.1206 0.5973 1.1164 2.1311\n", - " param_4 -1.8581 -0.8688 -0.4034 0.0324 0.9877\n", - " param_5 -1.2657 -0.3823 0.0609 0.5435 1.4433\n", - " param_6 -0.4298 0.4240 0.9355 1.4626 2.6768\n", - " param_7 -3.5151 -2.2903 -1.6749 -1.0749 -0.0668\n", - " param_8 -1.4734 -0.5202 -0.0467 0.4045 1.3604\n", - " param_9 -1.0429 -0.1228 0.3206 0.7800 1.8106\n", - " param_10 -3.4084 -2.2220 -1.6031 -1.0067 -0.0836\n", - " param_11 -2.4772 -1.3518 -0.7930 -0.3179 0.5413\n", - " param_12 -0.3563 0.4531 0.9460 1.4955 2.5399\n", - " param_13 -1.4161 -0.4123 0.0330 0.4998 1.4982\n", - " param_14 -1.2656 -0.4093 0.0408 0.4927 1.4230\n", - " param_15 -1.7088 -0.7418 -0.2609 0.2003 1.1286\n", - " param_16 -1.4604 -0.5194 -0.0537 0.4161 1.3682\n", - " param_17 -2.1648 -1.1385 -0.6149 -0.1260 0.7007\n", - " param_18 -0.5556 0.3307 0.8370 1.3768 2.4403\n", - " param_19 -1.7389 -0.6792 -0.2201 0.2328 1.1957\n", - " param_20 -0.8335 0.0358 0.4972 0.9939 2.0256\n", - " param_21 -0.7627 0.1034 0.5736 1.0991 2.1488\n" + " param_1 -2.0694 -0.4077 0.0779 0.4982 1.2183\n", + " param_2 -0.7801 0.0944 0.5730 1.1035 2.1566\n", + " param_3 -0.6921 0.1235 0.6009 1.0899 2.1552\n", + " param_4 -1.9420 -0.9160 -0.4060 0.0552 0.9021\n", + " param_5 -1.3493 -0.3819 0.0734 0.5310 1.5398\n", + " param_6 -0.4215 0.4108 0.9229 1.4837 2.5077\n", + " param_7 -3.5406 -2.3046 -1.6871 -1.0603 -0.0649\n", + " param_8 -1.3992 -0.4830 -0.0516 0.3786 1.2873\n", + " param_9 -1.0345 -0.1447 0.3104 0.8012 1.8095\n", + " param_10 -3.4824 -2.2542 -1.6144 -0.9914 -0.0141\n", + " param_11 -2.4332 -1.3324 -0.7965 -0.2812 0.5388\n", + " param_12 -0.4331 0.4082 0.9253 1.4948 2.6025\n", + " param_13 -1.3153 -0.3997 0.0671 0.5227 1.5110\n", + " param_14 -1.2853 -0.4004 0.0436 0.5068 1.4651\n", + " param_15 -1.7061 -0.7233 -0.2438 0.1910 1.1031\n", + " param_16 -1.4642 -0.5123 -0.0594 0.3898 1.2991\n", + " param_17 -2.1153 -1.1222 -0.6061 -0.1558 0.6821\n", + " param_18 -0.4855 0.3251 0.7913 1.3283 2.5064\n", + " param_19 -1.6750 -0.6720 -0.2083 0.2235 1.1625\n", + " param_20 -0.8049 0.0614 0.5221 1.0091 2.0145\n", + " param_21 -0.7423 0.1116 0.5931 1.1037 2.2447\n" ] }, - "execution_count": 12, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" }, @@ -303,22 +288,15 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 10, "id": "f610b909", "metadata": {}, "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "true\n" - ] - }, { "name": "stderr", "output_type": "stream", "text": [ - "\u001b[32mSampling: 100%|█████████████████████████████████████████| Time: 0:00:02\u001b[39m\n" + "\u001b[32mSampling: 100%|█████████████████████████████████████████| Time: 0:00:01\u001b[39m\n" ] }, { @@ -336,57 +314,57 @@ " \u001b[1m parameters \u001b[0m \u001b[1m mean \u001b[0m \u001b[1m std \u001b[0m \u001b[1m mcse \u001b[0m \u001b[1m ess_bulk \u001b[0m \u001b[1m rhat \u001b[0m \u001b[1m ess_per_se\u001b[0m ⋯\n", " \u001b[90m Symbol \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Real \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Missin\u001b[0m ⋯\n", "\n", - " param_1 -0.0511 0.7690 0.0307 760.5169 0.9998 missin ⋯\n", - " param_2 0.6008 0.7087 0.0081 7762.2759 0.9998 missin ⋯\n", - " param_3 0.6068 0.7257 0.0079 8943.3761 0.9999 missin ⋯\n", - " param_4 -0.4200 0.6873 0.0051 18494.8500 0.9998 missin ⋯\n", - " param_5 0.0860 0.6917 0.0051 18494.8500 0.9998 missin ⋯\n", - " param_6 0.9493 0.7641 0.0117 4343.7631 1.0014 missin ⋯\n", - " param_7 -1.6812 0.9169 0.0203 1943.5537 1.0002 missin ⋯\n", - " param_8 -0.0490 0.7376 0.0054 18494.8500 1.0005 missin ⋯\n", - " param_9 0.3295 0.6838 0.0051 17509.3435 1.0008 missin ⋯\n", - " param_10 -1.6175 0.8784 0.0192 2021.9588 1.0004 missin ⋯\n", - " param_11 -0.8305 0.7581 0.0102 5708.8237 0.9998 missin ⋯\n", - " param_12 0.9674 0.7370 0.0118 3910.1150 1.0013 missin ⋯\n", - " param_13 0.0526 0.7262 0.0053 18494.8500 1.0015 missin ⋯\n", - " param_14 0.0568 0.7011 0.0052 18494.8500 1.0046 missin ⋯\n", - " param_15 -0.2692 0.6908 0.0051 18494.8500 0.9999 missin ⋯\n", - " param_16 -0.0585 0.6893 0.0051 18494.8500 1.0007 missin ⋯\n", - " param_17 -0.6359 0.7557 0.0083 8808.1480 0.9999 missin ⋯\n", - " param_18 0.8410 0.7407 0.0098 5856.3172 0.9998 missin ⋯\n", - " param_19 -0.2209 0.7268 0.0053 18494.8500 1.0008 missin ⋯\n", - " param_20 0.5363 0.7254 0.0066 12297.2799 1.0048 missin ⋯\n", - " param_21 0.6043 0.7387 0.0075 10518.4937 1.0029 missin ⋯\n", + " param_1 -0.0463 0.8180 0.0463 468.1972 1.0006 missin ⋯\n", + " param_2 0.6108 0.7236 0.0087 7175.2449 1.0042 missin ⋯\n", + " param_3 0.6205 0.7217 0.0095 6442.8270 1.0000 missin ⋯\n", + " param_4 -0.4247 0.7120 0.0067 11943.9393 0.9999 missin ⋯\n", + " param_5 0.0810 0.7312 0.0054 18494.8500 1.0000 missin ⋯\n", + " param_6 0.9638 0.7802 0.0133 3703.3411 1.0002 missin ⋯\n", + " param_7 -1.7083 0.9026 0.0248 1226.1609 1.0005 missin ⋯\n", + " param_8 -0.0476 0.7335 0.0054 18494.8500 1.0028 missin ⋯\n", + " param_9 0.3386 0.7342 0.0065 12982.5234 1.0000 missin ⋯\n", + " param_10 -1.6400 0.8862 0.0230 1346.2346 1.0004 missin ⋯\n", + " param_11 -0.8385 0.7663 0.0130 3587.0949 1.0009 missin ⋯\n", + " param_12 0.9789 0.7697 0.0142 3002.6869 1.0008 missin ⋯\n", + " param_13 0.0600 0.7124 0.0052 18494.8500 1.0010 missin ⋯\n", + " param_14 0.0514 0.7294 0.0054 18494.8500 1.0030 missin ⋯\n", + " param_15 -0.2712 0.7010 0.0052 18494.8500 1.0009 missin ⋯\n", + " param_16 -0.0523 0.7103 0.0052 18494.8500 1.0009 missin ⋯\n", + " param_17 -0.6506 0.7397 0.0093 6361.6771 1.0005 missin ⋯\n", + " param_18 0.8572 0.7917 0.0121 4525.3361 1.0002 missin ⋯\n", + " param_19 -0.2222 0.6895 0.0051 18494.8500 1.0000 missin ⋯\n", + " param_20 0.5394 0.7501 0.0079 9255.5875 0.9998 missin ⋯\n", + " param_21 0.6058 0.7143 0.0097 5657.4221 0.9999 missin ⋯\n", "\u001b[36m 1 column omitted\u001b[0m\n", "\n", "Quantiles\n", " \u001b[1m parameters \u001b[0m \u001b[1m 2.5% \u001b[0m \u001b[1m 25.0% \u001b[0m \u001b[1m 50.0% \u001b[0m \u001b[1m 75.0% \u001b[0m \u001b[1m 97.5% \u001b[0m\n", " \u001b[90m Symbol \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m\n", "\n", - " param_1 -2.0322 -0.4172 0.0591 0.4611 1.1661\n", - " param_2 -0.7222 0.1123 0.5537 1.0438 2.0960\n", - " param_3 -0.7152 0.1014 0.5667 1.0696 2.1301\n", - " param_4 -1.8414 -0.8576 -0.3875 0.0377 0.8896\n", - " param_5 -1.3036 -0.3642 0.0767 0.5297 1.4782\n", - " param_6 -0.4132 0.4124 0.9046 1.4459 2.5894\n", - " param_7 -3.5879 -2.2750 -1.6363 -1.0282 -0.0585\n", - " param_8 -1.5408 -0.5073 -0.0504 0.4187 1.4338\n", - " param_9 -0.9966 -0.1115 0.3018 0.7575 1.7378\n", - " param_10 -3.4760 -2.1895 -1.5792 -0.9955 -0.0562\n", - " param_11 -2.4177 -1.3094 -0.7926 -0.3030 0.5092\n", - " param_12 -0.3374 0.4377 0.9366 1.4540 2.4858\n", - " param_13 -1.4007 -0.4206 0.0497 0.5369 1.4845\n", - " param_14 -1.2902 -0.4095 0.0534 0.5184 1.4468\n", - " param_15 -1.7128 -0.6838 -0.2459 0.1567 1.0854\n", - " param_16 -1.4711 -0.4925 -0.0531 0.3858 1.3000\n", - " param_17 -2.1971 -1.1454 -0.5975 -0.0921 0.7504\n", - " param_18 -0.4589 0.3191 0.7982 1.3046 2.4044\n", - " param_19 -1.7493 -0.6706 -0.2011 0.2398 1.2489\n", - " param_20 -0.8299 0.0471 0.4926 1.0035 2.0433\n", - " param_21 -0.7295 0.0787 0.5609 1.0962 2.1442\n" + " param_1 -2.0638 -0.4245 0.0582 0.4586 1.2188\n", + " param_2 -0.7053 0.1024 0.5657 1.0879 2.1254\n", + " param_3 -0.7106 0.1197 0.5824 1.0739 2.1309\n", + " param_4 -1.8790 -0.8923 -0.3904 0.0623 0.9138\n", + " param_5 -1.3906 -0.3743 0.0719 0.5386 1.5758\n", + " param_6 -0.4354 0.4203 0.9115 1.4718 2.6076\n", + " param_7 -3.5754 -2.3127 -1.6636 -1.0551 -0.0926\n", + " param_8 -1.4997 -0.5103 -0.0516 0.4210 1.4291\n", + " param_9 -1.1036 -0.1416 0.3150 0.8038 1.8584\n", + " param_10 -3.4769 -2.2119 -1.6066 -0.9897 -0.0847\n", + " param_11 -2.4458 -1.3452 -0.7909 -0.2836 0.4952\n", + " param_12 -0.3647 0.4304 0.9413 1.4758 2.6176\n", + " param_13 -1.3725 -0.4086 0.0449 0.5218 1.4888\n", + " param_14 -1.4177 -0.3889 0.0376 0.5080 1.5075\n", + " param_15 -1.7254 -0.7266 -0.2487 0.2000 1.0752\n", + " param_16 -1.4716 -0.5135 -0.0496 0.4002 1.3594\n", + " param_17 -2.2054 -1.1065 -0.6179 -0.1577 0.7598\n", + " param_18 -0.5299 0.2746 0.8191 1.3644 2.4726\n", + " param_19 -1.6036 -0.6863 -0.1948 0.2404 1.0898\n", + " param_20 -0.8593 0.0260 0.5043 1.0246 2.1014\n", + " param_21 -0.7194 0.1144 0.5704 1.0771 2.0905\n" ] }, - "execution_count": 13, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" }, @@ -405,17 +383,10 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 21, "id": "88df45a3", "metadata": {}, "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "true\n" - ] - }, { "name": "stderr", "output_type": "stream", @@ -438,56 +409,56 @@ " \u001b[1m parameters \u001b[0m \u001b[1m mean \u001b[0m \u001b[1m std \u001b[0m \u001b[1m mcse \u001b[0m \u001b[1m ess_bulk \u001b[0m \u001b[1m rhat \u001b[0m \u001b[1m ess_per_sec\u001b[0m ⋯\n", " \u001b[90m Symbol \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Real \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Missing\u001b[0m ⋯\n", "\n", - " param_1 -0.1374 0.9854 0.0802 300.0707 1.0000 missing ⋯\n", - " param_2 0.5816 0.7170 0.0167 1904.9377 0.9999 missing ⋯\n", - " param_3 0.6056 0.7297 0.0185 1622.7416 1.0001 missing ⋯\n", - " param_4 -0.3994 0.6984 0.0139 2588.9803 1.0001 missing ⋯\n", - " param_5 0.0842 0.6967 0.0136 2619.8675 0.9998 missing ⋯\n", - " param_6 0.9201 0.7757 0.0275 796.7068 1.0005 missing ⋯\n", - " param_7 -1.6537 0.9317 0.0419 477.0189 0.9999 missing ⋯\n", - " param_8 -0.0596 0.6990 0.0125 3149.8056 1.0000 missing ⋯\n", - " param_9 0.3409 0.7085 0.0136 2861.0059 1.0005 missing ⋯\n", - " param_10 -1.6002 0.9174 0.0408 475.8869 1.0002 missing ⋯\n", - " param_11 -0.8002 0.7516 0.0214 1236.1506 0.9999 missing ⋯\n", - " param_12 0.9417 0.7878 0.0258 936.9052 1.0005 missing ⋯\n", - " param_13 0.0683 0.7005 0.0124 3229.7104 0.9998 missing ⋯\n", - " param_14 0.0468 0.6980 0.0121 3366.4062 1.0005 missing ⋯\n", - " param_15 -0.2592 0.7172 0.0132 3022.7550 0.9999 missing ⋯\n", - " param_16 -0.0521 0.6835 0.0124 3117.2325 1.0000 missing ⋯\n", - " param_17 -0.6306 0.7495 0.0168 2042.9921 1.0005 missing ⋯\n", - " param_18 0.8219 0.7483 0.0228 1089.0650 1.0004 missing ⋯\n", - " param_19 -0.2059 0.6935 0.0122 3270.9700 0.9999 missing ⋯\n", - " param_20 0.5134 0.7293 0.0161 2107.0161 0.9999 missing ⋯\n", - " param_21 0.5832 0.7261 0.0167 1944.6001 1.0001 missing ⋯\n", + " param_1 -0.0419 0.7838 0.0489 362.4873 1.0119 missing ⋯\n", + " param_2 0.5994 0.7154 0.0151 2320.5911 1.0015 missing ⋯\n", + " param_3 0.6255 0.7354 0.0162 2100.5498 1.0027 missing ⋯\n", + " param_4 -0.3973 0.7143 0.0145 2452.0597 1.0014 missing ⋯\n", + " param_5 0.0532 0.7082 0.0127 3113.8938 1.0012 missing ⋯\n", + " param_6 0.9553 0.7692 0.0212 1292.0336 1.0012 missing ⋯\n", + " param_7 -1.6923 0.9042 0.0356 618.5752 1.0034 missing ⋯\n", + " param_8 -0.0424 0.7092 0.0124 3303.5704 1.0030 missing ⋯\n", + " param_9 0.3181 0.7076 0.0127 3159.4996 1.0011 missing ⋯\n", + " param_10 -1.6240 0.8823 0.0373 534.4575 1.0084 missing ⋯\n", + " param_11 -0.8137 0.7632 0.0187 1677.3791 1.0028 missing ⋯\n", + " param_12 0.9721 0.7611 0.0235 1056.8329 1.0071 missing ⋯\n", + " param_13 0.0736 0.7000 0.0128 3026.5174 1.0007 missing ⋯\n", + " param_14 0.0495 0.7072 0.0123 3308.6202 1.0010 missing ⋯\n", + " param_15 -0.2711 0.7034 0.0124 3244.3712 1.0013 missing ⋯\n", + " param_16 -0.0649 0.6925 0.0123 3173.4247 1.0015 missing ⋯\n", + " param_17 -0.6459 0.7399 0.0168 1989.9083 1.0019 missing ⋯\n", + " param_18 0.8632 0.7590 0.0180 1815.7908 1.0012 missing ⋯\n", + " param_19 -0.2094 0.7075 0.0131 2963.2145 1.0002 missing ⋯\n", + " param_20 0.5451 0.7295 0.0161 2104.4508 1.0006 missing ⋯\n", + " param_21 0.6023 0.7333 0.0164 2026.7429 1.0004 missing ⋯\n", "\n", "Quantiles\n", " \u001b[1m parameters \u001b[0m \u001b[1m 2.5% \u001b[0m \u001b[1m 25.0% \u001b[0m \u001b[1m 50.0% \u001b[0m \u001b[1m 75.0% \u001b[0m \u001b[1m 97.5% \u001b[0m\n", " \u001b[90m Symbol \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m\n", "\n", - " param_1 -2.8736 -0.4698 0.0252 0.4595 1.1645\n", - " param_2 -0.6997 0.0823 0.5279 1.0437 2.1102\n", - " param_3 -0.7198 0.0958 0.5560 1.0790 2.1265\n", - " param_4 -1.8649 -0.8383 -0.3497 0.0475 0.9658\n", - " param_5 -1.3026 -0.3556 0.0713 0.5191 1.5080\n", - " param_6 -0.4136 0.3411 0.8788 1.4364 2.5730\n", - " param_7 -3.5290 -2.2770 -1.6435 -0.9761 0.0245\n", - " param_8 -1.4663 -0.4959 -0.0521 0.3643 1.3249\n", - " param_9 -1.0039 -0.1180 0.2950 0.7910 1.8125\n", - " param_10 -3.4820 -2.2040 -1.5789 -0.9412 0.0187\n", - " param_11 -2.3647 -1.2785 -0.7627 -0.2475 0.5265\n", - " param_12 -0.4238 0.3600 0.9019 1.4577 2.5905\n", - " param_13 -1.3311 -0.3595 0.0602 0.4898 1.4964\n", - " param_14 -1.3760 -0.3897 0.0503 0.4889 1.4548\n", - " param_15 -1.7473 -0.7184 -0.2269 0.1973 1.1298\n", - " param_16 -1.4071 -0.4848 -0.0395 0.3687 1.3586\n", - " param_17 -2.1948 -1.1213 -0.5770 -0.0942 0.7283\n", - " param_18 -0.4829 0.2742 0.7636 1.3043 2.4254\n", - " param_19 -1.6432 -0.6536 -0.1754 0.2373 1.1349\n", - " param_20 -0.8245 0.0114 0.4755 0.9727 2.0750\n", - " param_21 -0.6946 0.0764 0.5349 1.0593 2.1550\n" + " param_1 -2.0193 -0.4083 0.0757 0.4666 1.1490\n", + " param_2 -0.7454 0.1106 0.5658 1.0500 2.0828\n", + " param_3 -0.7448 0.1103 0.5919 1.1169 2.1722\n", + " param_4 -1.8301 -0.8516 -0.3707 0.0729 0.9899\n", + " param_5 -1.3972 -0.4105 0.0606 0.5096 1.4227\n", + " param_6 -0.4220 0.4043 0.9208 1.4570 2.5242\n", + " param_7 -3.5423 -2.2827 -1.6551 -1.0394 -0.0550\n", + " param_8 -1.4732 -0.5102 -0.0442 0.4098 1.3934\n", + " param_9 -1.0155 -0.1525 0.2951 0.7751 1.7861\n", + " param_10 -3.4321 -2.2164 -1.6013 -0.9983 -0.0023\n", + " param_11 -2.4146 -1.3110 -0.7739 -0.2885 0.6080\n", + " param_12 -0.4277 0.4402 0.9364 1.4903 2.4975\n", + " param_13 -1.2915 -0.3947 0.0566 0.5046 1.5274\n", + " param_14 -1.3396 -0.4166 0.0458 0.5093 1.4684\n", + " param_15 -1.7041 -0.7257 -0.2497 0.1846 1.0587\n", + " param_16 -1.4646 -0.5189 -0.0560 0.3904 1.2931\n", + " param_17 -2.1935 -1.1360 -0.6047 -0.1322 0.7265\n", + " param_18 -0.4837 0.3174 0.8289 1.3559 2.4578\n", + " param_19 -1.6043 -0.6730 -0.1853 0.2557 1.1349\n", + " param_20 -0.8285 0.0513 0.5097 1.0190 2.0392\n", + " param_21 -0.7497 0.1093 0.5725 1.0709 2.1491\n" ] }, - "execution_count": 14, + "execution_count": 21, "metadata": {}, "output_type": "execute_result" }, @@ -515,7 +486,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 16, "id": "9c61e0ab", "metadata": {}, "outputs": [], @@ -526,7 +497,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 11, "id": "0b0923f1", "metadata": {}, "outputs": [], @@ -537,7 +508,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 22, "id": "fec8ace5", "metadata": {}, "outputs": [], @@ -554,7 +525,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAArEAAAL3CAYAAACd2x1cAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAABS7klEQVR4nO3dd3xUVf7/8fdAChBICBBKlpCEYkGR0ESsKCj2RVz1uzaiyNpwRSyLiiKuLmJb14ptwbaKin4VEJVFRVmRFSX+LFQl0rskFE1IMr8/+ObeM8PcMJNMMjmT1/PxyONxc+eWk5kQP57zvuf4/H6/XwAAAIBFGsW6AQAAAECkKGIBAABgHYpYAAAAWIciFgAAANahiAUAAIB1KGIBAABgHYpYAAAAWIciFgAAANahiAUAAIB1KGKBWpSTkyOfzyefz6c333zT87jBgwfL5/Np6tSpAfvz8/Pl8/mUn59f5X2mTp0qn8+nnJwcSdInn3zi3DeSr7vuusu5ZkVFhaZOnaqTTz5Zbdu2VWJiolq1aqWDDjpIZ599tu6//34VFhZW742J0N69ezV37lzdfPPN6tevn1q2bKnExES1b99eZ599tmbNmuV57po1a/T000/rT3/6k/r06aPk5GT5fD5dccUVNWrTXXfdtd/716RJE7Vt21Y9e/ZUfn6+XnnlFf3222/Vur75GbZv3167d+8OedzatWud42Kp8v0wf4ck9+c40O9wTVT+/lf11bJly1q7f31T+Xenrv59ArGSEOsGAA3F7bffrqFDhyohofb/2bVv317Dhw/fb39BQYG++eYbtWvXTqeeeup+r+fl5UmSdu/erbPOOksff/yxJKl37946/vjj1bhxY/300096//33NWPGDDVr1kyjRo2q1Z9FkubNm6eTTz5Z0r6f7dhjj1VKSop++OEHzZgxQzNmzNCf/vQnTZ48eb9ibvr06brhhhtqrW3me1leXq6ioiItXbpUL7zwgl544QWNHj1ajz32mP7nf/6n2vfYtGmTHnroId15553RanZcSklJ0R/+8IeQrzVr1qyOWwOgtlHEAnWgWbNmWr58uZ577jldddVVtX6/Qw45ZL9eXWlfb9k333zj+bp53Mcff6zMzEzNnj1bRxxxRMDrRUVFmj59ujp06BDllofWqFEjnXvuubr++ut13HHHBbw2bdo0XXTRRXrmmWd0zDHH6NJLLw14PTc3V9ddd5169+6t3r176/XXX9e9994btbZ5vZc//vij7rrrLr388sv64x//qO3bt+uaa66J+PpNmzbVb7/9pgcffFBXX321MjIyotDq+NSmTZsqf68BxBfiBEAduP766yVJd999t/bs2RPj1hzYa6+9JkkaP378fgWsJKWlpenyyy/XaaedViftOemkk/Tmm2/uV8BK0gUXXOAMVb/44ov7vf773/9ejz76qPLz83XEEUfUSU+4JHXp0kUvvfSSbr75Zkn7fgd++umniK+TmZmpP/zhD9q5c6fuueeeaDcTAKxFEQvUgdNPP10nnHCCNmzYoL///e+xbs4Bbdq0SZLUtm3bGLckPL169ZK0L/9a39x7773KzMxUWVlZtT/7e++9VwkJCZo8ebJWrVoV0bllZWV67rnnNHDgQLVq1UrJycnKzc3V1Vdf7fl+vfXWW7riiit0+OGHKz09XU2aNFFubq4uv/xyLVu2rFo/Qyj//ve/ddZZZ6ldu3ZKTExUenq6unXrposvvliffvpp1O5jKiwsDMiPh+KVKTX3f/zxxzrllFOUnp6upk2bqnfv3iH/J0qSBg4cKJ/Pp08++UQFBQUaNmyY2rRpo+TkZHXv3l0PPfSQ/H6/Z3vmzp2rYcOGqUOHDkpKSlLbtm11zjnnaMGCBdV5C4C4QREL1JFJkyZJku6//35t27Ytxq2pWqdOnSRJkydPVklJSYxbc2ArVqyQpDqLN0QiMTFRF1xwgSRpzpw51bpGt27dNHLkSJWWlmrcuHFhn7dz506dfPLJGjlypL766isdccQROvvss5WcnKzJkyerV69eWrx48X7nnX/++Xr11VfVtGlTnXTSSRoyZIgaNWqkKVOmqE+fPvr888+r9XOYXnjhBZ1yyimaNWuWcnNzde655+r4449XamqqXnvtNb311ls1vkdt+ec//6lBgwZp+/btOvXUU5WXl6fFixdr+PDheuSRRzzP++CDD9S/f38tXbpUJ598sgYMGKDly5frpptu8sxt33TTTRo8eLDeeecdderUSUOHDlXnzp31zjvv6LjjjtOUKVNq6acELOAHUGuys7P9kvyfffaZ3+/3+4cNG+aX5L/hhhsCjhs0aJBfkn/KlCkB+4cPH+6X5B8+fHiV95kyZYpfkj87O7vK48aPH++X5D/hhBOqPO7vf/+7X5Jfkr9du3b+kSNH+p9//nn/119/7S8rK6vy3Lq2YcMGf1paml+S/9FHHz3g8ZXvwYgRI2p033DfS7/f73/55Zed93Pv3r1hXf/jjz/2S/J36dLF7/fv+zlTUlL8Pp/Pv3jxYue4NWvWONcOduGFF/ol+c8880z/pk2bAl6r/Iy7deu232f62muv+Xft2hWwr6Kiwv/EE0/4JfkPO+wwf0VFRcDrle/H+PHjw/r5cnNzA/5tmDZt2uT/+uuvw7qO3x/+77/f7/evWrXqgMdW/rtdtWpVyP2JiYn+GTNmhGxDWlqaf8+ePQGvnXDCCc5nNHny5IDX5s6d6/f5fP7GjRv716xZE/DaM88845fk79q1q/+bb74JeG3evHn+Fi1a+JOSkvzLly8Pq/1AvKEnFqhDf/vb35SQkKAnn3xSP//8c6yb42n06NG69957lZKSok2bNunZZ5/ViBEj1Lt3b6Wnp2v48OFRHVaurrKyMl188cUqKipSjx49dOWVV8a6SSG1adPG2d6+fXu1rtG+fXvdcMMN8vv9Gjt27AGPX7JkiV599VVlZmbqX//6137RkNGjR+v000/XihUrNHv27IDXLrjgAqWkpATs8/l8uuaaazRgwAB9//33WrJkSbV+jkqbNm1SWlqajj322P1ea9u2rRMRicTPP//sOcXWJ598UqP2mq677jqdeeaZAfvy8/N1yCGHqKioSIsWLQp53rBhw/b7Ha3s6S4vL3dmA5H2TXFXOV3Za6+9tl82/fjjj9cdd9yh0tJSPf3001H4qQD7UMQCdejggw/W5ZdfrpKSEt1xxx2xbk6VbrvtNq1du1ZTp07VZZddpp49e6px48bauXOnXnzxRfXq1UvvvfdeTNt41VVXae7cuWrdurXefPNNJSUlxbQ9XioqKpztmsznevPNN6tNmzb64IMPAgqeUN577z35/X6ddtppatGiRchjBg4cKEkh4wErV67U448/rtGjR2vEiBHKz89Xfn6+k5eu6f/EHHnkkSoqKtKll16qr776KuA9qq6UlBQNHz485Ff79u1rfP1KZ511Vsj9hx56qCRp3bp1NT5v8eLFWr9+vbp06aI+ffqEPK+qzw9oCJhiC6hjldMuvfLKK7rppptCPv1fqbLg8Vfx0If5erQnvG/ZsqVTBEjSL7/8orffflvjxo3Thg0bNHz4cP38888HnINz69atuummm/bbf8ghh4TVqxjK9ddfr+eff17p6emaM2eODjrooGpdJ5TnnntO8+fP32//2LFjdcghh0R8va1bt0ra9/mkp6dXu12pqakaN26cRo8erb/85S9auHCh57GVMyE8//zzev7556u87pYtW5zt8vJyjRo1Sk8//XSVv3fFxcURtj7Qk08+qTPPPFMvvfSSXnrpJbVo0UL9+vXTSSedpEsuucTJZUeirqbY8mpbamqqJHkucBHJeZWf348//njAf9fm5wc0JBSxQB3r0KGDrr/+ek2cOFG33nprlatNVQ7peq3WVGnXrl2SpObNm0evoSGkp6fr8ssvV69evdS7d29t3bpV//nPf5yFCKpq3wsvvLDf/hNOOKFaReyNN96oRx99VC1bttSHH35YraHnqsyfPz9keyuHjCP19ddfS9pXtNd0iq+rr75ajzzyiL788ku9+eabGjBgQMjjKns28/Ly1LNnzyqv2b9/f2f7H//4hyZPnqz27dvr4Ycf1tFHH6127dqpSZMmkqQLL7xQr7766gH/x+pADj30UC1btkwffvihPvroI33++ef67LPP9NFHH+nuu+/W888/r4svvrhG96iuA/UKN2pUvUHMSM6rbEP79u01ZMiQKo814ypAQ0IRC8TAX/7yFz3zzDN67733qpxKqLLnZuXKlVVer/Lp/Or0XlVHr1691KZNG23dutXpZaxKTk5OjYueSrfccosefvhhpaWl6cMPP1Tfvn2jcl3T1KlTo9ajt3fvXr3++uuSpFNOOaXG10tKStJf//pXXXLJJbr99tv14YcfhjwuKytLknTMMcfo8ccfD/v6lW19+umndfbZZ+/3euXvWjQkJCTo9NNP1+mnny5pX+/uww8/rAkTJujKK6/UOeecs182t6YqIyc7d+4M+frevXu1YcOGqN6zOio/v9atW7OAA+CBTCwQA2lpabrtttsk7SvKvJx00kmSpP/3//6fZyG7d+9evfvuuwHH19SBCs4dO3Y4w8kdO3aMyj3DMXbsWD3wwANKS0vTnDlz1K9fvzq7d3XdfvvtWr9+vRITE6O2/O1FF12knj17asWKFXr22WdDHlO5EMW7777rObwdSuWDZ9nZ2fu99v3336ugoCDyBocpNTVVd911l1q2bKk9e/Zo+fLlUb9HRkaGkpKStH37dm3evHm/1z/44AOVlZVF/b6R6tevn9q0aaMffvhB33//faybA9RLFLFAjFx77bXq1KmTFi5c6Dlped++fTVo0CD5/X5dfPHF+/UQ/frrr7r66qv1888/KyMjQyNGjIhK24488kg9+eSTIZ+k37hxo4YPH67S0lJlZ2d7DmdH27hx4zRp0iS1bNnSigL2p59+0qWXXqoHHnhAkvT444+HLAyrw+fzaeLEiZLkOS9pr169dO6552rNmjUaNmzYfhP3S/tiKq+88orzsJbkPmT0xBNPBAyrb9iwQZdeemlUCrw9e/bo4YcfDpnl/Oyzz7Rjxw41bty4Vv4HKTExUccff7ykfb9T5s/4zTffaNSoUVG/Z3UkJiZq/Pjx8vv9Ouecc0JmtMvLy/XRRx/piy++iEELgdgjTgDESHJysu6++27l5+dXuRTtyy+/rFNOOUULFy5U586ddfTRR6tDhw4qKirSggULtG3bNrVq1UrTp09Xy5Yto9K2FStW6Nprr9Wf//xn9ejRQ126dFFCQoLWrVunhQsXau/evWrVqpVee+21OlnG9d1339W9994rSerataueeOKJkMe1adNGDz74YMC+DRs26JxzznG+X7t2rXPNo446ytn/5JNPqnfv3hG3benSpc6ytxUVFSoqKtLSpUu1YsUK+f1+ZWRk6PHHH9f5558f8bWrctppp2ngwIFVTh01ZcoU7dixQ7Nnz9bBBx+snj17Kjc3V36/X4WFhfrmm29UWlqqJUuWqF27dpL2zUrx/vvv69lnn9XHH3+s3r17q7i4WPPmzVPnzp11zjnn6O23365R20tLS3XjjTfq5ptvVo8ePdStWzclJiaqsLDQKchuv/12ZWRk1Og+Xu655x59+umnevbZZzVv3jwdccQRWrdunRYtWqQLL7xQn3zySb2YAm/UqFFavXq1HnjgAR133HE67LDD1LVrVzVt2lQbN25UQUGBduzYoaeeeirgdxloKChigRi65JJL9NBDD+nbb7/1PKZ9+/ZauHChnn/+eU2fPl3ffPONPv30UzVr1kxdunTRn/70J/35z3+O6hRC8+fP17///W999NFHWrFihebOnatdu3YpNTVV/fr105AhQ3TNNdfU2QMlZo/wokWLPOfhzM7O3q+ILSkpCfkU/5YtWwJ6Aqv7tP2mTZuch8CSkpKUmpqqzMxMXXLJJRoyZIiGDRvmPBQV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s2bNYt0cKxUVFalVq1axbka9UVpaqq+++kqDBw929jVq1EiDBw/WggULYtgyexQVFUkSv1cAGpQGWcRW9oDdddddGjdunGbOnKn09HQNHDhQ27dvj3Hr6i+/36/8/HxdddVV6tu3b6ybY6WVK1fqscce05VXXhnrptQbW7duVXl5udq1axewv127dtq4cWOMWmWPiooKjR49Wsccc4wOP/zwWDcHAOpMXBWxY8eOlc/nq/KrMqMoSbfffrvOPfdc9enTR1OmTJHP59Mbb7wR45+i7oX7vj322GPauXOnbr311lg3OebCfc9M69at06mnnqrzzjtPI0eOjFHLEW+uvfZafffdd3rttddi3RQAqFMJsW5ANN14443Kz8+v8pjOnTtrw4YNkqTu3bs7+5OTk9W5c2etXr26NptYL4X7vn300UdasGDBfmu09+3bVxdddJFeeOGFWmxl/RLue1Zp/fr1OvHEE3X00UfrmWeeqeXW2aVNmzZq3LixNm3aFLB/06ZNat++fYxaZYdRo0Zp5syZ+vTTT9WxY8dYNwcA6lRcFbEZGRnKyMg44HF9+vRRcnKyli1bpmOPPVaStHfvXhUWFio7O7u2m1nvhPu+Pfroo7rnnnuc79evX68hQ4Zo2rRp6t+/f202sd4J9z2T9vXAnnjiiU6Pf6NGcTUAUmNJSUnq06eP5s6d60xzV1FRoblz52rUqFGxbVw95ff7dd111+ntt9/WJ598otzc3Fg3CQDqXFwVseFKTU3VVVddpfHjxysrK0vZ2dl64IEHJEnnnXdejFtXf3Xq1Cng++bNm0uSunTpQi+Qh3Xr1mngwIHKzs7Wgw8+qC1btjiv0cvoGjNmjIYPH66+ffvqyCOP1COPPKLdu3frsssui3XT6qVrr71W//rXv/TOO++oRYsWTnY4LS1NTZs2jXHrAKBuNMgiVto3zVFCQoIuueQS/frrr+rfv78++ugjpaenx7ppiCNz5szRypUrtXLlyv0K/QY4u52nCy64QFu2bNGdd96pjRs3Ki8vT++///5+D3thn6eeekqSNHDgwID9U6ZMOWDMBQDiRYOcJxYAAAB2I5wHAAAA61DEAgAAwDoUsQAAALAORSwAAACsQxELAAAA61DEAgAAwDoUsQAAALAORSwAAACsQxELRMGGDRt04YUX6qCDDlKjRo00evTokMe98cYbOuSQQ9SkSRP16NFD7733Xt02FACAOEERC0RBSUmJMjIyNG7cOPXs2TPkMZ9//rn++Mc/asSIEVq8eLGGDh2qoUOH6rvvvqvj1gIAYD+WnQXCsGXLFvXo0UN//vOfddttt0naV5QOHDhQs2fP1qBBg5xjBw4cqLy8PD3yyCMB17jgggu0e/duzZw509l31FFHKS8vT5MnT66TnwMAgHhBTywQhoyMDP3zn//UXXfdpUWLFmnnzp265JJLNGrUqIACtioLFizQ4MGDA/YNGTJECxYsqI0mAwAQ1xJi3QDAFqeffrpGjhypiy66SH379lVKSoomTpwY9vkbN25Uu3btAva1a9dOGzdujHZTAQCIe/TEAhF48MEHVVZWpjfeeEOvvPKKkpOTY90kAAAaJIpYIAI//vij1q9fr4qKChUWFkZ0bvv27bVp06aAfZs2bVL79u2j2EIAABoGilggTKWlpbr44ot1wQUX6K9//auuuOIKbd68OezzBwwYoLlz5wbsmzNnjgYMGBDtpgIAEPfIxAJhuv3221VUVKRHH31UzZs313vvvafLL7/cmW2goKBAkrRr1y5t2bJFBQUFSkpKUvfu3SVJ119/vU444QQ99NBDOuOMM/Taa69p0aJFeuaZZ2L1IwEAYC2m2ALC8Mknn+jkk0/Wxx9/rGOPPVaSVFhYqJ49e+q+++7T1VdfLZ/Pt9952dnZAbGDN954Q+PGjVNhYaG6deum+++/X6effnpd/RgAAMQNilgAAABYh0wsAAAArEMRCwAAAOtQxAIAAMA6FLEAAACwDkUsAAAArEMRCwAAAOtQxAIAAMA6FLEAAACwDkUsAAAArEMRCwAAAOtQxAIAAMA6FLEAAACwzv8HMpRE5SOI1+UAAAAASUVORK5CYII=", + "image/png": "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HvfPf/4zICkgKdCxY8fAmDFjAk8//XRgyZIlgbKyshrPbWibNm0KpKWlBSQFHnzwwX0eX/kZjB49uk739ftZBgKBwAsvvBD8PEtLS31df968eQFJge7duwcCgb3vMyUlJRAXFxdYunRp8Lj169cHr13VeeedF5AUOO200wIFBQWu1yp/xj179qz2M50xY0Zg9+7drn0VFRWBRx55JCApcMghhwQqKipcr1d+HhMnTvT1/nJyclz/NkwFBQWBJUuW+LpOIOD/9z8QCATWrl27z2Mr/92uXbs25P7ExMTAO++8EzKGtLS0wC+//OJ67Zhjjgn+jKZOnep6be7cuYG4uLhAfHx8YP369a7XnnjiiYCkQI8ePQJff/2167UFCxYEWrduHUhKSgp8//33vuIHmhpGYoEG9D//8z9KSEjQo48+qh9//DHa4XgaN26c7rzzTqWkpKigoEBPPvmkRo8erf79+ys9PV2jRo2K6LRybZWVlemCCy5QYWGhevfurUsvvTTaIYXUvn374PaOHTtqdY3MzExdc801CgQCysvL2+fxy5cv18svv6zOnTvrpZdeqlYaMm7cOJ1yyilatWqV3nvvPddr5557rlJSUlz74uLidMUVV2jw4MH67rvvtHz58lq9j0oFBQVKS0vTUUcdVe21Dh06BEtEwvHjjz96ttiaP39+neI1XXXVVTrttNNc+3Jzc3XggQeqsLBQixcvDnneyJEjq/2OVo50l5eXB7uBSHtb3FW2K5sxY0a12vSjjz5at9xyi0pKSvT4449H4F0B9iGJBRrQAQccoEsuuUTFxcW65ZZboh1OjW666Sb99NNPmj59ui6++GL16dNH8fHx2rVrl5577jn169dP7777blRjvOyyyzR37ly1a9dOr7/+upKSkqIaj5eKiorgdl36uV5//fVq3769PvjgA1fCE8q7776rQCCgk08+Wa1btw55zNChQyUpZHnA6tWr9fDDD2vcuHEaPXq0cnNzlZubG6yXrusfMYcffrgKCwt10UUX6auvvnJ9RrWVkpKiUaNGhfzKzMys8/Ur/eEPfwi5/6CDDpIkbdiwoc7nLV26VBs3blT37t112GGHhTyvpp8fEAtosQU0sMq2Sy+++KKuu+66kE//V6pMeAI1PPRhvh7phvdt2rQJJgGS9PPPP+vNN9/UhAkTtGnTJo0aNUo//vjjPntwbtu2Tdddd121/QceeKCvUcVQrr76aj399NNKT0/XnDlztP/++9fqOqE89dRT+vTTT6vtz8vL04EHHhj29bZt2yZp788nPT291nGlpqZqwoQJGjdunP7+97/riy++8Dy2shPC008/raeffrrG627dujW4XV5errFjx+rxxx+v8feuqKgozOjdHn30UZ122ml6/vnn9fzzz6t169YaOHCgjjvuOF144YXBuuxwNFSLLa/YUlNTJclzgYtwzqv8+a1Zs2af/67Nnx8QS0higQbWqVMnXX311Zo8ebJuvPHGGlebqpzS9VqtqdLu3bslSa1atYpcoCGkp6frkksuUb9+/dS/f39t27ZN//73v4MLEdQU37PPPltt/zHHHFOrJPbaa6/Vgw8+qDZt2ujDDz+s1dRzTT799NOQ8VZOGYdryZIlkvYm7XVt8XX55ZfrgQce0JdffqnXX39dgwcPDnlc5chm37591adPnxqvOWjQoOD2v/71L02dOlWZmZm6//77NWTIEHXs2FHNmzeXJJ133nl6+eWX9/mH1b4cdNBBWrlypT788EN9/PHH+uyzz/TJJ5/o448/1u23366nn35aF1xwQZ3uUVv7GhVu1qx2k5jhnFcZQ2ZmpoYPH17jsWa5ChBLSGKBKPj73/+uJ554Qu+++26NrYQqR25Wr15d4/Uqn86vzehVbfTr10/t27fXtm3bgqOMNcnOzq5z0lPphhtu0P3336+0tDR9+OGHGjBgQESua5o+fXrERvRKS0v16quvSpJOPPHEOl8vKSlJ//jHP3ThhRfq5ptv1ocffhjyuKysLEnSkUceqYcfftj39Stjffzxx3X66adXe73ydy0SEhISdMopp+iUU06RtHd09/7779ekSZN06aWX6swzz6xWm1tXlSUnu3btCvl6aWmpNm3aFNF71kblz69du3Ys4AB4oCYWiIK0tDTddNNNkvYmZV6OO+44SdL/+3//zzORLS0t1dtvv+06vq72lXDu3LkzOJ283377ReSefuTl5emee+5RWlqa5syZo4EDBzbYvWvr5ptv1saNG5WYmBix5W/PP/989enTR6tWrdKTTz4Z8pjKhSjefvttz+ntUCofPOvatWu117777jstW7Ys/IB9Sk1N1W233aY2bdrol19+0ffffx/xe2RkZCgpKUk7duzQli1bqr3+wQcfqKysLOL3DdfAgQPVvn17/fe//9V3330X7XCARokkFoiSK6+8Ul26dNEXX3zh2bR8wIABOv744xUIBHTBBRdUGyH69ddfdfnll+vHH39URkaGRo8eHZHYDj/8cD366KMhn6TfvHmzRo0apZKSEnXt2tVzOjvSJkyYoClTpqhNmzZWJLA//PCDLrroIt1zzz2SpIcffjhkYlgbcXFxmjx5siR59iXt16+fzjrrLK1fv14jR46s1rhf2lum8uKLLwYf1pKch4weeeQR17T6pk2bdNFFF0Ukwfvll190//33h6zl/OSTT7Rz507Fx8fXyx9IiYmJOvrooyXt/Z0y3+PXX3+tsWPHRvyetZGYmKiJEycqEAjozDPPDFmjXV5ero8//liff/55FCIEoo9yAiBKkpOTdfvttys3N7fGpWhfeOEFnXjiifriiy/UrVs3DRkyRJ06dVJhYaEWLVqk7du3q23btpo5c6batGkTkdhWrVqlK6+8Un/729/Uu3dvde/eXQkJCdqwYYO++OILlZaWqm3btpoxY0aDLOP69ttv684775Qk9ejRQ4888kjI49q3b697773XtW/Tpk0688wzg9//9NNPwWseccQRwf2PPvqo+vfvH3ZsK1asCC57W1FRocLCQq1YsUKrVq1SIBBQRkaGHn74Yf3xj38M+9o1OfnkkzV06NAaW0dNmzZNO3fu1HvvvacDDjhAffr0UU5OjgKBgPLz8/X111+rpKREy5cvV8eOHSXt7Urx/vvv68knn9S8efPUv39/FRUVacGCBerWrZvOPPNMvfnmm3WKvaSkRNdee62uv/569e7dWz179lRiYqLy8/ODCdnNN9+sjIyMOt3Hyx133KGFCxfqySef1IIFC3TooYdqw4YNWrx4sc477zzNnz+/UbTAGzt2rNatW6d77rlHv//973XIIYeoR48eatGihTZv3qxly5Zp586deuyxx1y/y0CsIIkFoujCCy/Ufffdp2+++cbzmMzMTH3xxRd6+umnNXPmTH399ddauHChWrZsqe7du+uvf/2r/va3v0W0hdCnn36qjz76SB9//LFWrVqluXPnavfu3UpNTdXAgQM1fPhwXXHFFQ32QIk5Irx48WLPPpxdu3atlsQWFxeHfIp/69atrpHA2j5tX1BQEHwILCkpSampqercubMuvPBCDR8+XCNHjgw+FBVpU6ZM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", "text/plain": [ "Figure(PyObject
)" ] @@ -585,13 +556,13 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 12, "id": "fe4c8b70", "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAArEAAAL3CAYAAACd2x1cAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAABS2ElEQVR4nO3deXRV1f3//9cNGSBAwhSGSCAgUkUoUSZxZFJUHGgR7dehgshSf2KrODRUEam2SHEq2Gr9KE4fLWAVEVARsYAoogipooiAhFEgTAmTIZD7+8NPztn3cs/l3kw3++b5WIu1dk72OWffE4lv9n6f9/b5/X6/AAAAAIskxHoAAAAAQLQIYgEAAGAdglgAAABYhyAWAAAA1iGIBQAAgHUIYgEAAGAdglgAAABYhyAWAAAA1iGIBQAAgHUIYoFqlJ2dLZ/Pp5deeilsvz59+sjn8+mhhx4KOL5w4UL5fD7nz8qVK8Ne5/TTT3f63nzzzZ79SkpK9OKLL2rw4MFq06aN6tWrp9TUVLVv315XXXWVXnvtNR05ciTSj1khO3fu1CuvvKJrr71Wp5xyiurWravU1FSdeuqp+t3vfqf8/HzPcxcvXqy//OUvGjJkiPOsfT6flixZUqExmdfy+XxKSEhQw4YN1bp1a/Xt21f33HOPPv/883Jff9iwYc61R40a5dnvkUcekc/n07Bhw8p9r8pQ9jyCfxZln2PhwoVVdu+yvxvh/tx5551Vdv+apOz3QZ8+fWI9FCAmEmM9AADlN3XqVE2ZMiXk9z777DN9++23J7zGihUrdNVVV2nDhg3y+Xzq2rWrevbsqYSEBOXn5+vtt9/Wm2++qfvvv1/ffvutUlNTK/tjBBg9erRee+01JSQkqHPnzrriiit08OBBffHFF5oyZYqmTp2qmTNn6sILLzzu3N/97nf673//W2VjO+ecc9ShQwdJ0uHDh7Vr1y6tXLlSCxcu1OOPP64LLrhAU6dOVfv27ct9j+eee0533XWXTj755Moadlzq2rWrcnJyQn6vZ8+e1TsYADFBEAtYqE2bNvrpp5/0+uuv67HHHlNKSspxfaZOnSpJ6tGjh7744ouQ11mxYoXOO+88HTp0SJdddpkmT56sdu3aBfQpKCjQk08+qccff1xHjhyp8iC2SZMmGj9+vEaMGKGTTjrJOX7gwAGNHDlS06ZN029+8xutW7dOjRs3Djj3wgsv1K9+9SudeeaZOvPMM3XOOedo48aNlTa2m2+++bhZUL/fr/fee0933nmnFi1apLPPPltLly497jlGIjU1VYcOHdL999+vadOmVdKo49PgwYOPW6kAULuQTgBYKCkpSddff7327Nmjt99++7jvHzp0SNOmTdNJJ52kgQMHhrxGSUmJhg4dqkOHDmnw4MGaNWtWyMArIyNDf/nLX7RkyZKQwXJlmzx5sh588MGAAFaSGjRooBdeeEENGzbUnj17NHfu3OPOnTRpksaNG6fLL7/8uPOris/n06WXXqrPP/9cp5xyinbs2BE2dSOcESNGqEGDBpoxY4ZWrFhRySMFgPhCEAtY6qabbpLkzria3njjDe3fv1+//e1vVadOnZDnv/766/rhhx+UnJysZ555RgkJ4X8d9OjRQ/Xq1av4wCsgNTVVv/jFLyRJmzdvjulYgjVq1EhPPfWUJOmjjz7Sl19+GfU1mjdvrrvvvlt+v19/+MMfoj5/27ZtGj16tE477TSlpqaqYcOG6tGjh55++mkdPXr0uP4FBQWaPHmyLr30UrVr10716tVTWlqaunfvrokTJ+qnn36KegyhFBcXa9KkSerWrZsaNmyo5ORktWzZUj169NB9992nPXv2VMp9gj300EMhc8vLeOWUmsdLSko0ceJEnX766apXr56aNm2qX//611q9evVx18vPz5fP51N2drb8fr+ee+45devWTfXr11d6erouuugiLV261HO8hw8f1uOPP66zzjpLjRo1Ut26dfWLX/xC9913n3bv3l2RRwHEJYJYwFKnn366evbsqQ8//PC4gO6FF16QJA0fPtzz/FmzZkmSBg4cqJYtW1bdQCtRSUmJ8zJRq1atYjuYEC655BI1adJEkjR//vxyXeOee+5R8+bN9eGHH0Z1jcWLF6tz58568skn9dNPP+nCCy/UOeeco/Xr1+uOO+7QoEGDVFJSEnDOvHnz9Pvf/15fffWV2rZtq8GDB6tnz55as2aNcnNz1a9fPxUXF5frc5QpLS3VoEGDdN9992ndunU677zzdNVVV6lLly4qKCjQpEmTtGnTpgrdo6qUlJTo0ksv1Z/+9Ce1adNGgwYNUv369TVz5kydffbZYV8yHD58uEaNGqVGjRrpsssuU8uWLTV//nz17dtXy5YtO67/tm3b1KtXL91zzz1au3atevTooUsvvdT5B0D37t0rNTUGiAcEsYDFRowYodLS0oBqB2vXrtXHH3+s888/X6eccornucuXL5f08wyrLV544QXt2rVL9erV0yWXXBLr4RzH5/PpzDPPlCR988035bpGgwYN9MADD0iScnNz5ff7T3jO9u3b9etf/1r79u3TP/7xD61fv16zZs3S+++/r7Vr16pfv3764IMPNGHChIDzunXrpqVLl2rLli1auHCh/vWvf+nDDz/Upk2bnFnDyZMnRzz2l156SX6/P2Bmc8mSJVqwYIHOOOMMbdmyRe+++65ef/11zZ8/X/n5+friiy+UlZUV8T2q06effqrdu3dr/fr1eu+99/Tvf/9b33//vQYOHKh9+/Yd9zzLbNy4UQsXLtSqVau0YMECTZ8+Xd9++61uuukmFRcX68EHHwzo7/f7dfXVV+vrr7/WiBEjlJ+fr/nz5+utt97SunXrdPfddys/Pz/sP0qB2oggFoiB4cOHhy0RtGjRooiu85vf/EapqalO8CC56QVl6QZeCgoKJP28hG2Dr7/+Wvfee68kaezYsWrRokWMRxRas2bNJKlCy7+33nqr2rdvrxUrVmj69Okn7P/UU09p9+7duv3223XbbbcFpIY0bdpUr7zyipKSkvT0008HBMWnnXaazjrrrOOu17hxY6fqxRtvvFHuzyFJO3bskCSdd955atiw4XHf7969u5o2bRr1dcePHx/y7052dnaFxmvy+Xx68cUXA1Yq6tatq/Hjx0uSPvzwQ89zp0yZoo4dOzpf16lTR3/+858lSYsWLQqYFZ83b54++eQT5eTk6Nlnnw14TomJifrrX/+qzp076z//+Y9WrVpVaZ8PsB3VCYAYMEs1hfL+++87//MPJy0tTUOGDNGrr76qhQsX6vzzz9crr7yihg0baujQoZU55JjasmWLLr/8ch04cEBXXHGFcnNzYz0kT6WlpZJ+DoDKKykpSY888oiuvfZaPfDAAxoyZIiSkpI8+5e95HbNNdeE/P5JJ52kU045Rd9++63Wrl0bEFwdO3ZMCxcu1Keffqoff/xRhw8flt/vd4LdNWvWlPtzSNKZZ56pOnXqaOrUqerYsaN+/etfV0oqiFeJrbJ/RFSGNm3aqGvXrscdP+200yRJW7duDXleYmKiLr744uOOt2zZUo0bN9bevXu1e/duJzgu+/kNGTJE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cuSIvvzySw0YMMA5lpCQoAEDBmjp0qUxHJk9CgsLJYn/rgDUKrUyiC2bAXvooYf0wAMPaM6cOWrcuLH69OmjPXv2xHh0NZff79ewYcN06623qnv37rEejpXWrVunKVOm6JZbbon1UGqMXbt26dixY2rRokXA8RYtWmj79u0xGpU9SktLdeedd+qcc85R586dYz0cAKg2cRXE5ubmyufzhf1TlqMoSffff7+GDBmibt266cUXX5TP59Mbb7wR409R/SJ9blOmTNH+/fs1ZsyYWA855iJ9ZqatW7fq4osv1tChQzVy5MgYjRzx5vbbb9eqVas0bdq0WA8FAKpVYqwHUJnuvvtuDRs2LGyf9u3b68cff5QkderUyTmekpKi9u3ba9OmTVU5xBop0uf20UcfaenSpcft0d69e3ddd911evnll6twlDVLpM+szLZt29S3b1+dffbZeu6556p4dHZp1qyZ6tSpox07dgQc37Fjh1q2bBmjUdlh1KhRmjNnjhYvXqzWrVvHejgAUK3iKojNyMhQRkbGCft169ZNKSkpWrNmjc4991xJUklJifLz89W2bduqHmaNE+lzmzx5sh555BHn623btmngwIGaPn26evXqVZVDrHEifWbSzzOwffv2dWb8ExLiagGkwpKTk9WtWzctWLDAKXNXWlqqBQsWaNSoUbEdXA3l9/t1xx13aObMmVq4cKHatWsX6yEBQLWLqyA2Umlpabr11ls1btw4ZWVlqW3btpo0aZIkaejQoTEeXc3Vpk2bgK8bNGggSTr55JOZBfKwdetW9enTR23bttVjjz2mgoIC53vMMrpGjx6tG2+8Ud27d1fPnj311FNP6eDBgxo+fHish1Yj3X777Xr99dc1a9YsNWzY0MkdTk9PV7169WI8OgCoHrUyiJV+LnOUmJioG264QYcPH1avXr300UcfqXHjxrEeGuLI/PnztW7dOq1bt+64QL8WVrfzdM0116igoEAPPvigtm/frpycHL3//vvHveyFnz3zzDOSpD59+gQcf/HFF0+Y5gIA8aJW1okFAACA3UjOAwAAgHUIYgEAAGAdglgAAABYhyAWAAAA1iGIBQAAgHUIYgEAAGAdglgAAABYhyAWAAAA1iGIBSrBjz/+qGuvvVYdO3ZUQkKC7rzzzpD93njjDZ166qmqW7euunTponfffbd6BwoAQJwgiAUqQXFxsTIyMvTAAw+oa9euIft8+umn+n//7/9pxIgRWrlypQYPHqzBgwdr1apV1TxaAADsx7azQAQKCgrUpUsX/e53v9Mf//hHST8HpX369NF7772n/v37O3379OmjnJwcPfXUUwHXuOaaa3Tw4EHNmTPHOXbWWWcpJydHzz77bLV8DgAA4gUzsUAEMjIyNHXqVD300ENavny59u/frxtuuEGjRo0KCGDDWbp0qQYMGBBwbODAgVq6dGlVDBkAgLiWGOsBALa49NJLNXLkSF133XXq3r276tevrwkTJkR8/vbt29WiRYuAYy1atND27dsre6gAAMQ9ZmKBKDz22GM6evSo3njjDb322mtKSUmJ9ZAAAKiVCGKBKKxfv17btm1TaWmp8vPzozq3ZcuW2rFjR8CxHTt2qGXLlpU4QgAAageCWCBCR44c0fXXX69rrrlGDz/8sG6++Wbt3Lkz4vN79+6tBQsWBBybP3++evfuXdlDBQAg7pETC0To/vvvV2FhoSZPnqwGDRro3Xff1U033eRUG8jLy5MkHThwQAUFBcrLy1NycrI6deokSfr973+vCy64QI8//rgGDRqkadOmafny5Xruuedi9ZEAALAWJbaACCxcuFAXXnih/vOf/+jcc8+VJOXn56tr16569NFHddttt8nn8x13Xtu2bQPSDt544w098MADys/P1ymnnKK//vWvuvTSS6vrYwAAEDcIYgEAAGAdcmIBAABgHYJYAAAAWIcgFgAAANYhiAUAAIB1CGIBAABgHYJYAAAAWIcgFgAAANYhiAUAAIB1CGIBAABgHYJYAAAAWIcgFgAAANYhiAUAAIB1/n8MtbHhDJMiKQAAAABJRU5ErkJggg==", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAArEAAAL3CAYAAACd2x1cAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAABTXUlEQVR4nO3deXxU1f3/8fcEsrAkYQubCYQgigqCrIIbm6JiFYvUftVWEHmoP7FVXBqqiFRbpKhYtGr9KqJWC1pF1LghFBTBFRBRoICEVSBsCSAmgczvD7+590yYm8xkm5yZ1/Px4PE4uXPuvWcmMX5yzud+js/v9/sFAAAAWCQu0gMAAAAAwkUQCwAAAOsQxAIAAMA6BLEAAACwDkEsAAAArEMQCwAAAOsQxAIAAMA6BLEAAACwDkEsAAAArEMQC9SizMxM+Xw+zZo1q9x+AwYMkM/n03333RdwfNGiRfL5fM6/FStWlHud0047zel7/fXXe/YrLi7Wc889p+HDh6tdu3Zq0KCBGjZsqKysLF1xxRV66aWXVFRUFOrbrJLdu3frhRde0FVXXaVOnTopKSlJDRs2VOfOnfW73/1Oubm5nud+9NFH+stf/qIRI0Y4n7XP59OSJUuqNCbzWj6fT3FxcUpOTlZ6eroGDhyoO+64Q59//nmlrz9q1Cjn2uPGjfPs98ADD8jn82nUqFGVvld1KP08yn4vSt/HokWLauzepf9tlPfv1ltvrbH71yWlvw8GDBgQ6aEAEVE/0gMAUHkzZ87UY489FvS1Tz/9VN99912F11i+fLmuuOIKbdq0ST6fT926dVOfPn0UFxen3NxcvfHGG3rttdd0991367vvvlPDhg2r+20EGD9+vF566SXFxcWpS5cuuvTSS3X48GF98cUXeuyxxzRz5kzNnTtX559//nHn/u53v9PXX39dY2M766yzdOKJJ0qSjhw5oj179mjFihVatGiRHn74YZ133nmaOXOmsrKyKn2Pp59+Wrfddps6duxYXcOOSt26dVP37t2DvtanT5/aHQyAiCCIBSzUrl07/fTTT3r55Zf10EMPKTEx8bg+M2fOlCT17t1bX3zxRdDrLF++XOecc45+/PFHXXLJJZoxY4Y6dOgQ0CcvL0/Tp0/Xww8/rKKiohoPYps1a6bJkydrzJgxOuGEE5zjhw4d0tixYzV79mz9+te/1oYNG9S0adOAc88//3xdfvnl6tGjh3r06KGzzjpLmzdvrraxXX/99cfNgvr9fr377ru69dZbtXjxYvXv31/Lli077nMMRcOGDfXjjz/q7rvv1uzZs6tp1NFp+PDhx61UAIgtpBMAFoqPj9c111yjffv26Y033jju9R9//FGzZ8/WCSecoKFDhwa9RnFxsUaOHKkff/xRw4cP17x584IGXmlpafrLX/6iJUuWBA2Wq9uMGTN07733BgSwktS4cWM9++yzSk5O1r59+5STk3PcudOmTdOkSZP0i1/84rjza4rP59PFF1+szz//XJ06ddKuXbvKTd0oz5gxY9S4cWO98sorWr58eTWPFACiC0EsYKnrrrtOkjvjanr11Vd18OBB/fa3v1W9evWCnv/yyy/r+++/V0JCgp588knFxZX/66B3795q0KBB1QdeBQ0bNtTJJ58sSdq6dWtEx1JWkyZN9Oijj0qSFi5cqK+++irsa7Rs2VK33367/H6//vCHP4R9/o4dOzR+/HidcsopatiwoZKTk9W7d289/vjjOnr06HH98/LyNGPGDF188cXq0KGDGjRooJSUFPXq1UtTp07VTz/9FPYYgiksLNS0adPUs2dPJScnKyEhQa1bt1bv3r111113ad++fdVyn7Luu+++oLnlpbxySs3jxcXFmjp1qk477TQ1aNBAzZs31y9/+UutWbPmuOvl5ubK5/MpMzNTfr9fTz/9tHr27KlGjRopNTVVF1xwgZYtW+Y53iNHjujhhx/WmWeeqSZNmigpKUknn3yy7rrrLu3du7cqHwUQlQhiAUuddtpp6tOnjz788MPjArpnn31WkjR69GjP8+fNmydJGjp0qFq3bl1zA61GxcXFzsNEbdq0iexggrjooovUrFkzSdL8+fMrdY077rhDLVu21IcffhjWNT766CN16dJF06dP108//aTzzz9fZ511ljZu3KhbbrlFw4YNU3FxccA577//vn7/+99r1apVat++vYYPH64+ffpo3bp1ys7O1qBBg1RYWFip91GqpKREw4YN01133aUNGzbonHPO0RVXXKGuXbsqLy9P06ZN05YtW6p0j5pSXFysiy++WH/605/Url07DRs2TI0aNdLcuXPVv3//ch8yHD16tMaNG6cmTZrokksuUevWrTV//nwNHDhQn3322XH9d+zYob59++qOO+7Q+vXr1bt3b1188cXOHwC9evWq1tQYIBoQxAIWGzNmjEpKSgKqHaxfv14ff/yxzj33XHXq1Mnz3C+//FLSzzOstnj22We1Z88eNWjQQBdddFGkh3Mcn8+nHj16SJK+/fbbSl2jcePGuueeeyRJ2dnZ8vv9FZ6zc+dO/fKXv9SBAwf0xBNPaOPGjZo3b57ee+89rV+/XoMGDdIHH3ygKVOmBJzXs2dPLVu2TNu2bdOiRYv0r3/9Sx9++KG2bNnizBrOmDEj5LHPmjVLfr8/YGZzyZIlWrBggc444wxt27ZN77zzjl5++WXNnz9fubm5+uKLL5SRkRHyPWrT0qVLtXfvXm3cuFHvvvuu/v3vf+u///2vhg4dqgMHDhz3eZbavHmzFi1apNWrV2vBggWaM2eOvvvuO1133XUqLCzUvffeG9Df7/frV7/6lb755huNGTNGubm5mj9/vl5//XVt2LBBt99+u3Jzc8v9oxSIRQSxQASMHj263BJBixcvDuk6v/71r9WwYUMneJDc9ILSdAMveXl5kn5ewrbBN998ozvvvFOSNHHiRLVq1SrCIwquRYsWklSl5d8bb7xRWVlZWr58uebMmVNh/0cffVR79+7VzTffrJtuuikgNaR58+Z64YUXFB8fr8cffzwgKD7llFN05plnHne9pk2bOlUvXn311Uq/D0natWuXJOmcc85RcnLyca/36tVLzZs3D/u6kydPDvrfTmZmZpXGa/L5fHruuecCViqSkpI0efJkSdKHH37oee5jjz2mk046yfm6Xr16+vOf/yxJWrx4ccCs+Pvvv69PPvlE3bt311NPPRXwOdWvX19//etf1aVLF/3nP//R6tWrq+39AbajOgEQAWappmDee+8953/+5UlJSdGIESP04osvatGiRTr33HP1wgsvKDk5WSNHjqzOIUfUtm3b9Itf/EKHDh3SpZdequzs7EgPyVNJSYmknwOgyoqPj9cDDzygq666Svfcc49GjBih+Ph4z/6lD7ldeeWVQV8/4YQT1KlTJ3333Xdav359QHB17NgxLVq0SEuXLtUPP/ygI0eOyO/3O8HuunXrKv0+JKlHjx6qV6+eZs6cqZNOOkm//OUvqyUVxKvEVukfEdWhXbt26tat23HHTznlFEnS9u3bg55Xv359XXjhhccdb926tZo2bar9+/dr7969TnBc+v0bMWKE6tc//n/LcXFxOvfcc7V69WotXbpUXbp0qfR7AqIJQSwQAcFKNZkGDBgQUhAr/Tzj+uKLL2rmzJn68ccftWPHDl1//fUVlsJKS0vT1q1btXv37nCGXqE33ngjaMWE66+/XmeffXbY19u5c6cGDx6szZs3a+jQoXrllVeqFCCWFez70KJFCz300EOVut6ePXskycmNraxf//rXmjZtmlasWKF//OMf5W6C8P3330v6ebazInl5eU4Qu379el1++eXlpj4UFBSEOfJAHTt21PTp03XnnXdq3LhxGjdunNq3b69+/frpkksu0ciRI5WQkBD2dWujxFa7du2CHk9JSZEkz3zhNm3aeP7RkZKSov379wc8NFf6/Zs4caImTpxY7phKV1AAEMQC1jvvvPPUsWNHvfbaa9q5c6ekilMJpJ/zIbdu3epZQ7ayVq5cqeeff/644wMGDAg7iN29e7cGDRqk//73vxoyZIjeeOONai/zFWys7du3r1QQ6/f7nV3UunbtWqVx+Xw+Pfjggxo6dKjuv//+cv/oKZ39veKKK9SoUaNyr2su3V9xxRX69ttvdckll+iuu+7SqaeeqpSUFMXHx6uoqKjaPutbbrlFv/rVr/Tmm29qyZIlWrJkiWbPnq3Zs2dr0qRJ+vjjjyPyoF7p5+aloood1XVe6TjOPvvsCje5OO200yo1JiAaEcQClivdhnTixIn68MMPdcopp6hfv34VnnfZZZfpjTfe0Pvvv69du3ZVW47pfffdVy0zZHl5eRo0aJDWrFmjwYMH680331RSUlLVB1hGKA9Oheqdd97R/v37JUkXXHBBla93wQUXaPDgwVqwYIEefvhhz3JpGRkZWr9+vf7whz+oV69eIV177dq1WrVqlVq2bKm5c+cet4y9fv36Ko/f1KpVK40dO1Zjx4517n/ddddp2bJlys7ODvrHRFWVzvAePHgw6Ot15Wn/0gfbLrvsMt1xxx0RHg1gDx7sAqLAqFGjlJaWpubNm+uGG24I6Zyrr75amZmZKioq0k033VThrNRXX32lI0eOVMdwK7Rnzx4NGjRI3377rQYPHqy33nor4jVqK5Kfn6/bbrtN0s87h3ltiRquqVOnyufz6eGHH/ZcSi6t1PDKK6+EfN3S2qxt27YNmof5z3/+sxKjDV3nzp2dWrgrV66skXuUbngRrKarpKAbZkRC6ffv1VdfrdY/qoBoRxALRIH09HTt3r1be/bs0e9///uQzomPj9crr7yipKQkzZ07V8OHD9emTZuO67dv3z5NnDhRZ511VpVrhoZi3759Gjx4sFavXq0hQ4bU+QC2dNvZPn36aP369WrTpo3+93//t9qu37NnT40cOVIHDx7UM888E7TPnXfeqSZNmuiRRx5xtgcua9OmTQGB6UknnaR69erpm2++0aJFiwL6vvXWW5o+fXq1jH/hwoV65513jqtR6/f79fbbb0v6OX2jJgwaNEhxcXF6//33Ayp++P1+zZgxQ6+99lqN3Ddcl112mXr37q3PP/9co0ePDvrHyv79+/XUU08F3bQCiFWkEwAxrHfv3vroo480cuRIvfXWW3r77bd1xhlnKCsrS3Fxcdq8ebO+/PJLHTt2TFlZWbWy7ez111+vVatWyefzqVmzZrrpppuC9hs+fLiGDx8ecOyZZ54JCPR++OEHSdINN9zglC1q06aN5s6dW6mxPfPMM07AV1hYqD179mj58uXOrOaAAQM0c+bMag/K/vznP2vu3Ln68ccfg76enp6uefPmacSIEbrjjjuckkxt2rRRfn6+1qxZo40bN6pv37665pprJP388Nq4ceP0t7/9TYMHD9Y555yjtm3bat26dVq+fLnuuecePfDAA1Ue+6pVq3TbbbcpJSVFPXr0UNu2bXXkyBEtX75cmzdvVmpqqv70pz9V+T7BZGRk6JZbbgl4j82aNdPXX3+tLVu2KDs7Ww8++GCN3DsccXFxeuONNzRs2DA9//zz+ve//61u3bqpXbt2Kioq0vfff69vvvlGx44d06hRo4LOnAOxiP8SgBjXu3dv/fe//9WLL76oefPmafny5fr222/l8/nUpk0bXX755RoxYkSFZZ6qS2lA6Pf7y10ez8zMPC6I3bZtW9DdkL777junXZUA85NPPtEnn3wiSc5Wol27dlWvXr105ZVX1tjGESeeeKLGjh2rJ554wrPPueeeq2+//VaPP/64cnJy9MUXX6iwsFAtW7ZUu3btdM0112jEiBEB50yfPl2nn366nnjiCX311VdauXKlunbtqtmzZ+vKK6+sliD2F7/4hfLz8/Xxxx9r/fr1+vTTT9WgQQNlZGQoOztbN998s9LT06t8Hy/Tp09Xu3bt9Mwzz2jp0qVq3LixzjrrLL3yyisqKCioE0Gs9HNax6ef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0/Tkk0/q+++/j/RQ6oy+ffuqd+/eevzxxyVJJSUlysjI0C233KLs7OwIj67uy8vLU8uWLbV48WKde+65kR4OANSKmJyJXb58ubZv3664uDidccYZatOmjS666CKtXr060kOr83bt2qWxY8fqxRdfVMOGDSM9HCvl5+erWbNmkR5GnVFUVKSvvvpKQ4YMcY7FxcVpyJAhWrZsWQRHZo/8/HxJ4ucKQEyJySC2dAbsvvvu0z333KO3335bTZs21YABA7Rv374Ij67u8vv9GjVqlG688Ub16tUr0sOx0oYNG/TYY4/phhtuiPRQ6ow9e/bo2LFjatWqVcDxVq1aaefOnREalT1KSkp066236qyzzlKXLl0iPRwAqDVRFcRmZ2fL5/OV+680R1GS7r77bo0YMUI9e/bUc889J5/Pp1dffTXC76L2hfq5PfbYYzp48KAmTJgQ6SFHXKifmWn79u268MILNXLkSI0dOzZCI0e0ufnmm7V69WrNnj070kMBgFpVP9IDqE633367Ro0aVW6frKws/fDDD5KkU0891TmemJiorKwsbdmypSaHWCeF+rktXLhQy5YtO26P9l69eunqq6/W888/X4OjrFtC/cxK7dixQwMHDlT//v319NNP1/Do7NKiRQvVq1dPu3btCji+a9cutW7dOkKjssO4ceP09ttv66OPPlJ6enqkhwMAtSqqgti0tDSlpaVV2K9nz55KTEzUunXrdPbZZ0uSiouLlZubq/bt29f0MOucUD+3GTNm6IEHHnC+3rFjh4YOHao5c+aob9++NTnEOifUz0z6eQZ24MCBzox/XFxULYBUWUJCgnr27KkFCxY4Ze5KSkq0YMECjRs3LrKDq6P8fr9uueUWzZ07V4sWLVKHDh0iPSQAqHVRFcSGKiUlRTfeeKMmTZqkjIwMtW/fXtOmTZMkjRw5MsKjq7vatWsX8HXjxo0lSR07dmQWyMP27ds1YMAAtW/fXg899JDy8vKc15hldI0fP17XXnutevXqpT59+ujRRx/V4cOHNXr06EgPrU66+eab9fLLL2vevHlKTk52codTU1PVoEGDCI8OAGpHTAax0s9ljurXr6/f/OY3OnLkiPr27auFCxeqadOmkR4aosj8+fO1YcMGbdiw4bhAPwar23m68sorlZeXp3vvvVc7d+5U9+7d9d577x33sBd+9uSTT0qSBgwYEHD8ueeeqzDNBQCiRUzWiQUAAIDdSM4DAACAdQhiAQAAYB2CWAAAAFiHIBYAAADWIYgFAACAdQhiAQAAYB2CWAAAAFiHIBYAAADWIYgFqsEPP/ygq666SieddJLi4uJ06623Bu336quvqnPnzkpKSlLXrl31zjvv1O5AAQCIEgSxQDUoLCxUWlqa7rnnHnXr1i1on6VLl+p//ud/NGbMGK1YsULDhw/X8OHDtXr16loeLQAA9mPbWSAEeXl56tq1q373u9/pj3/8o6Sfg9IBAwbo3Xff1eDBg52+AwYMUPfu3fXoo48GXOPKK6/U4cOH9fbbbzvHzjzzTHXv3l1PPfVUrbwPAACiBTOxQAjS0tI0c+ZM3Xffffryyy918OBB/eY3v9G4ceMCAtjyLFu2TEOGDAk4NnToUC1btqwmhgwAQFSrH+kBALa4+OKLNXbsWF199dXq1auXGjVqpClTpoR8/s6dO9WqVauAY61atdLOnTure6gAAEQ9ZmKBMDz00EM6evSoXn31Vb300ktKTEyM9JAAAIhJBLFAGDZu3KgdO3aopKREubm5YZ3bunVr7dq1K+DYrl271Lp162ocIQAAsYEgFghRUVGRrrnmGl155ZW6//77df3112v37t0hn9+vXz8tWLAg4Nj8+fPVr1+/6h4qAABRj5xYIER333238vPzNWPGDDVu3FjvvPOOrrvuOqfawMqVKyVJhw4dUl5enlauXKmEhASdeuqpkqTf//73Ou+88/Twww9r2LBhmj17tr788ks9/fTTkXpLAABYixJbQAgWLVqk888/X//5z3909tlnS5Jyc3PVrVs3Pfjgg7rpppvk8/mOO699+/YBaQevvvqq7rnnHuXm5qpTp07661//qosvvri23gYAAFGDIBYAAADWIScWAAAA1iGIBQAAgHUIYgEAAGAdglgAAABYhyAWAAAA1iGIBQAAgHUIYgEAAGAdglgAAABYhyAWAAAA1iGIBQAAgHUIYgEAAGAdglgAAABY5/8Dcyn5TGGZ9+wAAAAASUVORK5CYII=", "text/plain": [ "Figure(PyObject
)" ] @@ -622,13 +593,13 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 23, "id": "2c9052ab", "metadata": {}, "outputs": [ { "data": { - "image/png": "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XnqpJGnRokUhz6kYb0VhXvG/r7zyio4dOxa1sUXq+PHjTlHTunXr2A4mhMsuu0zNmjWT5P1ZV8d1112nrl27asOGDSH/8eRl3bp1ysvL0z333KM9e/aoX79+Gjx4sAoKCnTXXXfp/PPPV2FhYcA1n332mX7xi19o+fLlatWqla644gr169dP3333ne677z717NmzRh7+GzdunG688UatWrVKPXv21KhRo9S9e3cdO3ZMf/3rX7VmzZpqv0e0jBkzRhMmTFCTJk10+eWXq1WrVlq0aJEGDhyoDz/80PO6qVOnatSoUZKkoUOHqnPnzlqxYoUuv/zykLPshw4d0sUXX6zx48fr008/1dlnn63hw4crNTVVTz75pM4555yTPmQKxDuKWKCWjR07VuXl5QH5u2+++Ubvv/++LrzwQnXu3Nnz2k8++UTSDzOs0XbuuedKkr788ssTvvf111/r/fffdyISktS3b1916dJFhYWF+vvf/x718YVrxowZ2rt3r9LS0nTZZZfFejgn8Pl8zoNDoT7r6kpKStJ9990nSZo2bVpY/8A4duyYhg8frm3btunOO+9Ufn6+Fi5cqHnz5unbb7/Vz372M61Zs0a/+tWvAq7Lzc3Vu+++q127dun999/XK6+8onfeeUdbt27Vddddp40bN2rKlClhj/3uu++W3+8PmPncunWrnn32WWVnZ2vz5s1atGiRXn75Zb399tv6+uuvtW7durh9EGvLli1asmSJ1q5dq8WLF2v27Nlat26dbrjhBhUXF1f62Tz66KNauXKlli9frldeeUVr1qzR1KlT5ff7NWnSpBPOv+mmm7RkyRJdfvnl2rRpk5YsWaI5c+Zow4YN+vOf/6x9+/Y5sSHAVhSxQJjGjBlTaRuepUuXhnWfn/70p2rYsKFmzZolv98vyY0XVMxmeikoKJAktWjRoho/SXiaN28uSSFnzirGO3z4cGVlZTmvV4w/XiIFX3zxhf7f//t/kqS77rpLLVu2jPGIQqvss64JV1xxhS644ALt2LFDf/nLX056/nPPPadNmzbp8ssv1+9//3ulpKQ432vYsKGeeuoptWjRQi+88IIOHDjgfC87O1uDBg06IebSsGFDPfHEE6pfv77mzJlTrZ9l9+7dkn7oGBBqNeL0009Xu3btIr7vc8895/l3uyY99thj+tGPfuR8Xa9ePf3hD3+QJC1dulTHjx8Ped0999yj3r17B7w2efJkZWZm6uuvvw5Y2Vm/fr3+9re/qU2bNnr55ZdP+O/FbbfdpqFDh+qbb77RwoULa+pHA2od3QmAMJmtkkJ5++23nf+DrUxGRoauvPJKvfDCC1qyZIkuvPBCPf/880pPT3eWC+NBeXm5JJ3wf+KlpaV67rnnJJ1YdF933XW64447tGzZMm3atEmdOnWqncGGsH37dl1xxRU6fPiwhg8fHnK2Kl54fdY16YEHHlDfvn31wAMP6Be/+IUTYQil4gG4ipxzsMaNG6tHjx5asGCBPv74Y11yySUB31+xYoXef/99bd26VUePHnX+sZaSkqKCggIdOHDghC4R4erSpYvS09O1YMEC/eEPf9DVV19dI10dKmuxVVPq16/vxHRMrVq1UtOmTXXgwAHt27cvZHEeqktIamqqOnbsqNWrV2vHjh3KycmRJC1YsEB+v1+XXXaZ0tPTQ45lwIABWrBggRNJAGxEEQuEKVSrJNOAAQPCKmKlH4q/F154QTNnztTRo0e1c+dOjRs37oRWWMGysrK0bds27dmzJ5KhV8nevXsl6YRiZ/78+dq1a1fILgotW7bU0KFDNW/ePM2cOdOZYTqZ119/PWTHhnHjxlWpsNi1a5cGDRqkLVu2aMiQIXr11VdrtEAM9eegefPmeuihh6p0P6/Puib16dNHI0aM0Ouvv6777ruv0rF+++23kqRrr71W1157baX3rVgdkH7YdOLKK6886UYRRUVFVS5i09PT9eyzz2rMmDG68847deedd6p169Y677zzdOmll+rqq69W48aNI75vbbTYat26tZKTk0N+LyMjQwcOHND3338f8vtes8sZGRmSFHBdxe/fjBkzTroqYv7+AbahiAVioH///urUqZNee+017dq1S9LJowTSDznVbdu21Uobq1WrVkmSzjrrrIDXK/5P8fvvv1f//v1PuG7Hjh2SfniS+5577vHstGBas2aNM7trGjBgQMRF7J49e3TRRRfp66+/1uDBg/X6669H1GYsHKHG2r59+yoVsX6/33nAJvizrmn33Xef3nzzTT3++OOV9vOtmBm+9NJLTxrBaN++vXM8btw4LV++XH369NG0adOUl5enpk2bOoVbmzZt9N133zkzs1V15ZVXavDgwZo3b57ef/99/fvf/9bcuXM1d+5cTZkyRYsWLYr6ZxlKxefm5WTdRGrq2opxdOvWTXl5eZWeGxxRAGxCEQvEQEWbnrvuukvvvvuuTj/9dPXp0+ek1/34xz/W66+/rnfeeUe7d++OWsZz7969eueddyQpYKn4u+++c1r67Nu3T//+978977Fz5069/fbbGjZs2Enf7+677z5hu96qKCgo0EUXXaT169dr0KBBmjdvnho0aFDt+warbhFmWrBggZMrDV6Wr2mnn366Ro8erRkzZmjKlCmeO7Ll5ORow4YNGjt2rH7yk5+Ede8jR45owYIFSkpK0oIFC9SkSZMTvl/xD7aakJmZGTBTvG3bNt1666164403NGHChLAz6pGoyAYfOnQo5PdrcpOM6qiIFZx//vn661//GuPRANHDg11AjIwePVpZWVk65ZRTdOONN4Z1zTXXXKPc3FyVlJTo5ptvPunMz6effhpxuyu/368JEybo2LFjatasmcaOHet8b9asWSorK1Pv3r3l9/s9f/3mN7+RVLsPeO3du1cXXXSRvvzySw0aNEhvvvlmxD1ya1thYaHzhP/FF1+sbt26Rf09p02bprS0ND3//POe3RAquji8+uqrYd+3sLBQZWVlysjIOKGAlaQXX3yxRov/YDk5OZo2bZokRa3FVsVmGBs2bAj5/VCbacRCxe/fvHnzPOMJQCKgiAViJDs7W3v27NHevXvD3qo1OTlZr776qho0aKC5c+dqxIgR2rx58wnn7d+/3+nlWVxcHPaYPv/8cw0dOlSzZ89WvXr19OKLLwY8GFLRleD666+v9D7XXXedJOmtt96qlczd/v37NWjQIK1du1aDBw+O+wK2YtvZXr166ZtvvlHr1q09N5WoaW3bttWtt96q8vJyPfrooyHP+cUvfqH27dtrzpw5+u1vfxty5nHXrl0BY27ZsqWaNm2qgwcP6oUXXgg494MPPtDkyZNrZPyrV6/W7NmzQ/7j7M0335QUGHGoSb169VJGRobWrVt3ws84Z84cz8+ztp1zzjm68sortW3bNv3Hf/xHyM0fjhw5opdeeinsHD8Qj4gTAJbp2bOnli1bplGjRunNN9/UW2+9pXPOOUcdO3ZUUlKStmzZok8++URlZWXq2LFjyDzo8uXLnYeTSktLdfDgQa1du9ZZDu3QoYNmzJihgQMHOtcsXbpUGzduVGpqqn76059WOsYzzzxT3bt316pVq/T888/r9ttvr7kPIIRx48bp888/l8/nU7NmzXTzzTeHPG/EiBEaMWJEwGvPPPOMnnnmGefr7777TpJ04403OgV869atq7xt6zPPPKMlS5ZIkoqLi7V3716tWrVK+/fvl/RD7nfmzJlRK7xCmTx5sp5++umA9limRo0aaf78+br88sv14IMP6qmnntLZZ5+t7OxsHT16VF9//bXWr1+vFi1aaPz48ZJ+aBU1ZcoU/epXv9J1112nxx9/XB07dtTWrVu1YsUK/fznP9eyZcuqveS+ZcsW/fSnP1VaWpq6d++unJwclZaW6osvvtBXX32llJQUPfjgg9V6Dy9paWmaNm2a8zM+8cQTatu2rdavX69169bpzjvv1O9///uovHeknn32WR08eFALFy7Uaaedpry8PHXo0EF+v1/5+fn67LPPVFJSovXr18dt6zngZChiAQv17NlTX3/9tV544QW98cYbWrVqlb788kv5fD61bt1aI0eO1JVXXqkrr7wy5NPQmzZt0qZNmyT90KYnMzNTOTk5uuSSS3T55Zdr6NChql8/8D8PFdGAK664Iqwny6+77jqtWrVKM2bMiHoRW1EQ+v3+SpfAc3NzTyhit2/fHnKnpHXr1jnH1Skw//3vfzvZ4YptRs866yz16NFDV111Va1sXBGsSZMmmjx5shP7COXMM8/U559/rieffFJz587V559/rpUrV6p58+bKzs7Wr3/9a40cOTLgmttuu00dOnTQgw8+qHXr1unLL79Uly5d9Pjjj+umm26qkVZY5513nu6//34tW7ZM69ev1+rVq1W/fn1lZ2frlltu0a233upsMxwNt912m5o1a6a//OUvWr16tb788kv16NFDjzzyiE499dS4KWLT09P1z3/+U7Nnz9aLL76oTz/9VGvWrFFGRoZat26ta665RsOHD49pGzygunz+aIaUAAAAgCggEwsAAADrUMQCAADAOhSxAAAAsA5FLAAAAKxDEQsAAADrUMQCAADAOhSxAAAAsA5FLAAAAKxDEQsAAADrUMQCAADAOhSxAAAAsA5FLAAAAKxDEQsAAADrUMQCAADAOhSxAAAAsA5FLAAAAKxDEQsAAADrUMQCAADAOhSxAAAAsA5FLAAAAKxDEQsAAADrUMQCAADAOhSxAAAAsA5FLAAAAKxDEQsAAADrUMQCAADAOhSxAAAAsA5FLAAA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vN6yZUvt2rUrRqOyR3l5uW677Tadf/756tq1a6yHAwC1JqGK2EmTJsnn81X6qyKjKEm/+93vdOWVV+rcc8/Vs88+K5/Ppzlz5sT4p6h94X5ujz32mA4dOqTJkyfHesgxF+5nZtqxY4cuvfRSjRo1SuPHj4/RyJFobrnlFq1du1avvPJKrIcCALWqfqwHUJNuv/12jR49utJzOnbsqO+++06SdMYZZzivp6amqmPHjtq6dWs0hxiXwv3c3nvvPa1cufKEPdp79Oiha665Rs8991wURxlfwv3MKuzcuVMDBw5U37599dRTT0V5dHZp3ry56tWrp927dwe8vnv3brVq1SpGo7LDhAkT9NZbb2nZsmXKzs6O9XAAoFYlVBGblZWlrKysk5537rnnKjU1VV999ZX69esnSTp+/Ljy8/PVvn37aA8z7oT7uT366KO69957na937typIUOGaPbs2erdu3c0hxh3wv3MpB9mYAcOHOjM+CclJdQCSLWlpKTo3HPP1eLFi502d+Xl5Vq8eLEmTJgQ28HFKb/fr1tvvVVz587VkiVL1KFDh1gPCQBqXUIVseHKyMjQTTfdpKlTpyonJ0ft27fXH//4R0nSqFGjYjy6+NWuXbuArxs3bixJ6tSpE7NAHnbs2KEBAwaoffv2euihh1RQUOB8j1lG18SJE3X99derR48e6tWrlx555BEdOXJEY8aMifXQ4tItt9yil19+WW+88YbS09Od7HBmZqbS0tJiPDoAqB11soiVfmhzVL9+fV177bU6duyYevfurffee09NmzaN9dCQQBYtWqSNGzdq48aNJxT6dbC7naerrrpKBQUFmjJlinbt2qVu3brp7bffPuFhL/zgiSeekCQNGDAg4PVnn332pDEXAEgUdbJPLAAAAOxGOA8AAADWoYgFAACAdShiAQAAYB2KWAAAAFiHIhYAAADWoYgFAACAdShiAQAAYB2KWAAAAFiHIhaoAd99952uvvpq/ehHP1JSUpJuu+22kOfNmTNHXbp0UYMGDXTWWWdpwYIFtTtQAAASBEUsUAOKi4uVlZWlO++8U3l5eSHPWbFihX72s59p7NixWr16tUaMGKERI0Zo7dq1tTxaAADsx7azQBgKCgp01lln6Ze//KXuuOMOST8UpQMGDNDChQs1aNAg59wBAwaoW7dueuSRRwLucdVVV+nIkSN66623nNfOO+88devWTU8++WSt/BwAACQKZmKBMGRlZWnmzJm6++679cknn+jQoUO69tprNWHChIACtjIrV67U4MGDA14bMmSIVq5cGY0hAwCQ0OrHegCALYYOHarx48frmmuuUY8ePdSoUSNNnz497Ot37dqlli1bBrzWsmVL7dq1q6aHCgBAwmMmFojAQw89pNLSUs2ZM0cvvfSSUlNTYz0kAADqJIpYIAKbNm3Szp07VV5ervz8/IiubdWqlXbv3h3w2u7du9WqVasaHCEAAHUDRSwQppKSEv385z/XVVddpd///vcaN26c9uzZE/b1ffr00eLFiwNeW7Rokfr06VPTQwUAIOGRiQXC9Lvf/U6FhYV69NFH1bhxYy1YsEA33HCD021gzZo1kqTDhw+roKBAa9asUUpKis444wxJ0n//93+rf//+evjhhzVs2DC98sor+uSTT/TUU0/F6kcCAMBatNgCwrBkyRJdfPHF+te//qV+/fpJkvLz85WXl6f7779fN998s3w+3wnXtW/fPiB2MGfOHN15553Kz89X586d9eCDD2ro0KG19WMAAJAwKGIBAABgHTKxAAAAsA5FLAAAAKxDEQsAAADrUMQCAADAOhSxAAAAsA5FLAAAAKxDEQsAAADrUMQCAADAOhSxAAAAsA5FLAAAAKxDEQsAAADrUMQCAADAOv8fp3ghGYoNLqQAAAAASUVORK5CYII=", + "image/png": "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ggVB96mItyIxr/jvm2++qR9//DFqsVXVsWPHfElNq1at4htMEJdddpkyMjIkud/rmhg6dKg6duyotWvXBv3Hk5vVq1erc+fOevDBB7Vr1y717t1b/fr1U2Fhoe6//3716tVLRUVFfsd8+eWX+u1vf6ulS5eqZcuWuvLKK9W7d29t375dDz/8sHr06BGRh/9GjBihm2++WStWrFCPHj00ZMgQde3aVT/++KOeeeYZ5efn1/ga0TJ8+HCNGjVKzZo10xVXXKGWLVtqwYIF6tOnj/773/+6Hjd+/HgNGTJEkjRgwACdcsop+vTTT3XFFVcEHWU/cOCALr74Yo0cOVLLly/XWWedpYEDByolJUXPPfeczj777EofMgVqO5JYIMZuuukmlZeX+9Xffffdd/rkk090wQUX6JRTTnE99osvvpD00whrtHXr1k2S9M033xz33rfffqtPPvnEVyIhSeeff75OO+00FRUV6Z///GfU4wvXlClTtHv3bjVq1EiXXXZZvMM5jsfj8T04FOxe11S9evX08MMPS5ImTJgQ1j8wfvzxRw0cOFBbtmzRfffdp4KCAs2fP19z5szRxo0b9atf/Ur5+fn6/e9/73dcTk6OPvroI+3YsUOffPKJ3nzzTX344YfavHmzhg4dqvXr12vcuHFhx/7AAw/I6/X6jXxu3rxZ06ZNU5s2bfT9999rwYIFev311/XBBx/o22+/1erVq2vtg1ibNm3SokWLtGrVKi1cuFAzZszQ6tWr9Zvf/EYlJSUh781TTz2lZcuWaenSpXrzzTeVn5+v8ePHy+v1asyYMcftf8stt2jRokW64oortGHDBi1atEgzZ87U2rVr9be//U179uzxlQ0BtiKJBcI0fPjwkG14Fi9eHNZ5rr32WqWmpmr69Onyer2SnPKCitFMN4WFhZKkrKysGnyS8Jx44omSFHTkrCLegQMHKjMz0/d6Rfy1paTg66+/1h/+8AdJ0v33368WLVrEOaLgQt3rSLjyyiv185//XFu3btXf//73Svd/6aWXtGHDBl1xxRV66KGHlJyc7HsvNTVVzz//vLKysvTKK69o3759vvfatGmjvn37HlfmkpqaqsmTJ6t+/fqaOXNmjT7Lzp07Jf3UMSDYbMTpp5+utm3bVvm8L730kuvvdiQ9/fTT+tnPfub7OikpSX/5y18kSYsXL9axY8eCHvfggw/q3HPP9Xtt7NixSk9P17fffus3s7NmzRq98cYbat26tV5//fXj/r648847NWDAAH333XeaP39+pD4aEHN0JwDCZLZKCuaDDz7w/Q82lLS0NA0ePFivvPKKFi1apAsuuEAvv/yymjZt6psurA3Ky8sl6bj/iZeWluqll16SdHzSPXToUN1zzz1asmSJNmzYoJNPPjk2wQbxww8/6Morr9TBgwc1cODAoKNVtYXbvY6kSZMm6fzzz9ekSZP029/+1lfCEEzFA3AVdc6BmjRpou7du2vevHn6/PPPdckll/i9/+mnn+qTTz7R5s2bdfjwYd8/1pKTk1VYWKh9+/Yd1yUiXKeddpqaNm2qefPm6S9/+Yuuu+66iHR1CNViK1Lq16/vK9MxtWzZUs2bN9e+ffu0Z8+eoMl5sC4hKSkpys3N1cqVK7V161ZlZ2dLkubNmyev16vLLrtMTZs2DRpLXl6e5s2b5ytJAGxEEguEKVirJFNeXl5YSaz0U/L3yiuvaOrUqTp8+LC2bdumESNGHNcKK1BmZqa2bNmiXbt2VSX0atm9e7ckHZfszJ07Vzt27AjaRaFFixYaMGCA5syZo6lTp/pGmCrz7rvvBu3YMGLEiGolFjt27FDfvn21adMm9e/fX2+99VZEE8RgPwcnnniiHn/88Wqdz+1eR1LPnj01aNAgvfvuu3r44YdDxrpx40ZJ0g033KAbbrgh5HkrZgeknxadGDx4cKULRRQXF1c7iW3atKmmTZum4cOH67777tN9992nVq1a6bzzztOll16q6667Tk2aNKnyeWPRYqtVq1Zq0KBB0PfS0tK0b98+HTlyJOj7bqPLaWlpkuR3XMX3b8qUKZXOipjfP8A2JLFAHFx44YU6+eST9fbbb2vHjh2SKi8lkH6qU92yZUtM2litWLFCktSpUye/1yv+p3jkyBFdeOGFxx23detWST89yf3ggw+6dlow5efn+0Z3TXl5eVVOYnft2qWLLrpI3377rfr166d33323Sm3GwhEs1nbt2lUrifV6vb4HbALvdaQ9/PDDeu+99/Tss8+G7OdbMTJ86aWXVlqC0a5dO9/2iBEjtHTpUvXs2VMTJkxQ586d1bx5c1/i1rp1a23fvt03MltdgwcPVr9+/TRnzhx98skn+s9//qNZs2Zp1qxZGjdunBYsWBD1exlMxX1zU1k3kUgdWxFHly5d1Llz55D7BpYoADYhiQXioKJNz/3336+PPvpIp59+unr27FnpcVdddZXeffddffjhh9q5c2fUajx3796tDz/8UJL8poq3b9/ua+mzZ88e/ec//3E9x7Zt2/TBBx/o8ssvr/R6DzzwwHHL9VZHYWGhLrroIq1Zs0Z9+/bVnDlz1LBhwxqfN1BNkzDTvHnzfHWlgdPykXb66adr2LBhmjJlisaNG+e6Ilt2drbWrl2rm266SVdffXVY5z506JDmzZunevXqad68eWrWrNlx71f8gy0S0tPT/UaKt2zZottvv12zZ8/WqFGjwq5Rr4qK2uADBw4EfT+Si2TUREVZQa9evfTMM8/EORogeniwC4iTYcOGKTMzUyeccIJuvvnmsI65/vrrlZOTo6NHj+rWW2+tdORn+fLlVW535fV6NWrUKP3444/KyMjQTTfd5Htv+vTpKisr07nnniuv1+v6549//KOk2D7gtXv3bl100UX65ptv1LdvX7333ntV7pEba0VFRb4n/C+++GJ16dIl6tecMGGCGjVqpJdfftm1G0JFF4e33nor7PMWFRWprKxMaWlpxyWwkvTqq69GNPkPlJ2drQkTJkhS1FpsVSyGsXbt2qDvB1tMIx4qvn9z5sxxLU8AEgFJLBAnbdq00a5du7R79+6wl2pt0KCB3nrrLTVs2FCzZs3SoEGD9P333x+33969e329PEtKSsKO6auvvtKAAQM0Y8YMJSUl6dVXX/V7MKSiK8GNN94Y8jxDhw6VJL3//vsxqbnbu3ev+vbtq1WrVqlfv361PoGtWHb2nHPO0XfffadWrVq5LioRaSeddJJuv/12lZeX66mnngq6z29/+1u1a9dOM2fO1J/+9KegI487duzwi7lFixZq3ry59u/fr1deecVv388++0xjx46NSPwrV67UjBkzgv7j7L333pPkX+IQSeecc47S0tK0evXq4z7jzJkzXe9nrJ199tkaPHiwtmzZol/+8pdBF384dOiQXnvttbDr+IHaiHICwDI9evTQkiVLNGTIEL333nt6//33dfbZZys3N1f16tXTpk2b9MUXX6isrEy5ublB60GXLl3qeziptLRU+/fv16pVq3zToe3bt9eUKVPUp08f3zGLFy/W+vXrlZKSomuvvTZkjGeeeaa6du2qFStW6OWXX9Zdd90VuRsQxIgRI/TVV1/J4/EoIyNDt956a9D9Bg0apEGDBvm99uKLL+rFF1/0fb19+3ZJ0s033+xL4Fu1alXtZVtffPFFLVq0SJJUUlKi3bt3a8WKFdq7d6+kn+p+p06dGrXEK5ixY8fqhRde8GuPZWrcuLHmzp2rK664Qo8++qief/55nXXWWWrTpo0OHz6sb7/9VmvWrFFWVpZGjhwp6adWUePGjdPvf/97DR06VM8++6xyc3O1efNmffrpp/r1r3+tJUuW1HjKfdOmTbr22mvVqFEjde3aVdnZ2SotLdXXX3+tdevWKTk5WY8++miNruGmUaNGmjBhgu8zTp48WSeddJLWrFmj1atX67777tNDDz0UlWtX1bRp07R//37Nnz9fp556qjp37qz27dvL6/WqoKBAX375pY4ePao1a9bU2tZzQGVIYgEL9ejRQ99++61eeeUVzZ49WytWrNA333wjj8ejVq1a6Re/+IUGDx6swYMHB30aesOGDdqwYYOkn9r0pKenKzs7W5dccomuuOIKDRgwQPXr+//1UFEacOWVV4b1ZPnQoUO1YsUKTZkyJepJbEVC6PV6Q06B5+TkHJfE/vDDD0FXSlq9erVvuyYJ5n/+8x9f7XDFMqOdOnVS9+7ddc0118Rk4YpAzZo109ixY31lH8GceeaZ+uqrr/Tcc89p1qxZ+uqrr7Rs2TKdeOKJatOmje6++2794he/8DvmzjvvVPv27fXoo49q9erV+uabb3Taaafp2Wef1S233BKRVljnnXeeHnnkES1ZskRr1qzRypUrVb9+fbVp00a33Xabbr/9dt8yw9Fw5513KiMjQ3//+9+1cuVKffPNN+revbuefPJJdejQodYksU2bNtW//vUvzZgxQ6+++qqWL1+u/Px8paWlqVWrVrr++us1cODAuLbBA2rK441mkRIAAAAQBdTEAgAAwDoksQAAALAOSSwAAACsQxILAAAA65DEAgAAwDoksQAAALAOSSwAAACsQxILAAAA65DEAgAAwDoksQAAALAOSSwAAACsQxILAAAA65DEAgAAwDoksQAAALAOSSwAAACsQxILAAAA65DEAgAAwDoksQAAALAOSSwAAACsQxILAAAA65DEAgAAwDoksQAAALAOSSwAAACsQxILAAAA65DEAgAAwDoksQAAALAOSSwAAACsQxILAAAA65DEAgAAwDoksQAAALAOSSwAAACsQxILAAAA65DEAgAAwDoksQAAALAOSSwAAACsQxILAAAA65DEAgAAwDoksQAAALAOSSwAAACsQxILAAAA65DEAgAAwDoksQAAALAOSSwAAACsQxILAAAA65DEAgAAwDoksQAAALAOSSwAAACsQxILAAAA65DEAgAAwDoksQAAALAOSSwAAACsQxILAAAA65DEAgAAwDoksQAAALAOSSwAAACsQxILAAAA65DEAgAAwDoksQAAALAOSSwAAACsQxILAAAA65DEAgAAwDoksQAAALBO/XgHEEvl5eXatm2bmjZtKo/HE+9wAKDGvF6vDhw4oNatW6tePcYlANQddSqJ3bZtm7Kzs+MdBgBE3JYtW9SmTZt4hwEAMVOnktimTZtK+ukv+7S0tDhHAwA1V1xcrOzsbN/fbwBQV9SpJLaihCAtLY0kFkBCoUQKQF1DARUAAACsQxILAAAA65DEAgAAwDoksQAAALAOSSwAAACsQxILAAAA65DEAgAAwDoksQAAALAOSSwAAACsQxILAAAA65DEAgAAwDr14x0AAHvkjJnr2y545PI4RgIAqOsYiQUAAIB1SGIBAABgHZJYAAAAWIckFgAAANYhiQUAAIB1SGIBAABgHZJYAAAAWIckFgAAANYhiQUAAIB1SGIBAABgHZJYAAAAWIckFgAAANYhiQUAAIB16sc7AAC1R86Yub7tgkcuj2MkAACExkgsAAAArEMSCwAAAOuQxAIAAMA6JLEAAACwDg92AQiKh7wAALUZI7EAAACwDkksAAAArEMSCwAAAOuQxAIAAMA6PNgF1HHmA1wAANiCJBZAjdHJAAAQa5QTAAAAwDoksQAAALAOSSwAAACsQ00sUAfxMBcAwHaMxAIAAMA6JLEAAACwDkksAAAArEMSCwAAAOuQxAIAAMA6dCcAUC10OAAAxBMjsQAAALAOSSwAAACsQxILAAAA65DEAgAAwDoksQAAALAOSSwAAACsQxILAAAA65DEAgAAwDosdgAkIHMhgoJHLj/uNQAAbEcSCyQIklQAQF1COQEAAACsQxILAAAA65DEAgAAwDoksQAAALAOSSwAAACsQxILAAAA65DEAgAAwDoksQAAALAOSSwAAACsQxILAAAA65DEAgAAwDoksQAAALBO/XgHAKD2yxkzN94hAADgh5FYAAAAWIeRWMBi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MxI7ceJE9ejRQ02bNlVWVpYGDRqkdevWxTssAAAAxIE1SezixYt122236bPPPtOCBQt07NgxXXLJJTp06FC8Q0OM5YyZyygaAAB1nDXlBB988IHf19OnT1dWVpaWL1+uCy64IE5RAagL6IQBALWPNUlsoKKiIklSRkZGnCOpmyr+p+72P/TK/qcfzkgqo62ojcL5uazsZ55EGABqzsoktry8XHfeead69eqljh07uu5XUlKikpIS39f79u2TJP3www9KS0uLepyJrLR4t6Sf7mWo9932Md8HEk1lP/NuvzfVsX//fknS3r17I3ZOAIgnr9erAwcOqHXr1qpXz73y1eP1er0xjCsibr31Vs2fP19Lly5VmzZtXPd74IEHNGHChBhGBgAAgEjYsmVLyDzPuiR21KhRmj17tpYsWaL27duH3DfYSGxOTo56a4Dqq0G0QwWAqPtRh/RffaQtW7YwwwQgIRQXFys7O1v79+9Xenq6637WlBN4vV7dfvvtmjVrlhYtWlRpAitJKSkpSklJOe71+mqg+h6SWAD2a+BNliSlpaWRxAJIKB6PJ+T71iSxt912m15//XXNnj1bTZs21Y4dOyRJ6enpatSoUZyjAwAAQCxZ0yd28uTJKioqUl5enlq1auX7M2PGjHiHBgAAgBizZiTWstJdAAAARJE1SSxiq36rlr7t0u074hgJAADA8awpJwAAAAAqkMQCAADAOpQTIChKCOouSklqjnsIANHHSCwAAACsQxILAAAA61BOABiYBq67nzuSuIcAEH2MxAIAAMA6JLEAAACwDuUEiJt4Tt27Xbu2TANT1gAAQGiMxAIAAMA6JLEAAACwDuUEiJuaTJOb0+3VOVdtn6KPVnyB9y2W1wYAIJIYiQUAAIB1SGIBAABgHcoJYKVQU9516cn+qn7Wqt6PUOUHNTlXon9fAADRx0gsACSAjuM/jHcIABBTJLEAAACwDuUESDjhTFW7TZNX59hIdVmoznmiPS0fybKNSMZKaQIAgJFYAEgAqyb0j3cIABBTJLEAAACwDuUEiJt4TgnX5HqxnmIPdc5Y3sOks073+7r0qzVRvV4olBAAAEhiASABdBz/oeqlpEqSCh65PM7RAED0UU4AAAAA65DEAgAAwDqUEyBuamNdY6gVqiqEG3ek6lXNY6vT3susZS2rQR2rp3BftY9F9VS3nVvO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", "text/plain": [ "Figure(PyObject
)" ] diff --git a/src/abstractmcmc.jl b/src/abstractmcmc.jl index 74f28385..430874c2 100644 --- a/src/abstractmcmc.jl +++ b/src/abstractmcmc.jl @@ -50,7 +50,6 @@ function AbstractMCMC.step( # Define metric if spl.metric == nothing d = LogDensityProblems.dimension(logdensityproblem) - #d = getdimensions(logdensitymodel) metric = DiagEuclideanMetric(d) else metric = spl.metric @@ -59,32 +58,42 @@ function AbstractMCMC.step( # Construct the hamiltonian using the initial metric hamiltonian = Hamiltonian(metric, logdensitymodel) - # Find good eps if not provided one - # Before it was spl.alg.ϵ to allow prior sampling - if iszero(spl.ϵ) - # Extract parameters. - theta = vi[spl] - ϵ = find_good_stepsize(rng, hamiltonian, theta) - println(string("Found initial step size ", ϵ)) + # Define integration algorithm + if spl.integrator == nothing + # Find good eps if not provided one + if iszero(spl.alg.ϵ) + # Extract parameters. + theta = vi[spl] + ϵ = find_good_stepsize(rng, hamiltonian, theta) + println(string("Found initial step size ", ϵ)) + else + ϵ = spl.alg.ϵ + end + integrator = Leapfrog(ϵ) else - ϵ = spl.ϵ + integrator = spl.integrator end - integrator = spl.integrator(ϵ) - kernel = spl.kernel(integrator) - - if typeof(spl) <: AdvancedHMC.AdaptiveHamiltonian - adaptor = spl.adaptor(metric, integrator) - n_adapts = spl.n_adapts + # Make kernel + kernel = make_kernel(spl.alg, integrator) + + # Make adaptor + if spl.adaptor == nothing + if typeof(spl.alg) <: AdvancedHMC.AdaptiveHamiltonian + adaptor = StanHMCAdaptor(MassMatrixAdaptor(metric), + StepSizeAdaptor(spl.alg.TAP, integrator)) + n_adapts = spl.alg.n_adapts + else + adaptor = NoAdaptation() + n_adapts = 0 + end else adaptor = spl.adaptor - n_adapts = 0 - end - - spl = HMCSampler(kernel, metric, adaptor) + n_adapts = kwargs[:n_adapts] + end - if init_params === nothing - init_params = randn(rng, size(metric, 1)) + if init_params == nothing + init_params = vi[DynamicPPL.SampleFromPrior()] end # Get an initial sample. @@ -93,7 +102,6 @@ function AbstractMCMC.step( # Compute next transition and state. state = HMCState(0, t, h.metric, kernel, adaptor, hamiltonian) # Take actual first step. - println(typeof(hamiltonian)<:Hamiltonian) return AbstractMCMC.step( rng, model, @@ -111,6 +119,10 @@ function AbstractMCMC.step( nadapts::Int = 0, kwargs..., ) + + # Get step size + @debug "current ϵ" getstepsize(spl, state) + # Compute transition. i = state.i + 1 t_old = state.transition @@ -119,9 +131,6 @@ function AbstractMCMC.step( metric = state.metric h = state.hamiltonian - # Reconstruct hamiltonian. - #h = Hamiltonian(metric, logdensitymodel) - # Make new transition. t = transition(rng, h, κ, t_old.z) @@ -137,17 +146,6 @@ function AbstractMCMC.step( return Transition(t.z, tstat), newstate end -######### -# Utils # -######### - -getmodel(f::DynamicPPL.LogDensityFunction) = f.model -getmodel(f::AbstractMCMC.LogDensityModel) = getmodel(f.logdensity) -getmodel(f::LogDensityProblemsAD.ADGradientWrapper) = getmodel(parent(f)) -function getdimensions(f::AbstractMCMC.LogDensityModel) - return LogDensityProblems.dimension(f.logdensity) -end - ################ ### Callback ### ################ diff --git a/src/constructors.jl b/src/constructors.jl index bab615b7..f5005cc1 100644 --- a/src/constructors.jl +++ b/src/constructors.jl @@ -1,5 +1,6 @@ -abstract type StaticHamiltonian <: AbstractMCMC.AbstractSampler end -abstract type AdaptiveHamiltonian <: AbstractMCMC.AbstractSampler end +abstract type SamplingAlgorithm end +abstract type StaticHamiltonian <: SamplingAlgorithm end +abstract type AdaptiveHamiltonian <: SamplingAlgorithm end """ HMCSampler @@ -18,7 +19,10 @@ and `adaptor` after sampling. To access the updated fields use the resulting [`HMCState`](@ref). """ -struct HMCSampler{K,M,A} <: AbstractMCMC.AbstractSampler +struct HMCSampler{I,K,M,A} <: AbstractMCMC.AbstractSampler + alg::SamplingAlgorithm + "[`integrator`](@ref)." + integrator::I "[`AbstractMCMCKernel`](@ref)." kernel::K "[`AbstractMetric`](@ref)." @@ -26,16 +30,19 @@ struct HMCSampler{K,M,A} <: AbstractMCMC.AbstractSampler "[`AbstractAdaptor`](@ref)." adaptor::A end -HMCSampler(kernel, metric) = HMCSampler(kernel, metric, Adaptation.NoAdaptation()) +# Basic use +HMCSampler(algorithm) = HMCSampler(algorithm, nothing, nothing, nothing, nothing) +# Expert use +HMCSampler(integrator, kernel, metric, adaptor) = HMCSampler(Custom_alg, integrator, kernel, metric, adaptor) + +########## +# Custom # +########## +struct Custom_alg<:SamplingAlgorithm end ######## # NUTS # ######## - -function NUTS_kernel(integrator) - return HMCKernel(Trajectory{MultinomialTS}(integrator, GeneralisedNoUTurn())) -end - """ NUTS(n_adapts::Int, δ::Float64; max_depth::Int=10, Δ_max::Float64=1000.0, init_ϵ::Float64=0.0) @@ -57,45 +64,26 @@ Arguments: - `init_ϵ::Float64` : Initial step size; 0 means automatically searching using a heuristic procedure. """ -struct AHMC_NUTS <: AdaptiveHamiltonian +struct NUTS_alg <: AdaptiveHamiltonian n_adapts::Int # number of samples with adaption for ϵ TAP::Float64 # target accept rate max_depth::Int # maximum tree depth Δ_max::Float64 # maximum error ϵ::Float64 # (initial) step size - metric - integrator - kernel - adaptor end function NUTS( n_adapts::Int, - TAP::Float64; # Target Acceptance Probability + TAP::Float64; max_depth::Int=10, Δ_max::Float64=1000.0, - init_ϵ::Float64=0.0, - metric=nothing, - integrator=Leapfrog) - function adaptor(metric, integrator) - return StanHMCAdaptor(MassMatrixAdaptor(metric), - StepSizeAdaptor(TAP, integrator)) - end - AHMC_NUTS(n_adapts, TAP, max_depth, Δ_max, init_ϵ, metric, integrator, NUTS_kernel, adaptor) + ϵ::Float64=0.0) + return HMCSampler(NUTS_alg(n_adapts, TAP, max_depth, Δ_max, ϵ)) end -export AHMC_NUTS ####### # HMC # ####### - -function HMC_kernel(n_leapfrog) - function kernel(integrator) - return HMCKernel(Trajectory{EndPointTS}(integrator, FixedNSteps(n_leapfrog))) - end - return kernel -end - """ HMC(ϵ::Float64, n_leapfrog::Int) @@ -124,37 +112,21 @@ sample(gdemo([1.5, 2]), HMC(0.1, 10), 1000) sample(gdemo([1.5, 2]), HMC(0.01, 10), 1000) ``` """ -struct AHMC_HMC <: StaticHamiltonian +struct HMC_alg <: StaticHamiltonian ϵ::Float64 # leapfrog step size n_leapfrog::Int # leapfrog step number - metric - integrator - kernel - adaptor end function HMC( ϵ::Float64, - n_leapfrog::Int; - metric=nothing, - integrator=Leapfrog) - kernel = HMC_kernel(n_leapfrog) - adaptor = Adaptation.NoAdaptation() - return AHMC_HMC(ϵ, n_leapfrog, metric, integrator, kernel, adaptor) + n_leapfrog::Int) + + return HMCSampler(HMC_alg(ϵ, n_leapfrog)) end -export AHMC_HMC ######### # HMCDA # ######### - -function HMCDA_kernel(λ) - function kernel(integrator) - return HMCKernel(Trajectory{EndPointTS}(integrator, FixedIntegrationTime(λ))) - end - return kernel -end - """ HMCDA(n_adapts::Int, δ::Float64, λ::Float64; ϵ::Float64=0.0) @@ -179,30 +151,42 @@ For more information, please view the following paper ([arXiv link](https://arxi setting path lengths in Hamiltonian Monte Carlo." Journal of Machine Learning Research 15, no. 1 (2014): 1593-1623. """ -struct AHMC_HMCDA <: AdaptiveHamiltonian +struct HMCDA_alg <: AdaptiveHamiltonian n_adapts :: Int # number of samples with adaption for ϵ TAP :: Float64 # target accept rate λ :: Float64 # target leapfrog length ϵ :: Float64 # (initial) step size - metric - integrator - kernel - adaptor end function HMCDA( n_adapts::Int, TAP::Float64, λ::Float64; - ϵ::Float64=0.0, - metric=nothing, - integrator=Leapfrog) - kernel = HMCDA_kernel(λ) - function adaptor(metric, integrator) - return StanHMCAdaptor(MassMatrixAdaptor(metric), - StepSizeAdaptor(TAP, integrator)) - end - return AHMC_HMCDA(n_adapts, TAP, λ, ϵ, metric, integrator, kernel, adaptor) + ϵ::Float64=0.0) + return HMCSampler(HMCDA_alg(n_adapts, TAP, λ, ϵ)) end -export AHMC_HMCDA \ No newline at end of file +############ +# Adaptors # +############ + +function makea_daptor(alg::AdaptiveHamiltonian, metric, integrator) + return StanHMCAdaptor(MassMatrixAdaptor(metric, integrator), + StepSizeAdaptor(alg.TAP, integrator)) + end + +########### +# Kernels # +########### + +function make_kernel(alg::NUTS_alg, integrator) + return HMCKernel(Trajectory{MultinomialTS}(integrator, GeneralisedNoUTurn())) +end + +function make_kernel(alg::HMC_alg, integrator) + return HMCKernel(Trajectory{EndPointTS}(integrator, FixedNSteps(alg.n_leapfrog))) +end + +function make_kernel(alg::HMCDA_alg, integrator) + return HMCKernel(Trajectory{EndPointTS}(integrator, FixedIntegrationTime(alg.λ))) +end \ No newline at end of file From 39941fd46bd8fd5942e661afa8832791274d18e4 Mon Sep 17 00:00:00 2001 From: jaimerz Date: Mon, 12 Jun 2023 13:56:52 +0100 Subject: [PATCH 21/27] linking --- Lab.ipynb | 329 ++++++++++++++++++++++++-------------------- src/abstractmcmc.jl | 38 +++-- 2 files changed, 203 insertions(+), 164 deletions(-) diff --git a/Lab.ipynb b/Lab.ipynb index e4d30c35..2d7849ef 100644 --- a/Lab.ipynb +++ b/Lab.ipynb @@ -11,10 +11,18 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "id": "896323ee", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[32m\u001b[1m Activating\u001b[22m\u001b[39m project at `~/Cambdrige`\n" + ] + } + ], "source": [ "using Pkg\n", "Pkg.activate(\"..\")" @@ -49,7 +57,8 @@ "#What we are tweaking\n", "using Revise\n", "using AdvancedHMC\n", - "using Turing" + "using Turing\n", + "using DynamicPPL" ] }, { @@ -82,7 +91,7 @@ "# Just a simple Neal Funnel\n", "d = 21\n", "@model function funnel()\n", - " θ ~ Normal(0, 3)\n", + " θ ~ Uniform(-1, 1) #Normal(0, 3)\n", " z ~ MvNormal(zeros(d-1), exp(θ)*I)\n", " x ~ MvNormal(z, I)\n", "end" @@ -97,7 +106,7 @@ { "data": { "text/plain": [ - "DynamicPPL.Model{typeof(funnel), (), (), (), Tuple{}, Tuple{}, DynamicPPL.ConditionContext{NamedTuple{(:x,), Tuple{Vector{Float64}}}, DynamicPPL.DefaultContext}}(funnel, NamedTuple(), NamedTuple(), ConditionContext((x = [1.2142074831535152, 1.23371919965455, -0.8480146960461767, 0.1600994648479841, 1.9180385508479283, -3.401523464506408, -0.0957684186471088, 0.6734622629464286, -3.2749467689509633, -1.6760091758453226, 1.9567202902549736, 0.1136169088905351, 0.11117896909388916, -0.5373922347882832, -0.12436857036298687, -1.2901071061088532, 1.702584517514787, -0.44460133117954226, 1.0818722439221686, 1.2208011493237483],), DynamicPPL.DefaultContext()))" + "Model{typeof(funnel), (), (), (), Tuple{}, Tuple{}, ConditionContext{NamedTuple{(:x,), Tuple{Vector{Float64}}}, DefaultContext}}(funnel, NamedTuple(), NamedTuple(), ConditionContext((x = [1.2142074831535152, 1.23371919965455, -0.8480146960461767, 0.1600994648479841, 1.9180385508479283, -3.401523464506408, -0.0957684186471088, 0.6734622629464286, -3.2749467689509633, -1.6760091758453226, 1.9567202902549736, 0.1136169088905351, 0.11117896909388916, -0.5373922347882832, -0.12436857036298687, -1.2901071061088532, 1.702584517514787, -0.44460133117954226, 1.0818722439221686, 1.2208011493237483],), DefaultContext()))" ] }, "execution_count": 4, @@ -194,7 +203,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 8, "id": "b0193663", "metadata": {}, "outputs": [ @@ -202,6 +211,10 @@ "name": "stderr", "output_type": "stream", "text": [ + "\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39m[DynamicPPL] attempt to link a linked vi\n", + "\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ DynamicPPL ~/.julia/packages/DynamicPPL/jjVG9/src/varinfo.jl:791\u001b[39m\n", + "\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39m[DynamicPPL] attempt to link a linked vi\n", + "\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ DynamicPPL ~/.julia/packages/DynamicPPL/jjVG9/src/varinfo.jl:791\u001b[39m\n", "\u001b[32mSampling: 100%|█████████████████████████████████████████| Time: 0:00:02\u001b[39m\n" ] }, @@ -217,59 +230,60 @@ "internals = lp, n_steps, is_accept, acceptance_rate, log_density, hamiltonian_energy, hamiltonian_energy_error, max_hamiltonian_energy_error, tree_depth, numerical_error, step_size, nom_step_size, is_adapt\n", "\n", "Summary Statistics\n", - " \u001b[1m parameters \u001b[0m \u001b[1m mean \u001b[0m \u001b[1m std \u001b[0m \u001b[1m mcse \u001b[0m \u001b[1m ess_bulk \u001b[0m \u001b[1m rhat \u001b[0m \u001b[1m ess_per_sec\u001b[0m ⋯\n", - " \u001b[90m Symbol \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Real \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Missing\u001b[0m ⋯\n", + " \u001b[1m parameters \u001b[0m \u001b[1m mean \u001b[0m \u001b[1m std \u001b[0m \u001b[1m mcse \u001b[0m \u001b[1m ess_bulk \u001b[0m \u001b[1m rhat \u001b[0m \u001b[1m ess_per_se\u001b[0m ⋯\n", + " \u001b[90m Symbol \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Real \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Missin\u001b[0m ⋯\n", "\n", - " param_1 -0.0258 0.8033 0.0415 657.1151 1.0003 missing ⋯\n", - " param_2 0.6087 0.7479 0.0103 5429.6179 1.0007 missing ⋯\n", - " param_3 0.6272 0.7310 0.0116 4004.8332 1.0006 missing ⋯\n", - " param_4 -0.4405 0.7362 0.0095 6115.2473 0.9998 missing ⋯\n", - " param_5 0.0763 0.7130 0.0076 8880.6431 1.0001 missing ⋯\n", - " param_6 0.9663 0.7823 0.0161 2293.4661 1.0008 missing ⋯\n", - " param_7 -1.7041 0.9094 0.0254 1180.7796 1.0002 missing ⋯\n", - " param_8 -0.0535 0.6781 0.0071 9184.4234 1.0003 missing ⋯\n", - " param_9 0.3371 0.7144 0.0079 8376.5056 1.0028 missing ⋯\n", - " param_10 -1.6400 0.8972 0.0248 1219.6314 1.0014 missing ⋯\n", - " param_11 -0.8355 0.7792 0.0138 3173.6435 0.9999 missing ⋯\n", - " param_12 0.9743 0.7949 0.0161 2460.7900 1.0003 missing ⋯\n", - " param_13 0.0657 0.7135 0.0074 9248.4906 0.9999 missing ⋯\n", - " param_14 0.0562 0.7009 0.0077 8360.4727 0.9999 missing ⋯\n", - " param_15 -0.2658 0.7304 0.0076 8803.2204 1.0027 missing ⋯\n", - " param_16 -0.0616 0.6954 0.0071 9749.6279 1.0013 missing ⋯\n", - " param_17 -0.6454 0.7203 0.0102 4972.0347 1.0002 missing ⋯\n", - " param_18 0.8517 0.7576 0.0134 3178.1742 0.9999 missing ⋯\n", - " param_19 -0.2281 0.7108 0.0081 7625.7069 1.0011 missing ⋯\n", - " param_20 0.5463 0.7184 0.0104 4930.7785 0.9999 missing ⋯\n", - " param_21 0.6342 0.7547 0.0114 4398.4838 1.0003 missing ⋯\n", + " param_1 0.1027 0.4682 0.0125 1316.8261 1.0006 missin ⋯\n", + " param_2 0.6380 0.7443 0.0088 7305.3358 1.0007 missin ⋯\n", + " param_3 0.6571 0.7388 0.0087 7222.3134 0.9999 missin ⋯\n", + " param_4 -0.4590 0.7424 0.0081 8600.6777 0.9998 missin ⋯\n", + " param_5 0.0827 0.7254 0.0078 8658.7613 1.0009 missin ⋯\n", + " param_6 1.0204 0.7597 0.0109 4919.8215 0.9999 missin ⋯\n", + " param_7 -1.7932 0.8261 0.0145 3273.3659 1.0001 missin ⋯\n", + " param_8 -0.0484 0.7195 0.0071 10192.8327 1.0002 missin ⋯\n", + " param_9 0.3575 0.7262 0.0076 9149.6800 1.0002 missin ⋯\n", + " param_10 -1.7292 0.8133 0.0135 3701.3245 0.9999 missin ⋯\n", + " param_11 -0.8752 0.7379 0.0093 6376.3368 1.0004 missin ⋯\n", + " param_12 1.0242 0.7599 0.0103 5479.1056 1.0000 missin ⋯\n", + " param_13 0.0675 0.7458 0.0079 8945.0993 1.0009 missin ⋯\n", + " param_14 0.0668 0.7140 0.0072 9814.6348 1.0006 missin ⋯\n", + " param_15 -0.2908 0.7255 0.0076 9112.4223 0.9998 missin ⋯\n", + " param_16 -0.0508 0.7068 0.0070 10008.6090 1.0001 missin ⋯\n", + " param_17 -0.6693 0.7322 0.0087 7073.7412 0.9999 missin ⋯\n", + " param_18 0.8904 0.7460 0.0093 6393.5556 1.0004 missin ⋯\n", + " param_19 -0.2438 0.7394 0.0079 8715.5189 1.0000 missin ⋯\n", + " param_20 0.5602 0.7217 0.0082 7751.5157 1.0000 missin ⋯\n", + " param_21 0.6376 0.7380 0.0084 7807.3097 1.0011 missin ⋯\n", + "\u001b[36m 1 column omitted\u001b[0m\n", "\n", "Quantiles\n", " \u001b[1m parameters \u001b[0m \u001b[1m 2.5% \u001b[0m \u001b[1m 25.0% \u001b[0m \u001b[1m 50.0% \u001b[0m \u001b[1m 75.0% \u001b[0m \u001b[1m 97.5% \u001b[0m\n", " \u001b[90m Symbol \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m\n", "\n", - " param_1 -2.0694 -0.4077 0.0779 0.4982 1.2183\n", - " param_2 -0.7801 0.0944 0.5730 1.1035 2.1566\n", - " param_3 -0.6921 0.1235 0.6009 1.0899 2.1552\n", - " param_4 -1.9420 -0.9160 -0.4060 0.0552 0.9021\n", - " param_5 -1.3493 -0.3819 0.0734 0.5310 1.5398\n", - " param_6 -0.4215 0.4108 0.9229 1.4837 2.5077\n", - " param_7 -3.5406 -2.3046 -1.6871 -1.0603 -0.0649\n", - " param_8 -1.3992 -0.4830 -0.0516 0.3786 1.2873\n", - " param_9 -1.0345 -0.1447 0.3104 0.8012 1.8095\n", - " param_10 -3.4824 -2.2542 -1.6144 -0.9914 -0.0141\n", - " param_11 -2.4332 -1.3324 -0.7965 -0.2812 0.5388\n", - " param_12 -0.4331 0.4082 0.9253 1.4948 2.6025\n", - " param_13 -1.3153 -0.3997 0.0671 0.5227 1.5110\n", - " param_14 -1.2853 -0.4004 0.0436 0.5068 1.4651\n", - " param_15 -1.7061 -0.7233 -0.2438 0.1910 1.1031\n", - " param_16 -1.4642 -0.5123 -0.0594 0.3898 1.2991\n", - " param_17 -2.1153 -1.1222 -0.6061 -0.1558 0.6821\n", - " param_18 -0.4855 0.3251 0.7913 1.3283 2.5064\n", - " param_19 -1.6750 -0.6720 -0.2083 0.2235 1.1625\n", - " param_20 -0.8049 0.0614 0.5221 1.0091 2.0145\n", - " param_21 -0.7423 0.1116 0.5931 1.1037 2.2447\n" + " param_1 -0.8352 -0.2336 0.1326 0.4584 0.9071\n", + " param_2 -0.7920 0.1390 0.6151 1.1211 2.1535\n", + " param_3 -0.7435 0.1493 0.6307 1.1539 2.1429\n", + " param_4 -1.9727 -0.9420 -0.4536 0.0433 0.9569\n", + " param_5 -1.3355 -0.4084 0.0832 0.5671 1.4991\n", + " param_6 -0.3763 0.4823 1.0017 1.5315 2.5668\n", + " param_7 -3.4720 -2.3401 -1.7762 -1.2272 -0.2403\n", + " param_8 -1.4292 -0.5439 -0.0520 0.4395 1.3675\n", + " param_9 -1.0777 -0.1229 0.3547 0.8448 1.7903\n", + " param_10 -3.4370 -2.2589 -1.6796 -1.1744 -0.2281\n", + " param_11 -2.4021 -1.3726 -0.8447 -0.3686 0.5171\n", + " param_12 -0.4100 0.5065 0.9956 1.5327 2.5705\n", + " param_13 -1.4140 -0.4160 0.0706 0.5537 1.5270\n", + " param_14 -1.3651 -0.4031 0.0653 0.5342 1.4844\n", + " param_15 -1.7440 -0.7812 -0.2779 0.1959 1.0957\n", + " param_16 -1.3863 -0.5423 -0.0520 0.4442 1.3074\n", + " param_17 -2.1487 -1.1499 -0.6642 -0.1710 0.6959\n", + " param_18 -0.5586 0.3798 0.8693 1.3917 2.4085\n", + " param_19 -1.7016 -0.7273 -0.2266 0.2350 1.2082\n", + " param_20 -0.8251 0.0794 0.5603 1.0190 1.9974\n", + " param_21 -0.7633 0.1377 0.6239 1.1340 2.1128\n" ] }, - "execution_count": 14, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, @@ -288,7 +302,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 9, "id": "f610b909", "metadata": {}, "outputs": [ @@ -296,7 +310,11 @@ "name": "stderr", "output_type": "stream", "text": [ - "\u001b[32mSampling: 100%|█████████████████████████████████████████| Time: 0:00:01\u001b[39m\n" + "\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39m[DynamicPPL] attempt to link a linked vi\n", + "\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ DynamicPPL ~/.julia/packages/DynamicPPL/jjVG9/src/varinfo.jl:791\u001b[39m\n", + "\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39m[DynamicPPL] attempt to link a linked vi\n", + "\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ DynamicPPL ~/.julia/packages/DynamicPPL/jjVG9/src/varinfo.jl:791\u001b[39m\n", + "\u001b[32mSampling: 100%|█████████████████████████████████████████| Time: 0:00:02\u001b[39m\n" ] }, { @@ -314,57 +332,57 @@ " \u001b[1m parameters \u001b[0m \u001b[1m mean \u001b[0m \u001b[1m std \u001b[0m \u001b[1m mcse \u001b[0m \u001b[1m ess_bulk \u001b[0m \u001b[1m rhat \u001b[0m \u001b[1m ess_per_se\u001b[0m ⋯\n", " \u001b[90m Symbol \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Real \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Missin\u001b[0m ⋯\n", "\n", - " param_1 -0.0463 0.8180 0.0463 468.1972 1.0006 missin ⋯\n", - " param_2 0.6108 0.7236 0.0087 7175.2449 1.0042 missin ⋯\n", - " param_3 0.6205 0.7217 0.0095 6442.8270 1.0000 missin ⋯\n", - " param_4 -0.4247 0.7120 0.0067 11943.9393 0.9999 missin ⋯\n", - " param_5 0.0810 0.7312 0.0054 18494.8500 1.0000 missin ⋯\n", - " param_6 0.9638 0.7802 0.0133 3703.3411 1.0002 missin ⋯\n", - " param_7 -1.7083 0.9026 0.0248 1226.1609 1.0005 missin ⋯\n", - " param_8 -0.0476 0.7335 0.0054 18494.8500 1.0028 missin ⋯\n", - " param_9 0.3386 0.7342 0.0065 12982.5234 1.0000 missin ⋯\n", - " param_10 -1.6400 0.8862 0.0230 1346.2346 1.0004 missin ⋯\n", - " param_11 -0.8385 0.7663 0.0130 3587.0949 1.0009 missin ⋯\n", - " param_12 0.9789 0.7697 0.0142 3002.6869 1.0008 missin ⋯\n", - " param_13 0.0600 0.7124 0.0052 18494.8500 1.0010 missin ⋯\n", - " param_14 0.0514 0.7294 0.0054 18494.8500 1.0030 missin ⋯\n", - " param_15 -0.2712 0.7010 0.0052 18494.8500 1.0009 missin ⋯\n", - " param_16 -0.0523 0.7103 0.0052 18494.8500 1.0009 missin ⋯\n", - " param_17 -0.6506 0.7397 0.0093 6361.6771 1.0005 missin ⋯\n", - " param_18 0.8572 0.7917 0.0121 4525.3361 1.0002 missin ⋯\n", - " param_19 -0.2222 0.6895 0.0051 18494.8500 1.0000 missin ⋯\n", - " param_20 0.5394 0.7501 0.0079 9255.5875 0.9998 missin ⋯\n", - " param_21 0.6058 0.7143 0.0097 5657.4221 0.9999 missin ⋯\n", + " param_1 0.1116 0.4844 0.0126 1412.2510 1.0030 missin ⋯\n", + " param_2 0.6409 0.7630 0.0056 18494.8500 1.0003 missin ⋯\n", + " param_3 0.6563 0.7341 0.0054 18494.8500 1.0023 missin ⋯\n", + " param_4 -0.4489 0.7738 0.0057 18494.8500 1.0013 missin ⋯\n", + " param_5 0.0916 0.7387 0.0054 18494.8500 1.0008 missin ⋯\n", + " param_6 1.0122 0.7602 0.0068 13709.0981 1.0030 missin ⋯\n", + " param_7 -1.7991 0.8076 0.0124 4323.3788 1.0009 missin ⋯\n", + " param_8 -0.0475 0.7271 0.0053 18494.8500 1.0059 missin ⋯\n", + " param_9 0.3593 0.7176 0.0053 18494.8500 0.9999 missin ⋯\n", + " param_10 -1.7389 0.8314 0.0122 4786.2571 1.0019 missin ⋯\n", + " param_11 -0.8884 0.7405 0.0064 17067.3833 1.0013 missin ⋯\n", + " param_12 1.0324 0.7586 0.0068 12775.6485 1.0027 missin ⋯\n", + " param_13 0.0612 0.7115 0.0052 18494.8500 1.0026 missin ⋯\n", + " param_14 0.0576 0.7049 0.0052 18494.8500 1.0025 missin ⋯\n", + " param_15 -0.2848 0.7059 0.0052 18494.8500 0.9999 missin ⋯\n", + " param_16 -0.0663 0.7493 0.0055 18494.8500 1.0001 missin ⋯\n", + " param_17 -0.6799 0.7329 0.0054 18494.8500 1.0002 missin ⋯\n", + " param_18 0.9009 0.7595 0.0060 16083.8415 1.0022 missin ⋯\n", + " param_19 -0.2384 0.7235 0.0053 18494.8500 0.9999 missin ⋯\n", + " param_20 0.5663 0.7420 0.0055 18494.8500 1.0001 missin ⋯\n", + " param_21 0.6437 0.7433 0.0055 18494.8500 1.0003 missin ⋯\n", "\u001b[36m 1 column omitted\u001b[0m\n", "\n", "Quantiles\n", " \u001b[1m parameters \u001b[0m \u001b[1m 2.5% \u001b[0m \u001b[1m 25.0% \u001b[0m \u001b[1m 50.0% \u001b[0m \u001b[1m 75.0% \u001b[0m \u001b[1m 97.5% \u001b[0m\n", " \u001b[90m Symbol \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m\n", "\n", - " param_1 -2.0638 -0.4245 0.0582 0.4586 1.2188\n", - " param_2 -0.7053 0.1024 0.5657 1.0879 2.1254\n", - " param_3 -0.7106 0.1197 0.5824 1.0739 2.1309\n", - " param_4 -1.8790 -0.8923 -0.3904 0.0623 0.9138\n", - " param_5 -1.3906 -0.3743 0.0719 0.5386 1.5758\n", - " param_6 -0.4354 0.4203 0.9115 1.4718 2.6076\n", - " param_7 -3.5754 -2.3127 -1.6636 -1.0551 -0.0926\n", - " param_8 -1.4997 -0.5103 -0.0516 0.4210 1.4291\n", - " param_9 -1.1036 -0.1416 0.3150 0.8038 1.8584\n", - " param_10 -3.4769 -2.2119 -1.6066 -0.9897 -0.0847\n", - " param_11 -2.4458 -1.3452 -0.7909 -0.2836 0.4952\n", - " param_12 -0.3647 0.4304 0.9413 1.4758 2.6176\n", - " param_13 -1.3725 -0.4086 0.0449 0.5218 1.4888\n", - " param_14 -1.4177 -0.3889 0.0376 0.5080 1.5075\n", - " param_15 -1.7254 -0.7266 -0.2487 0.2000 1.0752\n", - " param_16 -1.4716 -0.5135 -0.0496 0.4002 1.3594\n", - " param_17 -2.2054 -1.1065 -0.6179 -0.1577 0.7598\n", - " param_18 -0.5299 0.2746 0.8191 1.3644 2.4726\n", - " param_19 -1.6036 -0.6863 -0.1948 0.2404 1.0898\n", - " param_20 -0.8593 0.0260 0.5043 1.0246 2.1014\n", - " param_21 -0.7194 0.1144 0.5704 1.0771 2.0905\n" + " param_1 -0.8729 -0.2411 0.1414 0.4873 0.9276\n", + " param_2 -0.7746 0.1213 0.6172 1.1341 2.1519\n", + " param_3 -0.7742 0.1636 0.6370 1.1344 2.1403\n", + " param_4 -1.9930 -0.9673 -0.4454 0.0924 1.0236\n", + " param_5 -1.3644 -0.4021 0.0955 0.5800 1.5932\n", + " param_6 -0.4151 0.4951 0.9882 1.5015 2.5778\n", + " param_7 -3.4943 -2.3275 -1.7638 -1.2414 -0.2990\n", + " param_8 -1.4757 -0.5401 -0.0424 0.4405 1.3866\n", + " param_9 -1.0262 -0.1276 0.3563 0.8391 1.8048\n", + " param_10 -3.4816 -2.2922 -1.6942 -1.1709 -0.2376\n", + " param_11 -2.4214 -1.3706 -0.8625 -0.3788 0.5300\n", + " param_12 -0.4144 0.5254 1.0030 1.5337 2.5786\n", + " param_13 -1.3274 -0.4277 0.0578 0.5478 1.4726\n", + " param_14 -1.3147 -0.4071 0.0520 0.5357 1.4133\n", + " param_15 -1.7091 -0.7450 -0.2665 0.1876 1.0607\n", + " param_16 -1.5507 -0.5647 -0.0675 0.4274 1.4156\n", + " param_17 -2.1845 -1.1587 -0.6694 -0.1713 0.6950\n", + " param_18 -0.5178 0.3903 0.8748 1.4069 2.4258\n", + " param_19 -1.6924 -0.6976 -0.2310 0.2270 1.1589\n", + " param_20 -0.8190 0.0547 0.5392 1.0695 2.0687\n", + " param_21 -0.8290 0.1653 0.6314 1.1214 2.1541\n" ] }, - "execution_count": 10, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" }, @@ -383,7 +401,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 10, "id": "88df45a3", "metadata": {}, "outputs": [ @@ -391,6 +409,10 @@ "name": "stderr", "output_type": "stream", "text": [ + "\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39m[DynamicPPL] attempt to link a linked vi\n", + "\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ DynamicPPL ~/.julia/packages/DynamicPPL/jjVG9/src/varinfo.jl:791\u001b[39m\n", + "\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39m[DynamicPPL] attempt to link a linked vi\n", + "\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ DynamicPPL ~/.julia/packages/DynamicPPL/jjVG9/src/varinfo.jl:791\u001b[39m\n", "\u001b[32mSampling: 100%|█████████████████████████████████████████| Time: 0:00:01\u001b[39m\n" ] }, @@ -409,56 +431,56 @@ " \u001b[1m parameters \u001b[0m \u001b[1m mean \u001b[0m \u001b[1m std \u001b[0m \u001b[1m mcse \u001b[0m \u001b[1m ess_bulk \u001b[0m \u001b[1m rhat \u001b[0m \u001b[1m ess_per_sec\u001b[0m ⋯\n", " \u001b[90m Symbol \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Real \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Missing\u001b[0m ⋯\n", "\n", - " param_1 -0.0419 0.7838 0.0489 362.4873 1.0119 missing ⋯\n", - " param_2 0.5994 0.7154 0.0151 2320.5911 1.0015 missing ⋯\n", - " param_3 0.6255 0.7354 0.0162 2100.5498 1.0027 missing ⋯\n", - " param_4 -0.3973 0.7143 0.0145 2452.0597 1.0014 missing ⋯\n", - " param_5 0.0532 0.7082 0.0127 3113.8938 1.0012 missing ⋯\n", - " param_6 0.9553 0.7692 0.0212 1292.0336 1.0012 missing ⋯\n", - " param_7 -1.6923 0.9042 0.0356 618.5752 1.0034 missing ⋯\n", - " param_8 -0.0424 0.7092 0.0124 3303.5704 1.0030 missing ⋯\n", - " param_9 0.3181 0.7076 0.0127 3159.4996 1.0011 missing ⋯\n", - " param_10 -1.6240 0.8823 0.0373 534.4575 1.0084 missing ⋯\n", - " param_11 -0.8137 0.7632 0.0187 1677.3791 1.0028 missing ⋯\n", - " param_12 0.9721 0.7611 0.0235 1056.8329 1.0071 missing ⋯\n", - " param_13 0.0736 0.7000 0.0128 3026.5174 1.0007 missing ⋯\n", - " param_14 0.0495 0.7072 0.0123 3308.6202 1.0010 missing ⋯\n", - " param_15 -0.2711 0.7034 0.0124 3244.3712 1.0013 missing ⋯\n", - " param_16 -0.0649 0.6925 0.0123 3173.4247 1.0015 missing ⋯\n", - " param_17 -0.6459 0.7399 0.0168 1989.9083 1.0019 missing ⋯\n", - " param_18 0.8632 0.7590 0.0180 1815.7908 1.0012 missing ⋯\n", - " param_19 -0.2094 0.7075 0.0131 2963.2145 1.0002 missing ⋯\n", - " param_20 0.5451 0.7295 0.0161 2104.4508 1.0006 missing ⋯\n", - " param_21 0.6023 0.7333 0.0164 2026.7429 1.0004 missing ⋯\n", + " param_1 0.0979 0.4865 0.0229 427.6675 1.0077 missing ⋯\n", + " param_2 0.6547 0.7415 0.0160 2189.7809 1.0004 missing ⋯\n", + " param_3 0.6347 0.7416 0.0140 2846.6874 1.0009 missing ⋯\n", + " param_4 -0.4482 0.7324 0.0148 2459.9117 1.0002 missing ⋯\n", + " param_5 0.0916 0.7201 0.0128 3150.8292 1.0022 missing ⋯\n", + " param_6 0.9939 0.7645 0.0163 2285.0805 1.0002 missing ⋯\n", + " param_7 -1.7991 0.8208 0.0261 1001.8156 1.0031 missing ⋯\n", + " param_8 -0.0504 0.7234 0.0136 2815.2275 1.0008 missing ⋯\n", + " param_9 0.3700 0.7229 0.0132 3028.1210 0.9998 missing ⋯\n", + " param_10 -1.7251 0.8101 0.0261 966.5697 1.0029 missing ⋯\n", + " param_11 -0.8600 0.7541 0.0168 2021.1769 1.0020 missing ⋯\n", + " param_12 1.0075 0.7484 0.0167 2050.6918 1.0005 missing ⋯\n", + " param_13 0.0569 0.7187 0.0117 3750.8085 1.0008 missing ⋯\n", + " param_14 0.0608 0.7254 0.0134 2916.2452 1.0003 missing ⋯\n", + " param_15 -0.2655 0.7254 0.0126 3303.5375 1.0016 missing ⋯\n", + " param_16 -0.0366 0.7243 0.0128 3216.3677 1.0016 missing ⋯\n", + " param_17 -0.6590 0.7431 0.0154 2371.9178 1.0009 missing ⋯\n", + " param_18 0.8751 0.7536 0.0160 2242.7235 1.0004 missing ⋯\n", + " param_19 -0.2233 0.7202 0.0123 3419.9118 1.0002 missing ⋯\n", + " param_20 0.6038 0.7478 0.0142 2803.1610 1.0011 missing ⋯\n", + " param_21 0.6409 0.7377 0.0137 2922.8470 1.0005 missing ⋯\n", "\n", "Quantiles\n", " \u001b[1m parameters \u001b[0m \u001b[1m 2.5% \u001b[0m \u001b[1m 25.0% \u001b[0m \u001b[1m 50.0% \u001b[0m \u001b[1m 75.0% \u001b[0m \u001b[1m 97.5% \u001b[0m\n", " \u001b[90m Symbol \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m \u001b[90m Float64 \u001b[0m\n", "\n", - " param_1 -2.0193 -0.4083 0.0757 0.4666 1.1490\n", - " param_2 -0.7454 0.1106 0.5658 1.0500 2.0828\n", - " param_3 -0.7448 0.1103 0.5919 1.1169 2.1722\n", - " param_4 -1.8301 -0.8516 -0.3707 0.0729 0.9899\n", - " param_5 -1.3972 -0.4105 0.0606 0.5096 1.4227\n", - " param_6 -0.4220 0.4043 0.9208 1.4570 2.5242\n", - " param_7 -3.5423 -2.2827 -1.6551 -1.0394 -0.0550\n", - " param_8 -1.4732 -0.5102 -0.0442 0.4098 1.3934\n", - " param_9 -1.0155 -0.1525 0.2951 0.7751 1.7861\n", - " param_10 -3.4321 -2.2164 -1.6013 -0.9983 -0.0023\n", - " param_11 -2.4146 -1.3110 -0.7739 -0.2885 0.6080\n", - " param_12 -0.4277 0.4402 0.9364 1.4903 2.4975\n", - " param_13 -1.2915 -0.3947 0.0566 0.5046 1.5274\n", - " param_14 -1.3396 -0.4166 0.0458 0.5093 1.4684\n", - " param_15 -1.7041 -0.7257 -0.2497 0.1846 1.0587\n", - " param_16 -1.4646 -0.5189 -0.0560 0.3904 1.2931\n", - " param_17 -2.1935 -1.1360 -0.6047 -0.1322 0.7265\n", - " param_18 -0.4837 0.3174 0.8289 1.3559 2.4578\n", - " param_19 -1.6043 -0.6730 -0.1853 0.2557 1.1349\n", - " param_20 -0.8285 0.0513 0.5097 1.0190 2.0392\n", - " param_21 -0.7497 0.1093 0.5725 1.0709 2.1491\n" + " param_1 -0.8759 -0.2497 0.1436 0.4725 0.9130\n", + " param_2 -0.7777 0.1435 0.6347 1.1346 2.1667\n", + " param_3 -0.7896 0.1384 0.6153 1.1279 2.1692\n", + " param_4 -1.9185 -0.9338 -0.4423 0.0496 0.9832\n", + " param_5 -1.3330 -0.3826 0.0886 0.5713 1.4915\n", + " param_6 -0.4397 0.4663 0.9664 1.4970 2.5635\n", + " param_7 -3.4716 -2.3299 -1.7589 -1.2145 -0.2936\n", + " param_8 -1.4562 -0.5463 -0.0707 0.4393 1.3843\n", + " param_9 -1.0222 -0.1147 0.3627 0.8514 1.8522\n", + " param_10 -3.3582 -2.2815 -1.6821 -1.1519 -0.2374\n", + " param_11 -2.3854 -1.3465 -0.8462 -0.3597 0.6050\n", + " param_12 -0.4173 0.4949 0.9801 1.4995 2.5221\n", + " param_13 -1.3876 -0.4168 0.0545 0.5379 1.4619\n", + " param_14 -1.3516 -0.4284 0.0526 0.5433 1.4733\n", + " param_15 -1.7321 -0.7393 -0.2599 0.2137 1.1228\n", + " param_16 -1.4597 -0.5141 -0.0427 0.4371 1.4198\n", + " param_17 -2.1839 -1.1502 -0.6285 -0.1511 0.7155\n", + " param_18 -0.6034 0.3688 0.8616 1.3863 2.3647\n", + " param_19 -1.6165 -0.7083 -0.2238 0.2560 1.1999\n", + " param_20 -0.7926 0.0770 0.5904 1.0971 2.1209\n", + " param_21 -0.7719 0.1303 0.6252 1.1271 2.1344\n" ] }, - "execution_count": 21, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" }, @@ -486,7 +508,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 11, "id": "9c61e0ab", "metadata": {}, "outputs": [], @@ -497,7 +519,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 12, "id": "0b0923f1", "metadata": {}, "outputs": [], @@ -508,7 +530,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 13, "id": "fec8ace5", "metadata": {}, "outputs": [], @@ -519,13 +541,13 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 14, "id": "8869229b", "metadata": {}, "outputs": [ { "data": { - "image/png": "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HvfPf/4zICkgKdCxY8fAmDFjAk8//XRgyZIlgbKyshrPbWibNm0KpKWlBSQFHnzwwX0eX/kZjB49uk739ftZBgKBwAsvvBD8PEtLS31df968eQFJge7duwcCgb3vMyUlJRAXFxdYunRp8Lj169cHr13VeeedF5AUOO200wIFBQWu1yp/xj179qz2M50xY0Zg9+7drn0VFRWBRx55JCApcMghhwQqKipcr1d+HhMnTvT1/nJyclz/NkwFBQWBJUuW+LpOIOD/9z8QCATWrl27z2Mr/92uXbs25P7ExMTAO++8EzKGtLS0wC+//OJ67Zhjjgn+jKZOnep6be7cuYG4uLhAfHx8YP369a7XnnjiiYCkQI8ePQJff/2167UFCxYEWrduHUhKSgp8//33vuIHmhpGYoEG9D//8z9KSEjQo48+qh9//DHa4XgaN26c7rzzTqWkpKigoEBPPvmkRo8erf79+ys9PV2jRo2K6LRybZWVlemCCy5QYWGhevfurUsvvTTaIYXUvn374PaOHTtqdY3MzExdc801CgQCysvL2+fxy5cv18svv6zOnTvrpZdeqlYaMm7cOJ1yyilatWqV3nvvPddr5557rlJSUlz74uLidMUVV2jw4MH67rvvtHz58lq9j0oFBQVKS0vTUUcdVe21Dh06BEtEwvHjjz96ttiaP39+neI1XXXVVTrttNNc+3Jzc3XggQeqsLBQixcvDnneyJEjq/2OVo50l5eXB7uBSHtb3FW2K5sxY0a12vSjjz5at9xyi0pKSvT4449H4F0B9iGJBRrQAQccoEsuuUTFxcW65ZZboh1OjW666Sb99NNPmj59ui6++GL16dNH8fHx2rVrl5577jn169dP7777blRjvOyyyzR37ly1a9dOr7/+upKSkqIaj5eKiorgdl36uV5//fVq3769PvjgA1fCE8q7776rQCCgk08+Wa1btw55zNChQyUpZHnA6tWr9fDDD2vcuHEaPXq0cnNzlZubG6yXrusfMYcffrgKCwt10UUX6auvvnJ9RrWVkpKiUaNGhfzKzMys8/Ur/eEPfwi5/6CDDpIkbdiwoc7nLV26VBs3blT37t112GGHhTyvpp8fEAtosQU0sMq2Sy+++KKuu+66kE//V6pMeAI1PPRhvh7phvdt2rQJJgGS9PPPP+vNN9/UhAkTtGnTJo0aNUo//vjjPntwbtu2Tdddd121/QceeKCvUcVQrr76aj399NNKT0/XnDlztP/++9fqOqE89dRT+vTTT6vtz8vL04EHHhj29bZt2yZp788nPT291nGlpqZqwoQJGjdunP7+97/riy++8Dy2shPC008/raeffrrG627dujW4XV5errFjx+rxxx+v8feuqKgozOjdHn30UZ122ml6/vnn9fzzz6t169YaOHCgjjvuOF144YXBuuxwNFSLLa/YUlNTJclzgYtwzqv8+a1Zs2af/67Nnx8QS0higQbWqVMnXX311Zo8ebJuvPHGGlebqpzS9VqtqdLu3bslSa1atYpcoCGkp6frkksuUb9+/dS/f39t27ZN//73v4MLEdQU37PPPltt/zHHHFOrJPbaa6/Vgw8+qDZt2ujDDz+s1dRzTT799NOQ8VZOGYdryZIlkvYm7XVt8XX55ZfrgQce0JdffqnXX39dgwcPDnlc5chm37591adPnxqvOWjQoOD2v/71L02dOlWZmZm6//77NWTIEHXs2FHNmzeXJJ133nl6+eWX9/mH1b4cdNBBWrlypT788EN9/PHH+uyzz/TJJ5/o448/1u23366nn35aF1xwQZ3uUVv7GhVu1qx2k5jhnFcZQ2ZmpoYPH17jsWa5ChBLSGKBKPj73/+uJ554Qu+++26NrYQqR25Wr15d4/Uqn86vzehVbfTr10/t27fXtm3bgqOMNcnOzq5z0lPphhtu0P3336+0tDR9+OGHGjBgQESua5o+fXrERvRKS0v16quvSpJOPPHEOl8vKSlJ//jHP3ThhRfq5ptv1ocffhjyuKysLEnSkUceqYcfftj39Stjffzxx3X66adXe73ydy0SEhISdMopp+iUU06RtHd09/7779ekSZN06aWX6swzz6xWm1tXlSUnu3btCvl6aWmpNm3aFNF71kblz69du3Ys4AB4oCYWiIK0tDTddNNNkvYmZV6OO+44SdL/+3//zzORLS0t1dtvv+06vq72lXDu3LkzOJ283377ReSefuTl5emee+5RWlqa5syZo4EDBzbYvWvr5ptv1saNG5WYmBix5W/PP/989enTR6tWrdKTTz4Z8pjKhSjefvttz+ntUCofPOvatWu117777jstW7Ys/IB9Sk1N1W233aY2bdrol19+0ffffx/xe2RkZCgpKUk7duzQli1bqr3+wQcfqKysLOL3DdfAgQPVvn17/fe//9V3330X7XCARokkFoiSK6+8Ul26dNEXX3zh2bR8wIABOv744xUIBHTBBRdUGyH69ddfdfnll+vHH39URkaGRo8eHZHYDj/8cD366KMhn6TfvHmzRo0apZKSEnXt2tVzOjvSJkyYoClTpqhNmzZWJLA//PCDLrroIt1zzz2SpIcffjhkYlgbcXFxmjx5siR59iXt16+fzjrrLK1fv14jR46s1rhf2lum8uKLLwYf1pKch4weeeQR17T6pk2bdNFFF0Ukwfvll190//33h6zl/OSTT7Rz507Fx8fXyx9IiYmJOvrooyXt/Z0y3+PXX3+tsWPHRvyetZGYmKiJEycqEAjozDPPDFmjXV5ero8//liff/55FCIEoo9yAiBKkpOTdfvttys3N7fGpWhfeOEFnXjiifriiy/UrVs3DRkyRJ06dVJhYaEWLVqk7du3q23btpo5c6batGkTkdhWrVqlK6+8Un/729/Uu3dvde/eXQkJCdqwYYO++OILlZaWqm3btpoxY0aDLOP69ttv684775Qk9ejRQ4888kjI49q3b697773XtW/Tpk0688wzg9//9NNPwWseccQRwf2PPvqo+vfvH3ZsK1asCC57W1FRocLCQq1YsUKrVq1SIBBQRkaGHn74Yf3xj38M+9o1OfnkkzV06NAaW0dNmzZNO3fu1HvvvacDDjhAffr0UU5OjgKBgPLz8/X111+rpKREy5cvV8eOHSXt7Urx/vvv68knn9S8efPUv39/FRUVacGCBerWrZvOPPNMvfnmm3WKvaSkRNdee62uv/569e7dWz179lRiYqLy8/ODCdnNN9+sjIyMOt3Hyx133KGFCxfqySef1IIFC3TooYdqw4YNWrx4sc477zzNnz+/UbTAGzt2rNatW6d77rlHv//973XIIYeoR48eatGihTZv3qxly5Zp586deuyxx1y/y0CsIIkFoujCCy/Ufffdp2+++cbzmMzMTH3xxRd6+umnNXPmTH399ddauHChWrZsqe7du+uvf/2r/va3v0W0hdCnn36qjz76SB9//LFWrVqluXPnavfu3UpNTdXAgQM1fPhwXXHFFQ32QIk5Irx48WLPPpxdu3atlsQWFxeHfIp/69atrpHA2j5tX1BQEHwILCkpSampqercubMuvPBCDR8+XCNHjgw+FBVpU6ZM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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAArEAAAL3CAYAAACd2x1cAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAABY2klEQVR4nO3dd3wVVf7/8fcNKYQQQgu9R6z0IoIFFBGEVbGyq0gTdnXFhg0URSxfrNhWxYIglrWzCCjKIkRUZFXASkDQCIQOkgSEJCTz+4NfZs5N7k1uQpKbk7yej0ceTuZOOXcSru/M+cw5PsdxHAEAAAAWiQh3AwAAAICSIsQCAADAOoRYAAAAWIcQCwAAAOsQYgEAAGAdQiwAAACsQ4gFAACAdQixAAAAsA4hFgAAANYhxFZjnTt3ls/nU0xMjPbs2XNUx/L5fPL5fGXUsuonNTVVPp9Pbdq0KfRa/rVdtmxZkcdo06aNfD6fZs+e7bd+9uzZ7jGio6O1c+fOoMfIyspSgwYN3O3vv//+oNseOHBATz31lAYNGqRmzZopJiZGtWvX1nHHHafhw4dr3rx5ysvL89unX79+8vl8Sk1NLfK9HI386+Dz+fTuu+8G3e7ss88OeL1GjRoln8+nUaNGFXme/Oua/zNbtmyZe96SfN1zzz3uMfPy8jR79mwNGDBAjRo1UlRUlOrXr69jjz1W559/vh5++OFyvXamnJwcLVmyRLfeeqt69uypunXrKioqSk2aNNH555+vhQsXBt138+bNev755/X3v/9d3bt3V0xMjHw+n8aOHXtUbbrnnnsKXb+aNWuqUaNG6ty5s0aNGqXXX39dhw4dKtXxzZ9hkyZNdODAgYDbbdmypVJ85uVfD/N3SPLeR3G/w0fD/FwJ9lW3bt1yO39lk/+5U1H/PnFEZLgbgPD4+uuv9f3330uSsrOz9dprr+mGG24Ic6tQ3nJycvTqq6/q5ptvDvj63LlztXfv3mKP88knn2j48OHatWuXIiMj1b17d51++uk6fPiwNm7cqNdff12vv/66evbsqf/9739l/TZCduedd2ro0KGKjCz/j7omTZpo5MiRhdavWbNG3333nRo3bqxBgwYVer1Lly6SjvxRcN5552np0qWSpG7duumMM85QjRo19Ouvv2rRokWaP3++atWqpfHjx5fre5Gk5ORkDRgwQNKR93baaacpLi5OP//8s+bPn6/58+fr73//u2bMmFEozL333nu66aabyq1t5rXMzc1Venq6UlJS9Morr+iVV17RjTfeqKefflp//etfS32OHTt26LHHHtPdd99dVs2ukuLi4nTJJZcEfK1WrVoV3BpUN4TYamrmzJmSpObNmystLU0zZ84kxFZxnTp10tq1azVr1qygIfbll1+WJPXs2VNff/11wG0WLlyoCy64QLm5uRozZoymTZumRo0a+W2zadMm/d///Z/efvvtsn0TJVCrVi2tX79eL730kq6++upyP9/xxx9f6K6udORu2XfffRf0dXO7pUuXqlmzZvroo4/UqVMnv9fT09P13nvvqWnTpmXc8sAiIiJ08cUX64YbbtDpp5/u99pbb72lK664Qi+88IJOPfVUjRgxwu/1tm3b6rrrrlO3bt3UrVs3vf3223rggQfKrG3BruXGjRt1zz336LXXXtPf/vY37d27V//85z9LfPzY2FgdOnRIjz76qK655holJiaWQaurpoYNGxb5ew2UJ8oJqqE///xT//73vyVJr776qmrXrq0ffvghaGhB1ZCYmKjzzjtPP/30k1auXFno9U2bNmnJkiXq1auXTjzxxIDH2LNnj4YPH67c3Fxdf/31mjlzZqEAK0mtWrXSjBkz9J///Kes30bI8v8ou/fee/Xnn3+GrR2hevPNNyVJU6ZMKRRgJSkhIUFjxozRueeeWyHtOeuss/Tuu+8WCrCSNGzYMLeres6cOYVev+CCC/TUU09p1KhR6tSpU4XcCZekpKQkvfrqq7r11lslHfkd+PXXX0t8nGbNmumSSy5RZmZmkSU1AMKLEFsNvfPOO8rIyFCHDh105plnatiwYZK8u7PBrFixQueee67q1q2r2rVrq0ePHu6du4JSUlLk8/lUr169IuvTevToIZ/Pp3nz5rnrfv75Z02ZMkWnnnqqmjdvrujoaDVo0EBnn3120Dt7+TVg/fr1U05Ojh566CGddNJJio2NVYMGDXTRRRdp7dq1Qdvxxx9/6N5771WPHj2UkJCg2NhYtWvXTpdddpk++uijQtsfPnxYL730kvr166f69esrJiZGbdu21TXXXKPNmzcHPc+CBQvUt29fxcfHKyEhQaeffrrfey9vY8aMkaSAP7dZs2YpLy/P3SaQf/3rX9q3b58aNWqkhx9+uNjznXHGGSG1Kz09XZMnT1bHjh0VFxenmJgYNWvWTKeeeqruvvtu5eTkhHQc0+DBg9W3b19t27ZNjz/+eIn3r2g7duyQpIB/FFRGXbt2laQif9/D5YEHHlCzZs10+PDhUv/sH3jgAUVGRmrGjBn67bffSrRvaT4f3n//fY0dO1YdOnRQvXr1VLNmTbVt21ZjxozRunXrSvUeAvnvf/+r8847T40bN1ZUVJTq1aun9u3ba/jw4frss8/K7Dymomr+8wWrKTXXL126VOecc47q1aun2NhYdevWLeAfUZJXf79s2TKtWbNGF110kRo2bKiYmBideOKJeuyxx+Q4TtD2LFmyRBdddJGaNm2q6OhoNWrUSBdeeKFWrFhRmkuAckKIrYbyw2p+WMn/75tvvqmDBw8G3Oedd97R6aefrkWLFqlly5Y6//zzFRsbq7Fjxwbsmj7++OPVu3dv7du3L+jduB9++EHffvutGjdurCFDhrjrp0+frnvvvVd79+5Vx44dddFFF+m4447T0qVLNWzYME2YMCHoe8vJydHgwYN17733qlWrVhoyZIji4uI0d+5c9enTJ2DR/XfffaeOHTtqypQp2rBhg0477TRdcMEFatKkiRYsWKCHHnrIb/vMzEwNGDBA48aN07fffqtOnTrp/PPPV0xMjGbMmKGuXbtq9erVhc7z+OOP67zzztNnn32mE088UUOGDNGhQ4c0dOhQPf3000HfU1nKfwir4M/acRzNmjVLtWrVKrKOMD9wDxs2TDExMWXSpj///FOnnXaaHnjgAe3YsUP9+/d3f+a//vqr7rvvvqAP2BQn/2f38MMPH/XDi+WtVatWkqQZM2YoKysrzK0p3i+//CJJFVbeUBJRUVHuH+eLFy8u1THat2+vcePGKTs7W5MnTw55v9J+Plx22WX697//rdjYWJ111lkaOHCgIiIiNGvWLHXv3l1ffvllqd6H6ZVXXtE555yjhQsXqm3btrr44ot1xhlnqE6dOnrzzTf1/vvvH/U5ysvLL7+s/v37a+/evRo0aJC6dOmi1atXa+TIkXriiSeC7vfxxx+rV69eSklJ0YABA9S7d2+tX79et9xyS9C67VtuuUVnn3225s2bp1atWmno0KFq166d5s2bp9NPP12zZs0qp3eJEnNQraxbt86R5ERFRTk7d+501x9//PGOJGfOnDmF9tm2bZsTHx/vSHKm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3367XnjhBX344YdFDiWUf+dmw4YNRR4v/3exNHevSqNr165q2LChdu/e7d5lLEqbNm2OOvTku+222zR9+nQlJCTok08+UY8ePcrkuKbZs2eX2R29nJwcdzi+c84556iPFx0drfvuu09XXnml7rzzTn3yyScBtyvt50N+W59//nmdf/75hV4vy8+9yMhIDR482C1JycjI0PTp0zV16lT94x//0IUXXnhUfzAGkl9ykpmZGfD1nJwct1QsnPJ/fg0aNGACB0swxFY1MXv2bOXm5qpXr15yjjzQF/Drtttuk+Q/Zmz+XdvXX3894LGLqzEcNWqUIiIi9Pbbb+vPP/8sspQgf8rT1q1bF3rNcRy98cYbIbzb0OVPXfnyyy+79WdFyR9o/oMPPijR/OxHew3Lw9ixY9WgQQM1aNBA48aNC2mf6667TgkJCdq5c6duv/32Yrdfvnx5qdvXs2dPd7alNWvWlPo4+RISEnTHHXdIkvt7HshZZ50lSfr++++DBtmcnBx98MEHftsfreIC5759+9zu5FD+4CgrEydO1COPPKKEhAQtXrzYrWGuzO68805t3bpVUVFRZTb97RVXXKHOnTvrl19+0Ysvvhhwm9J+PhT1uffTTz+Vye9/MHXq1NE999yjunXr6s8//9T69evL/ByJiYmKjo7W3r17A5Yiffzxxzp8+HCZn7ekevbsqYYNG+rnn3/WTz/9FO7mIASE2Goif3D74rqM86ePXLBggVvzc9VVV6l27dpasWKFnnrqKb/tly1bphkzZhR5zBYtWmjAgAHKyMjQHXfcoR9//FGtWrUK+D///Aew3n33Xb+/zHNzc3X33XeXeTH92LFj1aJFC61evVrjxo0r1IWckZGh//73v+73Xbt21cUXX6zNmzfroosuCngH9cCBA3r99dfdhzGkI+GvRo0aevvttzV37ly/7d98882wzGx1yimnuHf1LrroopD2adCggebMmaOIiAg9+eSTGjt2bMD/KaWlpWn8+PEaOnRoscecO3euPvvss0LdiTk5Oe6Dd4H+514a1157rVq1aqWVK1cGHbS8R48e6t+/vxzH0fDhwwvdITp48KCuueYa/f7770pMTNRVV11VJm07+eST9eyzz7qBxrR9+3aNHDlS2dnZat26ddDu7LI2efJkPfTQQ6pbt64VAfbXX3/ViBEj9Mgjj0g6MjlHWf3u+Hw+TZs2TZKCjkta2s+H/M+9Z555xu/fwbZt2zRixIgyCXh//vmnpk+fHrCWc/ny5dq3b59q1KhRLn8gRUVFuQ+NTp482e89fvfddxo/fnyZn7M0oqKiNGXKFDmOowsvvDBgjXZubq4+/fRTffXVV2FoIQqinKAaSE5O1oYNGxQTE1PkQPaSdNJJJ6lbt25atWqV5syZo5tvvlnNmjXTiy++qOHDh+uGG27QSy+9pA4dOigtLU3Lly/XjTfeWOysOKNHj9bHH3/sjmKQf3e2oPPOO0/du3fXt99+q2OPPVZ9+/ZVXFycVq5cqa1bt+r2228PWGZQWrVr19YHH3ygwYMHa9asWZo7d65OPfVU1a5dW5s3b9bq1at18skn+5UazJo1S/v27dNHH32k4447Tp07d1bbtm3lOI5SU1P13XffKTs7W2vXrlXjxo0lHamRmzZtmm677TZddNFF6tWrl5KSkvTLL7/o66+/1k033WTFrFKSdP7552vBggUaMWKEZs6cqVdeeUU9evRQ69atdfjwYW3cuFHfffedHMfRKaecUuzxkpOT9eSTT6phw4bq2rWrGjVqpMzMTH311VfauXOnmjdvXuSd05KIiYnRvffeq1GjRhU5Fe1rr72mc845RytXrlS7du3Up08fNW3aVOnp6VqxYoX27Nmj+vXr67333itUElNav/zyi6699lpdf/316tixo5KSkhQZGam0tDStXLlSOTk5ql+/vt58880Kmcb1gw8+cB/wPOaYY/TMM88E3K5hw4Z69NFH/dZt27ZNF154oft9/oONH3zwgd/vxLPPPqtu3bqVuG0pKSnutLd5eXlKT09XSkqKfvnlFzmOo8TERP3rX//SZZddVuJjF+Xcc89Vv3793NFGAinN58Mdd9yhRYsW6cUXX9TSpUvVrVs3ZWRkKDk5We3atdOFF15Y6I/fksrOztbNN9+sW2+9VR07dlT79u0VFRWl1NRUN5DdeeedSkxMPKrzBHP//ffrs88+04svvqjk5GR16tRJaWlp+uabb3T55Zdr2bJl7oO24TR+/Hht2rRJjzzyiE4//XSddNJJOuaYYxQbG6vt27drzZo12rdvn5577rmQPt9QzipwOC+EyZVXXulIci655JKQts8fO/WEE07wW798+XJn4MCBTp06dZxatWo5Xbt2dZ5//nnHcbyxTIM5dOiQU79+fXcs119//TXotpmZmc4dd9zhHHfccU7NmjWdRo0aOUOHDnW++eYbdxzHguNEBltvKqqNu3btciZPnux07NjRiYuLc2JjY5127do5w4YNCzgmam5urvPGG284gwcPdho3buxERUU5DRo0cDp06OCMHj3amTt3bqGB+x3HcebNm+ecdtppTlxcnFO7dm2nT58+zrvvvlvkOIoqMOZiMKFOdhCKQOPEFpSZmek8/vjjzoABA5wmTZo40dHRTq1atZxjjz3WGT58uLNgwYJCg7MHsnr1amfixInOaaed5jRv3tyJjo52EhMTne7duzv/93//5+zevTvkdjtO4XFiC8rNzXU6duwYdFzdfH/++afz9NNPO/369XMaNGjgREZGOnXq1HG6du3qTJo0yW9CjaKEOrbpDz/84Dz++OPOeeed5xx//PFO3bp1ncjISKd+/fpOnz59nKlTpzq7du0K6ZxlIZRxQIP9zub/Phf3VdzvdEH519L8io6Odho2bOh06tTJGTFihPP66687Bw8eLNV7DjRObEErV670O38gpfl8+P77753zzz/fadq0qVOzZk2nffv2zm233eZkZGS4/x4L/q6WZJzYnJwcZ8aMGc7f/vY35/jjj3cSEhKc2NhYJykpybn44oudJUuWFHsMU0kmO8i3YsUK55xzznHq1KnjxMbGOp07d3aeffZZJy8vr9hxYoONvxrs2uSPExvsd6y4a/fFF184V1xxhdO6dWsnJibGiY+Pd4499lhn6NChzksvveTs3bu3RO1E+fA5ThlV/gMAAAAVhJpYAAAAWIcQCwAAAOsQYgEAAGAdQiwAAACsQ4gFAACAdQixAAAAsA4hFgAAANYhxAIAAMA6hFgAAABYhxALAAAA6xBiAQAAYB1CLAAAAKxDiAUAAIB1CLEAAACwDiEWAAAA1iHEAgAAwDqEWAAAAFiHEAsAAADrEGIBAABgHUIsAAAArEOIBQAAgHUIsQAAALAOIRYAAADWIcQCAADAOoRYAAAAWIcQCwAAAOsQYgEAAGAdQiwAAACsQ4gFAACAdQixAAAAsA4hFgAAANYhxAIAAMA6hFgAAABYhxALAAAA6xBiAQAAYB1CLAAAAKxDiAUAAIB1CLEAAACwDiEWAAAA1iHEAgAAwDqEWAAAAFiHEAsAAADrEGIBAABgHUIsAAAArEOIBQAA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", "text/plain": [ "Figure(PyObject
)" ] @@ -536,7 +558,7 @@ ], "source": [ "fig, axis = plt.subplots(2, 2, figsize=(8,8))\n", - "fig.suptitle(\"NUTS - 21-D Neal's Funnel\", fontsize=16)\n", + "fig.suptitle(\"AdvancedHMC's NUTS - 21-D Neal's Funnel\", fontsize=16)\n", "\n", "fig.delaxes(axis[1,2])\n", "fig.subplots_adjust(hspace=0)\n", @@ -556,13 +578,13 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 15, "id": "fe4c8b70", "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAArEAAAL3CAYAAACd2x1cAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAABTXUlEQVR4nO3deXxU1f3/8fcEsrAkYQubCYQgigqCrIIbm6JiFYvUftVWEHmoP7FVXBqqiFRbpKhYtGr9KqJWC1pF1LghFBTBFRBRoICEVSBsCSAmgczvD7+590yYm8xkm5yZ1/Px4PE4uXPuvWcmMX5yzud+js/v9/sFAAAAWCQu0gMAAAAAwkUQCwAAAOsQxAIAAMA6BLEAAACwDkEsAAAArEMQCwAAAOsQxAIAAMA6BLEAAACwDkEsAAAArEMQC9SizMxM+Xw+zZo1q9x+AwYMkM/n03333RdwfNGiRfL5fM6/FStWlHud0047zel7/fXXe/YrLi7Wc889p+HDh6tdu3Zq0KCBGjZsqKysLF1xxRV66aWXVFRUFOrbrJLdu3frhRde0FVXXaVOnTopKSlJDRs2VOfOnfW73/1Oubm5nud+9NFH+stf/qIRI0Y4n7XP59OSJUuqNCbzWj6fT3FxcUpOTlZ6eroGDhyoO+64Q59//nmlrz9q1Cjn2uPGjfPs98ADD8jn82nUqFGVvld1KP08yn4vSt/HokWLauzepf9tlPfv1ltvrbH71yWlvw8GDBgQ6aEAEVE/0gMAUHkzZ87UY489FvS1Tz/9VN99912F11i+fLmuuOIKbdq0ST6fT926dVOfPn0UFxen3NxcvfHGG3rttdd0991367vvvlPDhg2r+20EGD9+vF566SXFxcWpS5cuuvTSS3X48GF98cUXeuyxxzRz5kzNnTtX559//nHn/u53v9PXX39dY2M766yzdOKJJ0qSjhw5oj179mjFihVatGiRHn74YZ133nmaOXOmsrKyKn2Pp59+Wrfddps6duxYXcOOSt26dVP37t2DvtanT5/aHQyAiCCIBSzUrl07/fTTT3r55Zf10EMPKTEx8bg+M2fOlCT17t1bX3zxRdDrLF++XOecc45+/PFHXXLJJZoxY4Y6dOgQ0CcvL0/Tp0/Xww8/rKKiohoPYps1a6bJkydrzJgxOuGEE5zjhw4d0tixYzV79mz9+te/1oYNG9S0adOAc88//3xdfvnl6tGjh3r06KGzzjpLmzdvrraxXX/99cfNgvr9fr377ru69dZbtXjxYvXv31/Lli077nMMRcOGDfXjjz/q7rvv1uzZs6tp1NFp+PDhx61UAIgtpBMAFoqPj9c111yjffv26Y033jju9R9//FGzZ8/WCSecoKFDhwa9RnFxsUaOHKkff/xRw4cP17x584IGXmlpafrLX/6iJUuWBA2Wq9uMGTN07733BgSwktS4cWM9++yzSk5O1r59+5STk3PcudOmTdOkSZP0i1/84rjza4rP59PFF1+szz//XJ06ddKuXbvKTd0oz5gxY9S4cWO98sorWr58eTWPFACiC0EsYKnrrrtOkjvjanr11Vd18OBB/fa3v1W9evWCnv/yyy/r+++/V0JCgp588knFxZX/66B3795q0KBB1QdeBQ0bNtTJJ58sSdq6dWtEx1JWkyZN9Oijj0qSFi5cqK+++irsa7Rs2VK33367/H6//vCHP4R9/o4dOzR+/HidcsopatiwoZKTk9W7d289/vjjOnr06HH98/LyNGPGDF188cXq0KGDGjRooJSUFPXq1UtTp07VTz/9FPYYgiksLNS0adPUs2dPJScnKyEhQa1bt1bv3r111113ad++fdVyn7Luu+++oLnlpbxySs3jxcXFmjp1qk477TQ1aNBAzZs31y9/+UutWbPmuOvl5ubK5/MpMzNTfr9fTz/9tHr27KlGjRopNTVVF1xwgZYtW+Y53iNHjujhhx/WmWeeqSZNmigpKUknn3yy7rrrLu3du7cqHwUQlQhiAUuddtpp6tOnjz788MPjArpnn31WkjR69GjP8+fNmydJGjp0qFq3bl1zA61GxcXFzsNEbdq0iexggrjooovUrFkzSdL8+fMrdY077rhDLVu21IcffhjWNT766CN16dJF06dP108//aTzzz9fZ511ljZu3KhbbrlFw4YNU3FxccA577//vn7/+99r1apVat++vYYPH64+ffpo3bp1ys7O1qBBg1RYWFip91GqpKREw4YN01133aUNGzbonHPO0RVXXKGuXbsqLy9P06ZN05YtW6p0j5pSXFysiy++WH/605/Url07DRs2TI0aNdLcuXPVv3//ch8yHD16tMaNG6cmTZrokksuUevWrTV//nwNHDhQn3322XH9d+zYob59++qOO+7Q+vXr1bt3b1188cXOHwC9evWq1tQYIBoQxAIWGzNmjEpKSgKqHaxfv14ff/yxzj33XHXq1Mnz3C+//FLSzzOstnj22We1Z88eNWjQQBdddFGkh3Mcn8+nHj16SJK+/fbbSl2jcePGuueeeyRJ2dnZ8vv9FZ6zc+dO/fKXv9SBAwf0xBNPaOPGjZo3b57ee+89rV+/XoMGDdIHH3ygKVOmBJzXs2dPLVu2TNu2bdOiRYv0r3/9Sx9++KG2bNnizBrOmDEj5LHPmjVLfr8/YGZzyZIlWrBggc444wxt27ZN77zzjl5++WXNnz9fubm5+uKLL5SRkRHyPWrT0qVLtXfvXm3cuFHvvvuu/v3vf+u///2vhg4dqgMHDhz3eZbavHmzFi1apNWrV2vBggWaM2eOvvvuO1133XUqLCzUvffeG9Df7/frV7/6lb755huNGTNGubm5mj9/vl5//XVt2LBBt99+u3Jzc8v9oxSIRQSxQASMHj263BJBixcvDuk6v/71r9WwYUMneJDc9ILSdAMveXl5kn5ewrbBN998ozvvvFOSNHHiRLVq1SrCIwquRYsWklSl5d8bb7xRWVlZWr58uebMmVNh/0cffVR79+7VzTffrJtuuikgNaR58+Z64YUXFB8fr8cffzwgKD7llFN05plnHne9pk2bOlUvXn311Uq/D0natWuXJOmcc85RcnLyca/36tVLzZs3D/u6kydPDvrfTmZmZpXGa/L5fHruuecCViqSkpI0efJkSdKHH37oee5jjz2mk046yfm6Xr16+vOf/yxJWrx4ccCs+Pvvv69PPvlE3bt311NPPRXwOdWvX19//etf1aVLF/3nP//R6tWrq+39AbajOgEQAWappmDee+8953/+5UlJSdGIESP04osvatGiRTr33HP1wgsvKDk5WSNHjqzOIUfUtm3b9Itf/EKHDh3SpZdequzs7EgPyVNJSYmknwOgyoqPj9cDDzygq666Svfcc49GjBih+Ph4z/6lD7ldeeWVQV8/4YQT1KlTJ3333Xdav359QHB17NgxLVq0SEuXLtUPP/ygI0eOyO/3O8HuunXrKv0+JKlHjx6qV6+eZs6cqZNOOkm//OUvqyUVxKvEVukfEdWhXbt26tat23HHTznlFEnS9u3bg55Xv359XXjhhccdb926tZo2bar9+/dr7969TnBc+v0bMWKE6tc//n/LcXFxOvfcc7V69WotXbpUXbp0qfR7AqIJQSwQAcFKNZkGDBgQUhAr/Tzj+uKLL2rmzJn68ccftWPHDl1//fUVlsJKS0vT1q1btXv37nCGXqE33ngjaMWE66+/XmeffXbY19u5c6cGDx6szZs3a+jQoXrllVeqFCCWFez70KJFCz300EOVut6ePXskycmNraxf//rXmjZtmlasWKF//OMf5W6C8P3330v6ebazInl5eU4Qu379el1++eXlpj4UFBSEOfJAHTt21PTp03XnnXdq3LhxGjdunNq3b69+/frpkksu0ciRI5WQkBD2dWujxFa7du2CHk9JSZEkz3zhNm3aeP7RkZKSov379wc8NFf6/Zs4caImTpxY7phKV1AAEMQC1jvvvPPUsWNHvfbaa9q5c6ekilMJpJ/zIbdu3epZQ7ayVq5cqeeff/644wMGDAg7iN29e7cGDRqk//73vxoyZIjeeOONai/zFWys7du3r1QQ6/f7nV3UunbtWqVx+Xw+Pfjggxo6dKjuv//+cv/oKZ39veKKK9SoUaNyr2su3V9xxRX69ttvdckll+iuu+7SqaeeqpSUFMXHx6uoqKjaPutbbrlFv/rVr/Tmm29qyZIlWrJkiWbPnq3Zs2dr0qRJ+vjjjyPyoF7p5+aloood1XVe6TjOPvvsCje5OO200yo1JiAaEcQClivdhnTixIn68MMPdcopp6hfv34VnnfZZZfpjTfe0Pvvv69du3ZVW47pfffdVy0zZHl5eRo0aJDWrFmjwYMH680331RSUlLVB1hGKA9Oheqdd97R/v37JUkXXHBBla93wQUXaPDgwVqwYIEefvhhz3JpGRkZWr9+vf7whz+oV69eIV177dq1WrVqlVq2bKm5c+cet4y9fv36Ko/f1KpVK40dO1Zjx4517n/ddddp2bJlys7ODvrHRFWVzvAePHgw6Ot15Wn/0gfbLrvsMt1xxx0RHg1gDx7sAqLAqFGjlJaWpubNm+uGG24I6Zyrr75amZmZKioq0k033VThrNRXX32lI0eOVMdwK7Rnzx4NGjRI3377rQYPHqy33nor4jVqK5Kfn6/bbrtN0s87h3ltiRquqVOnyufz6eGHH/ZcSi6t1PDKK6+EfN3S2qxt27YNmof5z3/+sxKjDV3nzp2dWrgrV66skXuUbngRrKarpKAbZkRC6ffv1VdfrdY/qoBoRxALRIH09HTt3r1be/bs0e9///uQzomPj9crr7yipKQkzZ07V8OHD9emTZuO67dv3z5NnDhRZ511VpVrhoZi3759Gjx4sFavXq0hQ4bU+QC2dNvZPn36aP369WrTpo3+93//t9qu37NnT40cOVIHDx7UM888E7TPnXfeqSZNmuiRRx5xtgcua9OmTQGB6UknnaR69erpm2++0aJFiwL6vvXWW5o+fXq1jH/hwoV65513jqtR6/f79fbbb0v6OX2jJgwaNEhxcXF6//33Ayp++P1+zZgxQ6+99lqN3Ddcl112mXr37q3PP/9co0ePDvrHyv79+/XUU08F3bQCiFWkEwAxrHfv3vroo480cuRIvfXWW3r77bd1xhlnKCsrS3Fxcdq8ebO+/PJLHTt2TFlZWbWy7ez111+vVatWyefzqVmzZrrpppuC9hs+fLiGDx8ecOyZZ54JCPR++OEHSdINN9zglC1q06aN5s6dW6mxPfPMM07AV1hYqD179mj58uXOrOaAAQM0c+bMag/K/vznP2vu3Ln68ccfg76enp6uefPmacSIEbrjjjuckkxt2rRRfn6+1qxZo40bN6pv37665pprJP388Nq4ceP0t7/9TYMHD9Y555yjtm3bat26dVq+fLnuuecePfDAA1Ue+6pVq3TbbbcpJSVFPXr0UNu2bXXkyBEtX75cmzdvVmpqqv70pz9V+T7BZGRk6JZbbgl4j82aNdPXX3+tLVu2KDs7Ww8++GCN3DsccXFxeuONNzRs2DA9//zz+ve//61u3bqpXbt2Kioq0vfff69vvvlGx44d06hRo4LOnAOxiP8SgBjXu3dv/fe//9WLL76oefPmafny5fr222/l8/nUpk0bXX755RoxYkSFZZ6qS2lA6Pf7y10ez8zMPC6I3bZtW9DdkL777junXZUA85NPPtEnn3wiSc5Wol27dlWvXr105ZVX1tjGESeeeKLGjh2rJ554wrPPueeeq2+//VaPP/64cnJy9MUXX6iwsFAtW7ZUu3btdM0112jEiBEB50yfPl2nn366nnjiCX311VdauXKlunbtqtmzZ+vKK6+sliD2F7/4hfLz8/Xxxx9r/fr1+vTTT9WgQQNlZGQoOztbN998s9LT06t8Hy/Tp09Xu3bt9Mwzz2jp0qVq3LixzjrrLL3yyisqKCioE0Gs9HNax6ef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0/Tkk0/q+++/j/RQ6oy+ffuqd+/eevzxxyVJJSUlysjI0C233KLs7OwIj67uy8vLU8uWLbV48WKde+65kR4OANSKmJyJXb58ubZv3664uDidccYZatOmjS666CKtXr060kOr83bt2qWxY8fqxRdfVMOGDSM9HCvl5+erWbNmkR5GnVFUVKSvvvpKQ4YMcY7FxcVpyJAhWrZsWQRHZo/8/HxJ4ucKQEyJySC2dAbsvvvu0z333KO3335bTZs21YABA7Rv374Ij67u8vv9GjVqlG688Ub16tUr0sOx0oYNG/TYY4/phhtuiPRQ6ow9e/bo2LFjatWqVcDxVq1aaefOnREalT1KSkp066236qyzzlKXLl0iPRwAqDVRFcRmZ2fL5/OV+680R1GS7r77bo0YMUI9e/bUc889J5/Pp1dffTXC76L2hfq5PfbYYzp48KAmTJgQ6SFHXKifmWn79u268MILNXLkSI0dOzZCI0e0ufnmm7V69WrNnj070kMBgFpVP9IDqE633367Ro0aVW6frKws/fDDD5KkU0891TmemJiorKwsbdmypSaHWCeF+rktXLhQy5YtO26P9l69eunqq6/W888/X4OjrFtC/cxK7dixQwMHDlT//v319NNP1/Do7NKiRQvVq1dPu3btCji+a9cutW7dOkKjssO4ceP09ttv66OPPlJ6enqkhwMAtSqqgti0tDSlpaVV2K9nz55KTEzUunXrdPbZZ0uSiouLlZubq/bt29f0MOucUD+3GTNm6IEHHnC+3rFjh4YOHao5c+aob9++NTnEOifUz0z6eQZ24MCBzox/XFxULYBUWUJCgnr27KkFCxY4Ze5KSkq0YMECjRs3LrKDq6P8fr9uueUWzZ07V4sWLVKHDh0iPSQAqHVRFcSGKiUlRTfeeKMmTZqkjIwMtW/fXtOmTZMkjRw5MsKjq7vatWsX8HXjxo0lSR07dmQWyMP27ds1YMAAtW/fXg899JDy8vKc15hldI0fP17XXnutevXqpT59+ujRRx/V4cOHNXr06EgPrU66+eab9fLLL2vevHlKTk52codTU1PVoEGDCI8OAGpHTAax0s9ljurXr6/f/OY3OnLkiPr27auFCxeqadOmkR4aosj8+fO1YcMGbdiw4bhAPwar23m68sorlZeXp3vvvVc7d+5U9+7d9d577x33sBd+9uSTT0qSBgwYEHD8ueeeqzDNBQCiRUzWiQUAAIDdSM4DAACAdQhiAQAAYB2CWAAAAFiHIBYAAADWIYgFAACAdQhiAQAAYB2CWAAAAFiHIBYAAADWIYgFqsEPP/ygq666SieddJLi4uJ06623Bu336quvqnPnzkpKSlLXrl31zjvv1O5AAQCIEgSxQDUoLCxUWlqa7rnnHnXr1i1on6VLl+p//ud/NGbMGK1YsULDhw/X8OHDtXr16loeLQAA9mPbWSAEeXl56tq1q373u9/pj3/8o6Sfg9IBAwbo3Xff1eDBg52+AwYMUPfu3fXoo48GXOPKK6/U4cOH9fbbbzvHzjzzTHXv3l1PPfVUrbwPAACiBTOxQAjS0tI0c+ZM3Xffffryyy918OBB/eY3v9G4ceMCAtjyLFu2TEOGDAk4NnToUC1btqwmhgwAQFSrH+kBALa4+OKLNXbsWF199dXq1auXGjVqpClTpoR8/s6dO9WqVauAY61atdLOnTure6gAAEQ9ZmKBMDz00EM6evSoXn31Vb300ktKTEyM9JAAAIhJBLFAGDZu3KgdO3aopKREubm5YZ3bunVr7dq1K+DYrl271Lp162ocIQAAsYEgFghRUVGRrrnmGl155ZW6//77df3112v37t0hn9+vXz8tWLAg4Nj8+fPVr1+/6h4qAABRj5xYIER333238vPzNWPGDDVu3FjvvPOOrrvuOqfawMqVKyVJhw4dUl5enlauXKmEhASdeuqpkqTf//73Ou+88/Twww9r2LBhmj17tr788ks9/fTTkXpLAABYixJbQAgWLVqk888/X//5z3909tlnS5Jyc3PVrVs3Pfjgg7rpppvk8/mOO699+/YBaQevvvqq7rnnHuXm5qpTp07661//qosvvri23gYAAFGDIBYAAADWIScWAAAA1iGIBQAAgHUIYgEAAGAdglgAAABYhyAWAAAA1iGIBQAAgHUIYgEAAGAdglgAAABYhyAWAAAA1iGIBQAAgHUIYgEAAGAdglgAAABY5/8Dcyn5TGGZ9+wAAAAASUVORK5CYII=", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAArEAAAL3CAYAAACd2x1cAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAABLxklEQVR4nO3deZyVZf0//vewDfsICgqyo5VboIL7gqJhUkqp2SdbMOWRftQyNMNyLfuoqdlHW8xvqVn5cclwQzPFQE3NBUkxNUBHBARZdAZQB2Tm94c/zrkH5owzMMOZa3g+Hw8ej2vO3Pd93ucM4mvu632uq6SmpqYmAAAgIW2KXQAAADSWEAsAQHKEWAAAkiPEAgCQHCEWAIDkCLEAACRHiAUAIDlCLAAAyRFiAQBIjhALm9GgQYOipKQkbrrppnqPGzVqVJSUlMRFF11U6/Fp06ZFSUlJ7s/zzz9f73V22WWX3LEnn3xywePWrFkTN954Y4wbNy4GDBgQnTp1is6dO8eQIUPi2GOPjT/96U+xevXqhr7MTfL222/HzTffHF/5yldixx13jI4dO0bnzp3jU5/6VHz729+O8vLyguc++uij8T//8z9xzDHH5N7rkpKSePzxxzeppuy1SkpKok2bNtGtW7fo169fHHLIIXH22WfH008/vdHXHz9+fO7ap59+esHjLrnkkigpKYnx48dv9HM1hXXvx/o/i3WvY9q0ac323Ov+26jvz5lnntlsz9+SrPv3YNSoUcUuBYqiXbELADbeDTfcENdee22d33vqqafi3//+98deY8aMGXHsscfG66+/HiUlJTFs2LDYa6+9ok2bNlFeXh533XVX3HnnnfHDH/4w/v3vf0fnzp2b+mXUMnHixPjTn/4Ubdq0iV133TWOOuqoWLVqVTzzzDNx7bXXxg033BCTJ0+Oww8/fINzv/3tb8e//vWvZqtt//33jx122CEiIt5///1YunRpPP/88zFt2rS46qqr4uCDD44bbrghhgwZstHPcf3118d3v/vdGDp0aFOV3SoNGzYshg8fXuf39tprr81bDFAUQiwkaMCAAfHBBx/ELbfcEldeeWWUlpZucMwNN9wQEREjR46MZ555ps7rzJgxIw488MB477334nOf+1xcc801MXjw4FrHLFmyJK6++uq46qqrYvXq1c0eYnv27BkXX3xxnHTSSbH99tvnHl+5cmVMmDAhbr311vjyl78cc+bMiR49etQ69/DDD48vfOELsccee8Qee+wR+++/f7zxxhtNVtvJJ5+8wV3QmpqaeOCBB+LMM8+M6dOnx3777RdPPvnkBu9jQ3Tu3Dnee++9+OEPfxi33nprE1XdOo0bN26DmQpgy6KdABLUvn37+OpXvxrLly+Pu+66a4Pvv/fee3HrrbfG9ttvH2PGjKnzGmvWrInjjjsu3nvvvRg3blzcfffddQavXr16xf/8z//E448/XmdYbmrXXHNNXHDBBbUCbERE165d43e/+11069Ytli9fHlOmTNng3CuuuCIuvPDC+PznP7/B+c2lpKQkjjzyyHj66adjxx13jMWLF9fbulGfk046Kbp27Rq33357zJgxo4krBWhdhFhI1De/+c2IyN9xzbrjjjtixYoV8fWvfz3atm1b5/m33HJLvPbaa9GhQ4f49a9/HW3a1P/PwciRI6NTp06bXvgm6Ny5c3zyk5+MiIg333yzqLWsb6uttoqf//znERHxyCOPxHPPPdfoa/Tu3TvOOuusqKmpie9///uNPn/hwoUxceLE2GmnnaJz587RrVu3GDlyZPziF7+IDz/8cIPjlyxZEtdcc00ceeSRMXjw4OjUqVN07949RowYEZdffnl88MEHja6hLlVVVXHFFVfEnnvuGd26dYsOHTrEdtttFyNHjoxzzjknli9f3iTPs76LLrqozt7ydQr1lGYfX7NmTVx++eWxyy67RKdOnWLrrbeOL37xi/Hyyy9vcL3y8vIoKSmJQYMGRU1NTVx//fWx5557RpcuXaKsrCw+85nPxJNPPlmw3vfffz+uuuqq2GeffWKrrbaKjh07xic/+ck455xzYtmyZZvyVkCrJMRConbZZZfYa6+94uGHH94g0P3ud7+LiIgTTzyx4Pl33313RESMGTMmtttuu+YrtAmtWbMm92GiPn36FLeYOnz2s5+Nnj17RkTEQw89tFHXOPvss6N3797x8MMPN+oajz76aOy6665x9dVXxwcffBCHH3547L///jF37tw444wzYuzYsbFmzZpa5zz44IPxne98J1544YUYOHBgjBs3Lvbaa6949dVXY9KkSXHooYdGVVXVRr2Odaqrq2Ps2LFxzjnnxJw5c+LAAw+MY489NnbbbbdYsmRJXHHFFTFv3rxNeo7msmbNmjjyyCPjRz/6UQwYMCDGjh0bXbp0icmTJ8d+++1X74cMTzzxxDj99NNjq622is997nOx3XbbxUMPPRSHHHJI/POf/9zg+IULF8bee+8dZ599dsyePTtGjhwZRx55ZO4XgBEjRjRpawy0BkIsJOykk06K6urqWqsdzJ49Ox577LE46KCDYscddyx47rPPPhsRH91hTcXvfve7WLp0aXTq1Ck++9nPFrucDZSUlMQee+wREREvvfTSRl2ja9eucd5550VExKRJk6KmpuZjz1m0aFF88YtfjHfffTd+9atfxdy5c+Puu++Ov/71rzF79uw49NBD429/+1tceumltc7bc88948knn4z58+fHtGnT4v/+7//i4Ycfjnnz5uXuGl5zzTUNrv2mm26KmpqaWnc2H3/88Zg6dWrsvvvuMX/+/Lj//vvjlltuiYceeijKy8vjmWeeif79+zf4OTanJ554IpYtWxZz586NBx54IP785z/Hf/7znxgzZky8++67G7yf67zxxhsxbdq0mDVrVkydOjVuu+22+Pe//x3f/OY3o6qqKi644IJax9fU1MSXvvSlePHFF+Okk06K8vLyeOihh+Ivf/lLzJkzJ84666woLy+v95dS2BIJsVAEJ554Yr1LBE2fPr1B1/nyl78cnTt3zoWHiHx7wbp2g0KWLFkSER9NYafgxRdfjO9973sREXH++efHtttuW+SK6rbNNttERGzS9O8pp5wSQ4YMiRkzZsRtt932scf//Oc/j2XLlsVpp50Wp556aq3WkK233jpuvvnmaN++ffziF7+oFYp32mmn2GeffTa4Xo8ePXKrXtxxxx0b/ToiIhYvXhwREQceeGB069Ztg++PGDEitt5660Zf9+KLL67zv51BgwZtUr1ZJSUlceONN9aaqejYsWNcfPHFERHx8MMPFzz32muvjU984hO5r9u2bRs/+clPIiJi+vTpte6KP/jgg/GPf/wjhg8fHtddd12t96ldu3bx05/+NHbdddf4+9//HrNmzWqy1wepszoBFEF2qaa6/PWvf839z78+3bt3j2OOOSb+8Ic/xLRp0+Kggw6Km2++Obp16xbHHXdcU5ZcVPPnz4/Pf/7zsXLlyjjqqKNi0qRJxS6poOrq6oj4KABtrPbt28cll1wSX/nKV+K8886LY445Jtq3b1/w+HUfcjv++OPr/P72228fO+64Y/z73/+O2bNn1wpXa9eujWnTpsUTTzwRb731Vrz//vtRU1OTC7uvvvrqRr+OiIg99tgj2rZtGzfccEN84hOfiC9+8YtN0gpSaImtdb9ENIUBAwbEsGHDNnh8p512ioiIBQsW1Hleu3bt4ogjjtjg8e222y569OgR77zzTixbtiwXjtf9/I455pho127D/y23adMmDjrooJg1a1Y88cQTseuuu270a4LWRIiFIqhrqaasUaNGNSjERnx0x/UPf/hD3HDDDfHee+/FwoUL4+STT/7YpbB69eoVb775Zrz99tuNKf1j3XXXXXWumHDyySfHAQcc0OjrLVq0KEaPHh1vvPFGjBkzJm6//fZNCojrq+vnsM0228SVV165UddbunRpRESuN3ZjffnLX44rrrginn/++fjNb35T7yYIr732WkR8dLfz4yxZsiQXYmfPnh1f+MIX6m19qKysbGTltQ0dOjSuvvrq+N73vhenn356nH766TFw4MDYd99943Of+1wcd9xx0aFDh0Zfd3MssTVgwIA6H+/evXtERMF+4T59+hT8paN79+7xzjvv1PrQ3Lqf3/nnnx/nn39+vTWtm0EBhFhI3sEHHxxDhw6NO++8MxYtWhQRH99KEPFRP+Sbb75ZcA3ZjTVz5sz4/e9/v8Hjo0aNanSIffvtt+PQQw+N//znP3HYYYfFXXfd1eTLfNVV68CBAzcqxNbU1OR2Udttt902qa6SkpK47LLLYsyYMfHjH/+43l961t39PfbYY6NLly71Xjc7dX/sscfGSy+9FJ/73OfinHPOiZ133jm6d+8e7du3j9WrVzfZe33GGWfEl770pbjnnnvi8ccfj8cffzxuvfXWuPXWW+PCCy+Mxx57rCgf1Fv3vhXycSt2NNV56+o44IADPnaTi1122WWjaoLWSIiFxK3bhvT888+Phx9+OHbaaafYd999P/a8o48+Ou6666548MEHY/HixU3WY3rRRRc1yR2yJUuWxKGHHhovv/xyjB49Ou65557o2LHjphe4noZ8cKqh7r///njnnXciIuIzn/nMJl/vM5/5TIwePTqmTp0aV111VcHl0vr37x+zZ8+O73//+zFixIgGXfuVV16JF154IXr37h2TJ0/eYBp79uzZm1x/1rbbbhsTJkyICRMm5J7/m9/8Zjz55JMxadKkOn+Z2FTr7vCuWLGizu+3lE/7r/tg29FHHx1nn312kauBdPhgF7QC48ePj169esXWW28d3/rWtxp0zgknnBCDBg2K1atXx6mnnvqxd6Wee+65eP/995ui3I+1dOnSOPTQQ+Oll16K0aNHx7333lv0NWo/TkVFRXz3u9+NiI92Diu0JWpjXX755VFSUhJXXXVVwankdSs13H777Q2+7rq1Wfv27VtnH+Yf//jHjai24T71qU/l1sKdOXNmszzHug0v6lrTNSLq3DCjGNb9/O64444m/aUKWjshFlqBfv36xdtvvx1Lly6N73znOw06p3379nH77bdHx44dY/LkyTFu3Lh4/fXXNzhu+fLlcf7558f++++/yWuGNsTy5ctj9OjRMWvWrDjssMNafIBdt+3sXnvtFbNnz44+ffrE//t//6/Jrr/nnnvGcccdFytWrIjf/va3dR7zve99L7baaqv42c9+ltseeH2vv/56rWD6iU98Itq2bRsvvvhiTJs2rdax9957b1x99dVNUv8jjzwS999//wZr1NbU1MR9990XER+1bzSHQw89NNq0aRMPPvhgrRU/ampq4pprrok777yzWZ63sY4++ugYOXJkPP3003HiiSfW+cvKO++8E9ddd12dm1bAlko7AWzBRo4cGY8++mgcd9xxce+998Z9990Xu+++ewwZMiTatGkTb7zxRjz77LOxdu3aGDJkyGbZdvbkk0+OF154IUpKSqJnz55x6qmn1nncuHHjYty4cbUe++1vf1sr6L311lsREfGtb30rt2xRnz59YvLkyRtV229/+9tc4KuqqoqlS5fGjBkzcnc1R40aFTfccEOTh7Kf/OQnMXny5Hjvvffq/H6/fv3i7rvvjmOOOSbOPvvs3JJMffr0iYqKinj55Zdj7ty5sffee8dXv/rViPjow2unn356/O///m+MHj06DjzwwOjbt2+8+uqrMWPGjDjvvPPikksu2eTaX3jhhfjud78b3bt3jz322CP69u0b77//fsyYMSPeeOONKCsrix/96Eeb/Dx16d+/f5xxxhm1XmPPnj3jX//6V8ybNy8mTZoUl112WbM8d2O0adMm7rrrrhg7dmz8/ve/jz//+c8xbNiwGDBgQKxevTpee+21ePHFF2Pt2rUxfvz4Ou+cw5bIfwmwhRs5cmT85z//iT/84Q9x9913x4wZM+Kll16KkpKS6NOnT3zhC1+I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FVWX1atXx3HHHRf77rtv/O53v9uszw0AQMvS6NUJXn/99dz4gw8+iI4dOzZpQYVcfPHFERFx0003bZbng6bUVNPc9R2fPa5X5kPaNZlp+ew0/jZP132dNVt3yY3f3iP/3/f2y2rvjLXN08tz4+xyWx3fqc6Ns20N2cerMktkZY8p1MpQX/N+dseuhvyDpm2gdWnsigR10ZIAaWr0B7uqq6vjxz/+cWy//fbRtWvXeO211yIi4vzzz3eHFACAzaLRIfaSSy6Jm266KX76059Ghw4dco/vuuuu8dvf/rZJi9tUVVVVUVlZWesPAADpa3Q7wc033xzXX399jB49Ok455ZTc48OGDYtXXnmlUdeaNGlSXH755fUe8/LLL8enPvWpxpYZERGXXnpprg0BWqLGTm039PhaxxU6p8Dj2d9st5ueH9e3g1aPWXU/3qmecxpzzPoa9Pq2MLMuHhPdu3cvdhkAm02jQ+yCBQtihx122ODx6urqWLNmTaOuddZZZ8X48ePrPWZTNlA499xzY+LEibmvKysro3///ht9PQAAWoZGh9idd945HnvssRg4cGCtx//85z/H7rvv3qhr9erVK3r16tXYEhqstLQ0SktLm+36AAAUR6ND7AUXXBDf+MY3YsGCBVFdXR1/+ctf4tVXX42bb7457rvvvuaoMSIi5s2bF8uXL4958+bF2rVrY+bMmRERscMOO0TXrl2b7XkBAGh5Gv3BrqOPPjruvffeePjhh6NLly5xwQUXxMsvvxz33ntvHH744c1RY0R8FJ533333uPDCC2PlypWx++67x+677x7PPvtssz0nAAAtU0lNTU1NsYvYXCorK6OsrCxGxdHRrqR9scsB2GQf1LwXj8f9UVFR4YNdQKuwLq993L9rjW4nWGf16tXx9ttv53byWmfAgAEbe0kAAGiQRofY2bNnxze/+c144oknaj1eU1MTJSUlsXZtfQvxAADApmt0iB0/fny0a9cu7rvvvujTp0+UlJQ0R10AAFBQo0PszJkz47nnntvoDQgAAGBTNXp1gp133jmWLl3aHLUAAECDNCjEVlZW5v5cfvnlcc4558S0adNi2bJltb5XWVnZ3PUCAEDD2gm22mqrWr2vNTU1MXr06FrH+GAXAACbS4NC7N///vfcuLy8PPr37x9t27atdUx1dXXMmzevaasDAIA6NHqzg7Zt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4os3ePzxuL+JKwQorv79+xe7BIAmtWLFiigrKyv4/ZKaj4u5zWjSpElx+eWX13vMyy+/HH/729/i9ttvj+nTp0fbtm2jvLw8Bg8eHM8//3wMHz684Lnr34l99913Y+DAgTFv3rx63xTyKisro3///vHmm29G9+7di11OMrxvjec92zjvvPNODBo0KMrLy6NHjx7FLgdgk9XU1MSKFSuib9++0aZN4c7XoobYJUuWxLJly+o9ZsiQIfGlL30p7r333igpKck9vnbt2mjbtm2ccMIJ8fvf/75Bz1dZWRllZWVRUVHhf5IN5D3bON63xvOebRzvG7ClKmo7Qa9evaJXr14fe9w111wTl1xySe7rhQsXxpgxY+K2226LvffeuzlLBACgBUqiJ3bAgAG1vu7atWtERAwdOjT69etXjJIAACiipJbY2lSlpaVx4YUXRmlpabFLSYb3bON43xrPe7ZxvG/AlqqoPbEAALAxtqg7sQAAtA5CLAAAyRFiAQBIjhALAEBytugQO2XKlNh7772jU6dO0aNHjxg3blyxS0pGVVVVDB8+PEpKSmLmzJnFLqfFKi8vj5NOOikGDx4cnTp1iqFDh8aFF14Yq1evLnZpLc4vf/nLGDRoUHTs2DH23nvvePrpp4tdUot16aWXxsiRI6Nbt27Ru3fvGDduXLz66qvFLgtgs9piQ+ydd94ZX/va1+LEE0+Mf/3rX/GPf/wjvvKVrxS7rGScc8450bdv32KX0eK98sorUV1dHb/5zW/ipZdeiquvvjquu+66+MEPflDs0lqU2267LSZOnBgXXnhhzJgxI4YNGxZjxoyJt99+u9iltUjTp0+P0047LZ566ql46KGHYs2aNfGZz3wmVq1aVezSADabLXKJrQ8//DAGDRoUF198cZx00knFLic5DzzwQEycODHuvPPO2GWXXeL555+P4cOHF7usZFxxxRXx61//Ol577bVil9Ji7L333jFy5Mj4xS9+ERER1dXV0b9//zjjjDNi0qRJRa6u5VuyZEn07t07pk+fHgcddFCxywHYLLbIO7EzZsyIBQsWRJs2bWL33XePPn36xGc/+9mYNWtWsUtr8RYvXhwTJkyIP/zhD9G5c+dil5OkioqK6NmzZ7HLaDFWr14dzz33XBx22GG5x9q0aROHHXZYPPnkk0WsLB0VFRUREf5eAVuULTLErrsDdtFFF8V5550X9913X/To0SNGjRoVy5cvL3J1LVdNTU2MHz8+TjnllBgxYkSxy0nSnDlz4tprr41vfetbxS6lxVi6dGmsXbs2tt1221qPb7vttrFo0aIiVZWO6urqOPPMM2P//fePXXfdtdjlAGw2rSrETpo0KUpKSur9s65HMSLihz/8YRxzzDGx5557xo033hglJSVxxx13FPlVbH4Nfd+uvfbaWLFiRZx77rnFLrnoGvqeZS1YsCCOOOKIOO6442LChAlFqpzW5rTTTotZs2bFrbfeWuxSADardsUuoCmdddZZMX78+HqPGTJkSLz11lsREbHzzjvnHi8tLY0hQ4bEvHnzmrPEFqmh79sjjzwSTz755AZ7tI8YMSJOOOGE+P3vf9+MVbYsDX3P1lm4cGEccsghsd9++8X111/fzNWlZZtttom2bdvG4sWLaz2+ePHi2G677YpUVRpOP/30uO++++LRRx+Nfv36FbscgM2qVYXYXr16Ra9evT72uD333DNKS0vj1VdfjQMOOCAiItasWRPl5eUxcODA5i6zxWno+3bNNdfEJZdckvt64cKFMWbMmLjtttti7733bs4SW5yGvmcRH92BPeSQQ3J3/Nu0aVUTIJusQ4cOseeee8bUqVNzy9xVV1fH1KlT4/TTTy9ucS1UTU1NnHHGGTF58uSYNm1aDB48uNglAWx2rSrENlT37t3jlFNOiQsvvDD69+8fAwcOjCuuuCIiIo477rgiV9dyDRgwoNbXXbt2jYiIoUOHugtUwIIFC2LUqFExcODAuPLKK2PJkiW577nLmDdx4sT4xje+ESNGjIi99torfv7zn8eqVavixBNPLHZpLdJpp50Wt9xyS9x9993RrVu3XO9wWVlZdOrUqcjVAWweW2SIjfhomaN27drF1772tXj//fdj7733jkceeSR69OhR7NJoRR566KGYM2dOzJkzZ4OgvwWublfQ8ccfH0uWLIkLLrggFi1aFMOHD4+//vWvG3zYi4/8+te/joiIUaNG1Xr8xhtv/Ng2F4DWYotcJxYAgLRpzgMAIDlCLAAAyRFiAQBIjhALAEByhFgAAJIjxAIAkBwhFgCA5AixAAAkR4iFJvDWW2/FV77ylfjEJz4Rbdq0iTPPPLPO4+6444741Kc+FR07dozddtst7r///s1bKAC0EkIsNIGqqqro1atXnHfeeTFs2LA6j3niiSfiv/7rv+Kkk06K559/PsaNGxfjxo2LWbNmbeZqASB9tp2FBliyZEnstttu8e1vfzt+8IMfRMRHoXTUqFHxwAMPxOjRo3PHjho1KoYPHx4///nPa13j+OOPj1WrVsV9992Xe2yfffaJ4cOHx3XXXbdZXgcAtBbuxEID9OrVK2644Ya46KKL4tlnn40VK1bE1772tTj99NNrBdj6PPnkk3HYYYfVemzMmDHx5JNPNkfJANCqtSt2AZCKI488MiZMmBAnnHBCjBgxIrp06RKXXnppg89ftGhRbLvttrUe23bbbWPRokVNXSoAtHruxEIjXHnllfHhhx/GHXfcEX/605+itLS02CUBwBZJiIVGmDt3bixcuDCqq6ujvLy8Uedut912sXjx4lqPLV68OLbbbrsmrBAAtgxCLDTQ6tWr46tf/Wocf/zx8eMf/zhOPvnkePvttxt8/r777htTp06t9dhDDz0U++67b1OXCgCtnp5YaKAf/vCHUVFREddcc0107do17r///vjmN7+ZW21g5syZERGxcuXKWLJkScycOTM6dOgQO++8c0REfOc734mDDz44rrrqqhg7dmzceuut8eyzz8b1119frJcEAMmyxBY0wLRp0+Lwww+Pv//973HAAQdERER5eXkMGzYsLrvssjj11FOjpKRkg/MGDhxYq+3gjjvuiPPOOy/Ky8tjxx13jJ/+9Kdx5JFHbq6XAQCthhALAEBy9MQCAJAcIRYAgOQIsQAAJEeIBQAgOUIsAADJEWIBAEiOEAsAQHKEWAAAkiPEAgCQHCEWAIDkCLEAACRHiAUAIDn/H9uDeh4KGghBAAAAAElFTkSuQmCC", "text/plain": [ "Figure(PyObject
)" ] @@ -593,13 +615,13 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 16, "id": "2c9052ab", "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAArEAAAL3CAYAAACd2x1cAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAABVt0lEQVR4nO3deXhU5f3//9cQSCBAAtGERQIhYt1AkEVFqAZBUVSkRT5arQgVql6itWhbcAHRVsSltS4/rMriLlJFUECLWEAqtgpERRYFDCBr2BIWCSSZ7x/+MueeYc5kksySe/J8XBeXJzNnec9Jgm/u+33et8fr9XoFAAAAWKRevAMAAAAAqookFgAAANYhiQUAAIB1SGIBAABgHZJYAAAAWIckFgAAANYhiQUAAIB1SGIBAABgHZJYAAAAWIckFqhETk6OPB6Ppk+fHnK/vLw8eTwePfDAA36vL1q0SB6Px/dn5cqVIc9z5pln+vYdMWKE637Hjh3TtGnTNGjQILVt21aNGjVSamqqcnNzdfXVV+u1117T0aNH/Y4ZNmyYXywej0eNGjVSixYt1KNHD/32t7/VnDlzVFpaGjJGU+fOneXxeJSSkqI9e/aEfVwk7dq1Sy+//LKuu+46nXLKKWrYsKFSU1N12mmn6Y477lBBQYHrsUuWLNHDDz+swYMH+77XHo9HS5curVFM5rk8Ho/q1aunpk2bqk2bNurTp4/uvvtu/e9//6vRNdw88MADvuteccUVrvu9+uqr8ng8ysvLi0oc4ar43Vm0aJHf6xWfo7LfvZoI9jsR+GfQoEFRu35tUlBQII/Ho5ycnHiHAoSlfrwDAOqaqVOn6umnnw763meffabVq1dXeo4VK1bo6quv1vfffy+Px6POnTvrnHPOUb169VRQUKB3331Xb7/9tu69916tXr1aqampfseffPLJ6t27tySptLRU+/bt06pVq/TCCy/ohRdeULt27TRlyhT17ds3ZByff/65vvrqK0nS0aNH9eqrr+p3v/tdOLchokaPHq3XXntN9erVU8eOHTVw4EAdOnRIn3/+uZ5++mlNnTpVs2bN0sUXX3zcsXfccYe+/PLLqMXWq1cvdejQQZL0448/avfu3Vq5cqUWLVqkJ554QhdeeKGmTp2q3NzcqFx/7ty5WrJkiS644IKonD9RmL8Tgbp27RrjaACEgyQWiJG2bdvqyJEjev311/X4448rJSXluH2mTp0qSerRo4c+//zzoOdZsWKFfv7zn+vw4cO64oor9NRTT6l9+/Z++xQWFupvf/ubnnjiCR09evS4JLZ3795BR7e+/PJLjRkzRh988IH69++vWbNm6corr3T9TFOmTJEknXTSSdq6daumTJkSlyQ2IyNDEyZM0E033aSTTjrJ9/rBgwc1cuRIvfnmm7r22mu1fv16NW/e3O/Yiy++WL/4xS/UtWtXde3aVb169dKmTZsiFtuIESM0bNgwv9e8Xq/mz5+vO++8U4sXL9b555+vZcuWHfd9rKnU1FQdPnxYf/rTn7Rs2bKInjvRuP1OAKi9KCcAYqRBgwb69a9/rb179+rdd9897v3Dhw/rzTff1EknnaT+/fsHPcexY8c0ZMgQHT58WIMGDdLs2bODJj6ZmZl6+OGHtXTp0qDJspvOnTtr3rx5uuaaa1RWVqYbb7xRxcXFQfc9fPiw3njjDUnSK6+8oiZNmujrr792Tb6j6amnntK4ceP8ElhJatKkiaZMmaKmTZtq7969mjt37nHHPvbYYxo/fryuvPLK446PFo/HowEDBuh///ufTjnlFO3cuTNk6Uh1/eIXv1B2drY+++wzzZo1K+LnB4B4IokFYug3v/mNJGfE1TRz5kwdOHBAQ4cOVVJSUtDjX3/9dW3cuFHJycmaPHmy6tUL/Svco0cPNWrUqEoxejwePfvss2rUqJH27dunF154Ieh+M2fOVHFxsTp27Kg+ffrommuukeSMztYWqampOvXUUyVJW7ZsiXM0/po1a6Ynn3xSkvTxxx9r+fLlET1/w4YN9eCDD0qS7rnnHpWVlVXp+H379mn8+PHq0qWLmjZtqtTUVHXq1El//vOfdfjw4eP2P3DggF544QX98pe/1CmnnKLGjRurcePG6tSpk+69917t378/Eh9L5eXlev7559WrVy81a9ZMDRo0UFZWljp37qzbb789ZA10TUyfPl0ej+e4kfUKbjWl5uter1fPP/+8unXrpsaNGys9PV2XXHKJ60h5RV2uJL399tvq3bu30tLS1LhxY/Xq1Uvz5s1zjbe0tFQvvvii8vLylJGRoZSUFLVv31633nprrftdAKqDJBaIoTPPPFPnnHOOPvroo+P+J1KR/A0fPtz1+NmzZ0uS+vfvr5YtW0YtzhNOOEGXXnqpJGnBggVB96mItyIxr/jvm2++qR9//DFqsVXVsWPHfElNq1at4htMEJdddpkyMjIkud/rmhg6dKg6duyotWvXBv3Hk5vVq1erc+fOevDBB7Vr1y717t1b/fr1U2Fhoe6//3716tVLRUVFfsd8+eWX+u1vf6ulS5eqZcuWuvLKK9W7d29t375dDz/8sHr06BGRh/9GjBihm2++WStWrFCPHj00ZMgQde3aVT/++KOeeeYZ5efn1/ga0TJ8+HCNGjVKzZo10xVXXKGWLVtqwYIF6tOnj/773/+6Hjd+/HgNGTJEkjRgwACdcsop+vTTT3XFFVcEHWU/cOCALr74Yo0cOVLLly/XWWedpYEDByolJUXPPfeczj777EofMgVqO5JYIMZuuukmlZeX+9Xffffdd/rkk090wQUX6JRTTnE99osvvpD00whrtHXr1k2S9M033xz33rfffqtPPvnEVyIhSeeff75OO+00FRUV6Z///GfU4wvXlClTtHv3bjVq1EiXXXZZvMM5jsfj8T04FOxe11S9evX08MMPS5ImTJgQ1j8wfvzxRw0cOFBbtmzRfffdp4KCAs2fP19z5szRxo0b9atf/Ur5+fn6/e9/73dcTk6OPvroI+3YsUOffPKJ3nzzTX344YfavHmzhg4dqvXr12vcuHFhx/7AAw/I6/X6jXxu3rxZ06ZNU5s2bfT9999rwYIFev311/XBBx/o22+/1erVq2vtg1ibNm3SokWLtGrVKi1cuFAzZszQ6tWr9Zvf/EYlJSUh781TTz2lZcuWaenSpXrzzTeVn5+v8ePHy+v1asyYMcftf8stt2jRokW64oortGHDBi1atEgzZ87U2rVr9be//U179uzxlQ0BtiKJBcI0fPjwkG14Fi9eHNZ5rr32WqWmpmr69Onyer2SnPKCitFMN4WFhZKkrKysGnyS8Jx44omSFHTkrCLegQMHKjMz0/d6Rfy1paTg66+/1h/+8AdJ0v33368WLVrEOaLgQt3rSLjyyiv185//XFu3btXf//73Svd/6aWXtGHDBl1xxRV66KGHlJyc7HsvNTVVzz//vLKysvTKK69o3759vvfatGmjvn37HlfmkpqaqsmTJ6t+/fqaOXNmjT7Lzp07Jf3UMSDYbMTpp5+utm3bVvm8L730kuvvdiQ9/fTT+tnPfub7OikpSX/5y18kSYsXL9axY8eCHvfggw/q3HPP9Xtt7NixSk9P17fffus3s7NmzRq98cYbat26tV5//fXj/r648847NWDAAH333XeaP39+pD4aEHN0JwDCZLZKCuaDDz7w/Q82lLS0NA0ePFivvPKKFi1apAsuuEAvv/yymjZt6psurA3Ky8sl6bj/iZeWluqll16SdHzSPXToUN1zzz1asmSJNmzYoJNPPjk2wQbxww8/6Morr9TBgwc1cODAoKNVtYXbvY6kSZMm6fzzz9ekSZP029/+1lfCEEzFA3AVdc6BmjRpou7du2vevHn6/PPPdckll/i9/+mnn+qTTz7R5s2bdfjwYd8/1pKTk1VYWKh9+/Yd1yUiXKeddpqaNm2qefPm6S9/+Yuuu+66iHR1CNViK1Lq16/vK9MxtWzZUs2bN9e+ffu0Z8+eoMl5sC4hKSkpys3N1cqVK7V161ZlZ2dLkubNmyev16vLLrtMTZs2DRpLXl6e5s2b5ytJAGxEEguEKVirJFNeXl5YSaz0U/L3yiuvaOrUqTp8+LC2bdumESNGHNcKK1BmZqa2bNmiXbt2VSX0atm9e7ckHZfszJ07Vzt27AjaRaFFixYaMGCA5syZo6lTp/pGmCrz7rvvBu3YMGLEiGolFjt27FDfvn21adMm9e/fX2+99VZEE8RgPwcnnniiHn/88Wqdz+1eR1LPnj01aNAgvfvuu3r44YdDxrpx40ZJ0g033KAbbrgh5HkrZgeknxadGDx4cKULRRQXF1c7iW3atKmmTZum4cOH67777tN9992nVq1a6bzzztOll16q6667Tk2aNKnyeWPRYqtVq1Zq0KBB0PfS0tK0b98+HTlyJOj7bqPLaWlpkuR3XMX3b8qUKZXOipjfP8A2JLFAHFx44YU6+eST9fbbb2vHjh2SKi8lkH6qU92yZUtM2litWLFCktSpUye/1yv+p3jkyBFdeOGFxx23detWST89yf3ggw+6dlow5efn+0Z3TXl5eVVOYnft2qWLLrpI3377rfr166d33323Sm3GwhEs1nbt2lUrifV6vb4HbALvdaQ9/PDDeu+99/Tss8+G7OdbMTJ86aWXVlqC0a5dO9/2iBEjtHTpUvXs2VMTJkxQ586d1bx5c1/i1rp1a23fvt03MltdgwcPVr9+/TRnzhx98skn+s9//qNZs2Zp1qxZGjdunBYsWBD1exlMxX1zU1k3kUgdWxFHly5d1Llz55D7BpYoADYhiQXioKJNz/3336+PPvpIp59+unr27FnpcVdddZXeffddffjhh9q5c2fUajx3796tDz/8UJL8poq3b9/ua+mzZ88e/ec//3E9x7Zt2/TBBx/o8ssvr/R6DzzwwHHL9VZHYWGhLrroIq1Zs0Z9+/bVnDlz1LBhwxqfN1BNkzDTvHnzfHWlgdPykXb66adr2LBhmjJlisaNG+e6Ilt2drbWrl2rm266SVdffXVY5z506JDmzZunevXqad68eWrWrNlx71f8gy0S0tPT/UaKt2zZottvv12zZ8/WqFGjwq5Rr4qK2uADBw4EfT+Si2TUREVZQa9evfTMM8/EORogeniwC4iTYcOGKTMzUyeccIJuvvnmsI65/vrrlZOTo6NHj+rWW2+tdORn+fLlVW535fV6NWrUKP3444/KyMjQTTfd5Htv+vTpKisr07nnniuv1+v6549//KOk2D7gtXv3bl100UX65ptv1LdvX7333ntV7pEba0VFRb4n/C+++GJ16dIl6tecMGGCGjVqpJdfftm1G0JFF4e33nor7PMWFRWprKxMaWlpxyWwkvTqq69GNPkPlJ2drQkTJkhS1FpsVSyGsXbt2qDvB1tMIx4qvn9z5sxxLU8AEgFJLBAnbdq00a5du7R79+6wl2pt0KCB3nrrLTVs2FCzZs3SoEGD9P333x+33969e329PEtKSsKO6auvvtKAAQM0Y8YMJSUl6dVXX/V7MKSiK8GNN94Y8jxDhw6VJL3//vsxqbnbu3ev+vbtq1WrVqlfv361PoGtWHb2nHPO0XfffadWrVq5LioRaSeddJJuv/12lZeX66mnngq6z29/+1u1a9dOM2fO1J/+9KegI487duzwi7lFixZq3ry59u/fr1deecVv388++0xjx46NSPwrV67UjBkzgv7j7L333pPkX+IQSeecc47S0tK0evXq4z7jzJkzXe9nrJ199tkaPHiwtmzZol/+8pdBF384dOiQXnvttbDr+IHaiHICwDI9evTQkiVLNGTIEL333nt6//33dfbZZys3N1f16tXTpk2b9MUXX6isrEy5ublB60GXLl3qeziptLRU+/fv16pVq3zToe3bt9eUKVPUp08f3zGLFy/W+vXrlZKSomuvvTZkjGeeeaa6du2qFStW6OWXX9Zdd90VuRsQxIgRI/TVV1/J4/EoIyNDt956a9D9Bg0apEGDBvm99uKLL+rFF1/0fb19+3ZJ0s033+xL4Fu1alXtZVtffPFFLVq0SJJUUlKi3bt3a8WKFdq7d6+kn+p+p06dGrXEK5ixY8fqhRde8GuPZWrcuLHmzp2rK664Qo8++qief/55nXXWWWrTpo0OHz6sb7/9VmvWrFFWVpZGjhwp6adWUePGjdPvf/97DR06VM8++6xyc3O1efNmffrpp/r1r3+tJUuW1HjKfdOmTbr22mvVqFEjde3aVdnZ2SotLdXXX3+tdevWKTk5WY8++miNruGmUaNGmjBhgu8zTp48WSeddJLWrFmj1atX67777tNDDz0UlWtX1bRp07R//37Nnz9fp556qjp37qz27dvL6/WqoKBAX375pY4ePao1a9bU2tZzQGVIYgEL9ejRQ99++61eeeUVzZ49WytWrNA333wjj8ejVq1a6Re/+IUGDx6swYMHB30aesOGDdqwYYOkn9r0pKenKzs7W5dccomuuOIKDRgwQPXr+//1UFEacOWVV4b1ZPnQoUO1YsUKTZkyJepJbEVC6PV6Q06B5+TkHJfE/vDDD0FXSlq9erVvuyYJ5n/+8x9f7XDFMqOdOnVS9+7ddc0118Rk4YpAzZo109ixY31lH8GceeaZ+uqrr/Tcc89p1qxZ+uqrr7Rs2TKdeOKJatOmje6++2794he/8DvmzjvvVPv27fXoo49q9erV+uabb3Taaafp2Wef1S233BKRVljnnXeeHnnkES1ZskRr1qzRypUrVb9+fbVp00a33Xabbr/9dt8yw9Fw5513KiMjQ3//+9+1cuVKffPNN+revbuefPJJdejQodYksU2bNtW//vUvzZgxQ6+++qqWL1+u/Px8paWlqVWrVrr++us1cODAuLbBA2rK441mkRIAAAAQBdTEAgAAwDoksQAAALAOSSwAAACsQxILAAAA65DEAgAAwDoksQAAALAOSSwAAACsQxILAAAA65DEAgAAwDoksQAAALAOSSwAAACsQxILAAAA65DEAgAAwDoksQAAALAOSSwAAACsQxILAAAA65DEAgAAwDoksQAAALAOSSwAAACsQxILAAAA65DEAgAAwDoksQAAALAOSSwAAACsQxILAAAA65DEAgAAwDoksQAAALAOSSwAAACsQxILAAAA65DEAgAAwDoksQAAALAOSSwAAACsQxILAAAA65DEAgAAwDoksQAAALAOSSwAAACsQxILAAAA65DEAgAAwDoksQAAALAOSSwAAACsQxILAAAA65DEAgAAwDoksQAAALAOSSwAAACsQxILAAAA65DEAgAAwDoksQAAALAOSSwAAACsQxILAAAA65DEAgAAwDoksQAAALAOSSwAAACsQxILAAAA65DEAgAAwDoksQAAALAOSSwAAACsQxILAAAA65DEAgAAwDoksQAAALAOSSwAAACsQxILAAAA65DEAgAAwDoksQAAALBO/XgHEEvl5eXatm2bmjZtKo/HE+9wAKDGvF6vDhw4oNatW6tePcYlANQddSqJ3bZtm7Kzs+MdBgBE3JYtW9SmTZt4hwEAMVOnktimTZtK+ukv+7S0tDhHAwA1V1xcrOzsbN/fbwBQV9SpJLaihCAtLY0kFkBCoUQKQF1DARUAAACsQxILAAAA65DEAgAAwDoksQAAALAOSSwAAACsQxILAAAA65DEAgAAwDoksQAAALAOSSwAAACsQxILAAAA65DEAgAAwDr14x0AAHvkjJnr2y545PI4RgIAqOsYiQUAAIB1SGIBAABgHZJYAAAAWIckFgAAANYhiQUAAIB1SGIBAABgHZJYAAAAWIckFgAAANYhiQUAAIB1SGIBAABgHZJYAAAAWIckFgAAANYhiQUAAIB16sc7AAC1R86Yub7tgkcuj2MkAACExkgsAAAArEMSCwAAAOuQxAIAAMA6JLEAAACwDg92AQiKh7wAALUZI7EAAACwDkksAAAArEMSCwAAAOuQxAIAAMA6PNgF1HHmA1wAANiCJBZAjdHJAAAQa5QTAAAAwDoksQAAALAOSSwAAACsQ00sUAfxMBcAwHaMxAIAAMA6JLEAAACwDkksAAAArEMSCwAAAOuQxAIAAMA6dCcAUC10OAAAxBMjsQAAALAOSSwAAACsQxILAAAA65DEAgAAwDoksQAAALAOSSwAAACsQxILAAAA65DEAgAAwDosdgAkIHMhgoJHLj/uNQAAbEcSCyQIklQAQF1COQEAAACsQxILAAAA65DEAgAAwDoksQAAALAOSSwAAACsQxILAAAA65DEAgAAwDoksQAAALAOSSwAAACsQxILAAAA65DEAgAAwDoksQAAALBO/XgHAKD2yxkzN94hAADgh5FYAAAAWIeRWMBi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MxI7ceJE9ejRQ02bNlVWVpYGDRqkdevWxTssAAAAxIE1SezixYt122236bPPPtOCBQt07NgxXXLJJTp06FC8Q0OM5YyZyygaAAB1nDXlBB988IHf19OnT1dWVpaWL1+uCy64IE5RAagL6IQBALWPNUlsoKKiIklSRkZGnCOpmyr+p+72P/TK/qcfzkgqo62ojcL5uazsZ55EGABqzsoktry8XHfeead69eqljh07uu5XUlKikpIS39f79u2TJP3www9KS0uLepyJrLR4t6Sf7mWo9932Md8HEk1lP/NuvzfVsX//fknS3r17I3ZOAIgnr9erAwcOqHXr1qpXz73y1eP1er0xjCsibr31Vs2fP19Lly5VmzZtXPd74IEHNGHChBhGBgAAgEjYsmVLyDzPuiR21KhRmj17tpYsWaL27duH3DfYSGxOTo56a4Dqq0G0QwWAqPtRh/RffaQtW7YwwwQgIRQXFys7O1v79+9Xenq6637WlBN4vV7dfvvtmjVrlhYtWlRpAitJKSkpSklJOe71+mqg+h6SWAD2a+BNliSlpaWRxAJIKB6PJ+T71iSxt912m15//XXNnj1bTZs21Y4dOyRJ6enpatSoUZyjAwAAQCxZ0yd28uTJKioqUl5enlq1auX7M2PGjHiHBgAAgBizZiTWstJdAAAARJE1SSxiq36rlr7t0u074hgJAADA8awpJwAAAAAqkMQCAADAOpQTIChKCOouSklqjnsIANHHSCwAAACsQxILAAAA61BOABiYBq67nzuSuIcAEH2MxAIAAMA6JLEAAACwDuUEiJt4Tt27Xbu2TANT1gAAQGiMxAIAAMA6JLEAAACwDuUEiJuaTJOb0+3VOVdtn6KPVnyB9y2W1wYAIJIYiQUAAIB1SGIBAABgHcoJYKVQU9516cn+qn7Wqt6PUOUHNTlXon9fAADRx0gsACSAjuM/jHcIABBTJLEAAACwDuUESDjhTFW7TZNX59hIdVmoznmiPS0fybKNSMZKaQIAgJFYAEgAqyb0j3cIABBTJLEAAACwDuUEiJt4TgnX5HqxnmIPdc5Y3sOks073+7r0qzVRvV4olBAAAEhiASABdBz/oeqlpEqSCh65PM7RAED0UU4AAAAA65DEAgAAwDqUEyBuamNdY6gVqiqEG3ek6lXNY6vT3susZS2rQR2rp3BftY9F9VS3nVvO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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAArEAAAL3CAYAAACd2x1cAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAABOfElEQVR4nO3deXiU1f3//9eEQEggCaSGTQJJkOLagGyyVEFAEBGxSLVaWQRcPkhL0VpwYVEr7rVSflqVRREqIrKDiiggCq2yqMiiIBEEAoGQhDUBMt8//OW+z4SZMCHL5CTPx3Xl8uTOfd9zMiH44pz3fY7H6/V6BQAAAFgkLNQdAAAAAIqKEAsAAADrEGIBAABgHUIsAAAArEOIBQAAgHUIsQAAALAOIRYAAADWIcQCAADAOoRYAAAAWIcQC5xDYmKiPB6Ppk2bVuh5nTp1ksfj0bhx43yOr1ixQh6Px/nYsGFDofe57LLLnHOHDBkS8LxTp05p6tSp6tOnjxo1aqTIyEhFRUUpOTlZt9xyi2bMmKHc3FyfawYOHOjTF4/Ho8jISNWtW1etW7fW3XffrQULFuj06dOF9tGUkpIij8ejiIgIHTp0KOjrStKBAwf01ltv6fbbb1fTpk1VvXp1RUVF6eKLL9af/vQnpaamBrx21apVeuqpp9S3b1/nZ+3xeLR69epi9cm8l8fjUVhYmKKjo9WwYUN17txZDz74oP73v/8V6zUCGTdunPO6vXr1Cnje22+/LY/Ho06dOpVKP4KV/7uzYsUKn+P538e5fveKw9/vRMGPPn36lNrrlyepqanyeDxKTEwMdVeAoISHugNAZTNlyhRNnDjR79fWrl2rzZs3n/Me69ev1y233KKdO3fK4/EoJSVFbdq0UVhYmFJTUzVv3jzNmTNHjzzyiDZv3qyoqCif65s0aaKOHTtKkk6fPq3Dhw9r06ZNev311/X666+rcePGmjx5srp06VJoP7788kt98803kqTc3Fy9/fbb+vOf/xzM21CiRo4cqRkzZigsLEyXX365evfurWPHjunLL7/UxIkTNWXKFM2dO1fdunU769o//elP+vrrr0utbx06dNBFF10kSTpx4oQOHjyoDRs2aMWKFXrhhRd0zTXXaMqUKUpOTi6V11+8eLFWrVqlq6++ulTuX1GYvxMFXXnllWXcGwDBIMQCZaRRo0Y6efKkZs6cqeeff14RERFnnTNlyhRJUuvWrfXll1/6vc/69ev129/+VsePH1evXr308ssvKykpyeec9PR0/eMf/9ALL7yg3Nzcs0Jsx44d/Y5uff311xo1apQ++OADde/eXXPnztWNN94Y8HuaPHmyJOnCCy/Unj17NHny5JCE2Li4OI0fP16DBw/WhRde6Bw/evSohg4dqnfeeUe33Xabtm/frtq1a/tc261bN91888268sordeWVV6pDhw766aefSqxvQ4YM0cCBA32Oeb1eLV26VCNGjNDKlSvVvn17rVmz5qyfY3FFRUXp+PHj+tvf/qY1a9aU6L0rmkC/EwDKL8oJgDJStWpV/fGPf1RGRobmzZt31tePHz+ud955RxdeeKG6d+/u9x6nTp1Sv379dPz4cfXp00fz58/3G3zi4+P11FNPafXq1X7DciApKSlasmSJbr31Vp05c0YDBgxQdna233OPHz+u//znP5Kk6dOnq2bNmvr2228Dhu/S9PLLL2vMmDE+AVaSatasqcmTJys6OloZGRlavHjxWdc+99xzGjt2rG688cazri8tHo9HPXv21P/+9z81bdpU+/fvL7R05HzdfPPNSkhI0Nq1azV37twSvz8AhBIhFihDd911lyR3xNU0e/ZsHTlyRP3791eVKlX8Xj9z5kz9+OOPqlatml555RWFhRX+K9y6dWtFRkYWqY8ej0eTJk1SZGSkDh8+rNdff93vebNnz1Z2drYuv/xyde7cWbfeeqskd3S2vIiKilKzZs0kSbt37w5xb3zVqlVLL730kiTpk08+0bp160r0/tWrV9fjjz8uSXr44Yd15syZIl1/+PBhjR07Vs2bN1d0dLSioqJ0xRVX6Mknn9Tx48fPOv/IkSN6/fXX9bvf/U5NmzZVjRo1VKNGDV1xxRV65JFHlJmZWRLflvLy8vTaa6+pQ4cOqlWrlqpWrao6deooJSVFw4cPL7QGujimTZsmj8dz1sh6vkA1peZxr9er1157TS1btlSNGjUUGxur6667LuBIeX5driTNmTNHHTt2VExMjGrUqKEOHTpoyZIlAft7+vRpvfHGG+rUqZPi4uIUERGhpKQk3XfffeXudwE4H4RYoAxddtllatOmjT7++OOz/ieSH/4GDRoU8Pr58+dLkrp376569eqVWj9/9atfqUePHpKkZcuW+T0nv7/5wTz/v++8845OnDhRan0rqlOnTjmhpn79+qHtjB/XX3+94uLiJAV+r4ujf//+uvzyy7V161a//3gKZPPmzUpJSdHjjz+uAwcOqGPHjuratavS09P12GOPqUOHDsrKyvK55uuvv9bdd9+t1atXq169errxxhvVsWNH7du3T0899ZRat25dIg//DRkyRPfcc4/Wr1+v1q1bq1+/frryyit14sQJ/etf/9LGjRuL/RqlZdCgQbr//vtVq1Yt9erVS/Xq1dOyZcvUuXNn/fe//w143dixY9WvXz9JUs+ePdW0aVN98cUX6tWrl99R9iNHjqhbt24aOnSo1q1bp9/85jfq3bu3IiIi9Oqrr6pFixbnfMgUKO8IsUAZGzx4sPLy8nzq73744Qd99tlnuvrqq9W0adOA13711VeSfhlhLW0tW7aUJH333Xdnfe3777/XZ5995pRISFL79u118cUXKysrS++9916p9y9YkydP1sGDBxUZGanrr78+1N05i8fjcR4c8vdeF1dYWJieeuopSdL48eOD+gfGiRMn1Lt3b+3evVuPPvqoUlNTtXTpUi1YsEA//vij/vCHP2jjxo36y1/+4nNdYmKiPv74Y6Wlpemzzz7TO++8ow8//FC7du1S//79tX37do0ZMybovo8bN05er9dn5HPXrl2aOnWqGjZsqJ07d2rZsmWaOXOmPvjgA33//ffavHlzuX0Q66efftKKFSu0adMmLV++XLNmzdLmzZt11113KScnp9D35uWXX9aaNWu0evVqvfPOO9q4caPGjh0rr9erUaNGnXX+vffeqxUrVqhXr17asWOHVqxYodmzZ2vr1q36xz/+oUOHDjllQ4CtCLFAkAYNGlToMjwrV64M6j633XaboqKiNG3aNHm9XklueUH+aGYg6enpkqQ6deoU4zsJzgUXXCBJfkfO8vvbu3dvxcfHO8fz+19eSgq+/fZb/fWvf5UkPfbYY6pbt26Ie+RfYe91Sbjxxhv129/+Vnv27NE///nPc57/5ptvaseOHerVq5eeeOIJVatWzflaVFSUXnvtNdWpU0fTp0/X4cOHna81bNhQXbp0OavMJSoqSq+88orCw8M1e/bsYn0v+/fvl/TLigH+ZiMuueQSNWrUqMj3ffPNNwP+bpekiRMn6te//rXzeZUqVfT3v/9dkrRy5UqdOnXK73WPP/642rZt63Ns9OjRio2N1ffff+8zs7Nlyxb95z//UYMGDTRz5syz/r4YMWKEevbsqR9++EFLly4tqW8NKHOsTgAEyVwqyZ8PPvjA+R9sYWJiYtS3b19Nnz5dK1as0NVXX6233npL0dHRznRheZCXlydJZ/1P/PTp03rzzTclnR26+/fvr4cfflirVq3Sjh071KRJk7LprB8///yzbrzxRh09elS9e/f2O1pVXgR6r0vSM888o/bt2+uZZ57R3Xff7ZQw+JP/AFx+nXNBNWvWVKtWrbRkyRJ9+eWXuu6663y+/sUXX+izzz7Trl27dPz4cecfa9WqVVN6eroOHz581ioRwbr44osVHR2tJUuW6O9//7tuv/32ElnVobAltkpKeHi4U6ZjqlevnmrXrq3Dhw/r0KFDfsO5v1VCIiIilJycrA0bNmjPnj1KSEiQJC1ZskRer1fXX3+9oqOj/falU6dOWrJkiVOSANiIEAsEyd9SSaZOnToFFWKlX8Lf9OnTNWXKFB0/flx79+7VkCFDzloKq6D4+Hjt3r1bBw4cKErXz8vBgwcl6ayws3jxYqWlpfldRaFu3brq2bOnFixYoClTpjgjTOcyb948vys2DBky5LyCRVpamrp06aKffvpJ3bt317vvvluiAdHfn4MLLrhAzz///HndL9B7XZLatWunPn36aN68eXrqqacK7euPP/4oSbrzzjt15513Fnrf/NkB6ZdNJ/r27XvOjSKys7PPO8RGR0dr6tSpGjRokB599FE9+uijql+/vq666ir16NFDt99+u2rWrFnk+5bFElv169dX1apV/X4tJiZGhw8f1smTJ/1+PdDockxMjCT5XJf/85s8efI5Z0XMnx9gG0IsEALXXHONmjRpojlz5igtLU3SuUsJpF/qVHfv3l0my1itX79eknTFFVf4HM//n+LJkyd1zTXXnHXdnj17JP3yJPfjjz8ecKUF08aNG53RXVOnTp2KHGIPHDiga6+9Vt9//726du2qefPmFWmZsWD462vjxo3PK8R6vV7nAZuC73VJe+qpp7Rw4UJNmjSp0PV880eGe/Tocc4SjMaNGzvtIUOGaPXq1WrXrp3Gjx+vlJQU1a5d2wluDRo00L59+5yR2fPVt29fde3aVQsWLNBnn32mzz//XHPnztXcuXM1ZswYLVu2rNTfS3/y37dAzrWaSEldm9+P5s2bKyUlpdBzC5YoADYhxAIhkL9Mz2OPPaaPP/5Yl1xyidq1a3fO62666SbNmzdPH374ofbv319qNZ4HDx7Uhx9+KEk+U8X79u1zlvQ5dOiQPv/884D32Lt3rz744APdcMMN53y9cePGnbVd7/lIT0/Xtddeqy1btqhLly5asGCBqlevXuz7FlTcEGZasmSJU1dacFq+pF1yySUaOHCgJk+erDFjxgTckS0hIUFbt27V4MGDdcsttwR172PHjmnJkiUKCwvTkiVLVKtWrbO+nv8PtpIQGxvrM1K8e/duDR8+XPPnz9f9998fdI16UeTXBh85csTv10tyk4ziyC8r6NChg/71r3+FuDdA6eHBLiBEBg4cqPj4eP3qV7/SPffcE9Q1d9xxhxITE5Wbm6v77rvvnCM/69atK/JyV16vV/fff79OnDihuLg4DR482PnatGnTdObMGbVt21Zerzfgx0MPPSSpbB/wOnjwoK699lp999136tKlixYuXFjkNXLLWlZWlvOEf7du3dS8efNSf83x48crMjJSb731VsDVEPJXcXj33XeDvm9WVpbOnDmjmJiYswKsJL399tslGv4LSkhI0Pjx4yWp1JbYyt8MY+vWrX6/7m8zjVDI//ktWLAgYHkCUBEQYoEQadiwoQ4cOKCDBw8GvVVr1apV9e6776p69eqaO3eu+vTpo507d551XkZGhrOWZ05OTtB9+uabb9SzZ0/NmjVLVapU0dtvv+3zYEj+qgQDBgwo9D79+/eXJC1atKhMau4yMjLUpUsXbdq0SV27di33ATZ/29k2bdrohx9+UP369QNuKlHSLrzwQg0fPlx5eXl6+eWX/Z5z9913q3Hjxpo9e7b+9re/+R15TEtL8+lz3bp1Vbt2bWVmZmr69Ok+565du1ajR48ukf5v2LBBs2bN8vuPs4ULF0ryLXEoSW3atFFMTIw2b9581vc4e/bsgO9nWWvRooX69u2r3bt363e/+53fzR+OHTumGTNmBF3HD5RHlBMAlmndurVWrVqlfv36aeHChVq0aJFatGih5ORkhYWF6aefftJXX32lM2fOKDk52W896OrVq52Hk06fPq3MzExt2rTJmQ5NSkrS5MmT1blzZ+ealStXavv27YqIiNBtt91WaB8vu+wyXXnllVq/fr3eeustPfDAAyX3BvgxZMgQffPNN/J4PIqLi9N9993n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qamqXbt2qLsDAMXm9Xp15MgRNWjQQGFhgStfQxpi09PTdejQoULPSU5O1u9//3stXLhQHo/HOX7mzBlVqVJFd9xxh958882gXi87O1uxsbHKysrif5JB4j07P7xvRcd7dn543wBUViEtJ4iPj1d8fPw5z3v55Zf15JNPOp/v3btX3bt316xZs9S2bdvS7CIAAADKIStqYhs1auTzec2aNSVJTZo0UcOGDUPRJQAAAISQVUtsFVdERITGjh2riIiIUHfFGrxn54f3reh4z84P7xuAyiqkNbEAAADA+ahUI7EAAACoGAixAAAAsA4hFgAAANYhxAIAAMA6lTrELl68WG3btlVkZKRq166tPn36hLpL1sjJyVHz5s3l8Xi0cePGUHen3EpNTdXgwYOVlJSkyMhINWnSRGPHjlVubm6ou1buTJo0SYmJiapevbratm2r//3vf6HuUrk1YcIEtW7dWtHR0apTp4769Omjbdu2hbpbAFCmKm2InTNnju68804NGjRIX3/9tT7//HPdfvvtoe6WNR566CE1aNAg1N0o97Zu3aq8vDz9+9//1nfffad//OMfevXVV/Xwww+HumvlyqxZszRy5EiNHTtW69evV0pKirp3764DBw6Eumvl0sqVKzVs2DCtXbtWy5Yt06lTp3Tdddfp2LFjoe4aAJSZSrnE1unTp5WYmKjx48dr8ODBoe6OdZYuXaqRI0dqzpw5uuyyy7RhwwY1b9481N2yxnPPPadXXnlFP/74Y6i7Um60bdtWrVu31r/+9S9JUl5enhISEjR8+HCNGjUqxL0r/9LT01WnTh2tXLlSV199dai7AwBlolKOxK5fv1579uxRWFiYWrRoofr16+v666/Xpk2bQt21cm///v0aOnSopk+frqioqFB3x0pZWVmKi4sLdTfKjdzcXK1bt05du3Z1joWFhalr165as2ZNCHtmj6ysLEnizxWASqVShtj8EbBx48bp0Ucf1aJFi1S7dm116tRJGRkZIe5d+eX1ejVw4EDde++9atWqVai7Y6Xt27dr4sSJuueee0LdlXLj4MGDOnPmjOrWretzvG7dukpLSwtRr+yRl5enESNGqEOHDrr88stD3R0AKDMVKsSOGjVKHo+n0I/8GkVJeuSRR9S3b1+1bNlSU6dOlcfj0ezZs0P8XZS9YN+3iRMn6siRIxo9enSouxxywb5npj179qhHjx7q16+fhg4dGqKeo6IZNmyYNm3apHfeeSfUXQGAMhUe6g6UpAceeEADBw4s9Jzk5GTt27dPknTppZc6xyMiIpScnKxdu3aVZhfLpWDft08++URr1qw5a4/2Vq1a6Y477tCbb75Zir0sX4J9z/Lt3btXnTt3Vvv27fXaa6+Vcu/scsEFF6hKlSrav3+/z/H9+/erXr16IeqVHe6//34tWrRIq1atUsOGDUPdHQAoUxUqxMbHxys+Pv6c57Vs2VIRERHatm2bOnbsKEk6deqUUlNT1bhx49LuZrkT7Pv28ssv68knn3Q+37t3r7p3765Zs2apbdu2pdnFcifY90z6ZQS2c+fOzoh/WFiFmgAptmrVqqlly5Zavny5s8xdXl6eli9frvvvvz+0nSunvF6vhg8frrlz52rFihVKSkoKdZcAoMxVqBAbrJiYGN17770aO3asEhIS1LhxYz333HOSpH79+oW4d+VXo0aNfD6vWbOmJKlJkyaMAgWwZ88ederUSY0bN9bzzz+v9PR052uMMrpGjhypAQMGqFWrVmrTpo1eeuklHTt2TIMGDQp118qlYcOGaebMmZo/f76io6Od2uHY2FhFRkaGuHcAUDYqZYiVflnmKDw8XHfeeadOnDihtm3b6pNPPlHt2rVD3TVUIMuWLdP27du1ffv2s4J+JVzdLqBbb71V6enpGjNmjNLS0tS8eXN98MEHZz3shV+88sorkqROnTr5HJ86deo5y1wAoKKolOvEAgAAwG4U5wEAAMA6hFgAAABYhxALAAAA6xBiAQAAYB1CLAAAAKxDiAUAAIB1CLEAAACwDiEWAAAA1iHEAiVg3759uv322/XrX/9aYWFhGjFihN/zZs+erYsvvljVq1fXFVdcoSVLlpRtRwEAqCAIsUAJyMnJUXx8vB599FGlpKT4PeeLL77QH/7wBw0ePFgbNmxQnz591KdPH23atKmMewsAgP3YdhYIQnp6uq644gr96U9/0sMPPyzpl1DaqVMnLV26VF26dHHO7dSpk5o3b66XXnrJ5x633nqrjh07pkWLFjnHrrrqKjVv3lyvvvpqmXwfAABUFIzEAkGIj4/XlClTNG7cOH311Vc6cuSI7rzzTt1///0+AbYwa9asUdeuXX2Ode/eXWvWrCmNLgMAUKGFh7oDgC169uypoUOH6o477lCrVq1Uo0YNTZgwIejr09LSVLduXZ9jdevWVVpaWkl3FQCACo+RWKAInn/+eZ0+fVqzZ8/WjBkzFBEREeouAQBQKRFigSLYsWOH9u7dq7y8PKWmphbp2nr16mn//v0+x/bv36969eqVYA8BAKgcCLFAkHJzc/XHP/5Rt956q5544gkNGTJEBw4cCPr6du3aafny5T7Hli1bpnbt2pV0VwEAqPCoiQWC9MgjjygrK0svv/yyatasqSVLluiuu+5yVhvYuHGjJOno0aNKT0/Xxo0bVa1aNV166aWSpD//+c+65ppr9MILL+iGG27QO++8o6+++kqvvfZaqL4lAACsxRJbQBBWrFihbt266dNPP1XHjh0lSampqUpJSdHTTz+t++67Tx6P56zrGjdu7FN2MHv2bD366KNKTU1V06ZN9eyzz6pnz55l9W0AAFBhEGIBAABgHWpiAQAAYB1CLAAAAKxDiAUAAIB1CLEAAACwDiEWAAAA1iHEAgAAwDqEWAAAAFiHEAsAAADrEGIBAABgHUIsAAAArEOIBQAAgHUIsQAAALDO/wN6ia7y6q6icAAAAABJRU5ErkJggg==", "text/plain": [ "Figure(PyObject
)" ] @@ -634,6 +656,13 @@ "id": "843becb3", "metadata": {}, "source": [] + }, + { + "attachments": {}, + "cell_type": "markdown", + "id": "91baadc8", + "metadata": {}, + "source": [] } ], "metadata": { diff --git a/src/abstractmcmc.jl b/src/abstractmcmc.jl index 430874c2..7f0e8c1d 100644 --- a/src/abstractmcmc.jl +++ b/src/abstractmcmc.jl @@ -13,7 +13,10 @@ struct HMCState{ TMetric<:AbstractMetric, TKernel<:AbstractMCMCKernel, TAdapt<:Adaptation.AbstractAdaptor, + TV<:AbstractVarInfo, } + "Current Var Info" + vi::TV "Index of current iteration." i::Int "Current [`Transition`](@ref)." @@ -38,15 +41,11 @@ function AbstractMCMC.step( # Unpack model ctxt = model.context vi = DynamicPPL.VarInfo(model, ctxt) - logdensityfunction = DynamicPPL.LogDensityFunction(vi, model, ctxt) + vi_t = DynamicPPL.link!!(vi, model) + logdensityfunction = DynamicPPL.LogDensityFunction(vi_t, model, ctxt) logdensityproblem = LogDensityProblemsAD.ADgradient(logdensityfunction) logdensitymodel = AbstractMCMC.LogDensityModel(logdensityproblem) - # We will need to implement this but it is going to be - # Interesting how to plug the transforms along the sampling - # processes - # vi_t = Turing.link!!(vi, model) - # Define metric if spl.metric == nothing d = LogDensityProblems.dimension(logdensityproblem) @@ -63,7 +62,7 @@ function AbstractMCMC.step( # Find good eps if not provided one if iszero(spl.alg.ϵ) # Extract parameters. - theta = vi[spl] + theta = vi_t[spl] ϵ = find_good_stepsize(rng, hamiltonian, theta) println(string("Found initial step size ", ϵ)) else @@ -93,21 +92,25 @@ function AbstractMCMC.step( end if init_params == nothing - init_params = vi[DynamicPPL.SampleFromPrior()] + init_params = vi_t[DynamicPPL.SampleFromPrior()] + else + init_params = init_params + # We have to think of a way of transforming the initial parameters + # init_params = DynamicPPL.link!!() end # Get an initial sample. h, t = AdvancedHMC.sample_init(rng, hamiltonian, init_params) # Compute next transition and state. - state = HMCState(0, t, h.metric, kernel, adaptor, hamiltonian) + state = HMCState(vi, 0, t, h.metric, kernel, adaptor, hamiltonian) # Take actual first step. return AbstractMCMC.step( rng, model, spl, state; - n_adapts = n_adapts, + n_adapts=n_adapts, kwargs...) end @@ -116,10 +119,9 @@ function AbstractMCMC.step( model::AbstractMCMC.AbstractModel, spl::AbstractMCMC.AbstractSampler, state::HMCState; - nadapts::Int = 0, + nadapts::Int=0, kwargs..., ) - # Get step size @debug "current ϵ" getstepsize(spl, state) @@ -130,6 +132,8 @@ function AbstractMCMC.step( κ = state.κ metric = state.metric h = state.hamiltonian + vi = state.vi + vi_t = DynamicPPL.link!!(vi, model) # Make new transition. t = transition(rng, h, κ, t_old.z) @@ -139,11 +143,17 @@ function AbstractMCMC.step( h, κ, isadapted = adapt!(h, κ, adaptor, i, nadapts, t.z.θ, tstat.acceptance_rate) tstat = merge(tstat, (is_adapt = isadapted,)) + # Convert variables back + vii_t = DynamicPPL.unflatten(vi_t, t.z.θ) + vii = DynamicPPL.invlink!!(vii_t, model) + θ = vii[spl] + zz = phasepoint(rng, θ, h) + # Compute next transition and state. - newstate = HMCState(i, t, h.metric, κ, adaptor, h) + newstate = HMCState(vii, i, t, h.metric, κ, adaptor, h) # Return `Transition` with additional stats added. - return Transition(t.z, tstat), newstate + return Transition(zz, tstat), newstate end ################ From 3684a1e10c828af6ffe5f7fd6cdce98626191c6c Mon Sep 17 00:00:00 2001 From: jaimerz Date: Tue, 20 Jun 2023 17:30:29 +0100 Subject: [PATCH 22/27] constructors for tors PR --- src/abstractmcmc.jl | 187 +++++++++++++++++++++++++++++++------------- src/constructors.jl | 14 ++-- 2 files changed, 140 insertions(+), 61 deletions(-) diff --git a/src/abstractmcmc.jl b/src/abstractmcmc.jl index 7f0e8c1d..4692050e 100644 --- a/src/abstractmcmc.jl +++ b/src/abstractmcmc.jl @@ -13,10 +13,7 @@ struct HMCState{ TMetric<:AbstractMetric, TKernel<:AbstractMCMCKernel, TAdapt<:Adaptation.AbstractAdaptor, - TV<:AbstractVarInfo, } - "Current Var Info" - vi::TV "Index of current iteration." i::Int "Current [`Transition`](@ref)." @@ -27,44 +24,147 @@ struct HMCState{ κ::TKernel "Current [`AbstractAdaptor`](@ref)." adaptor::TAdapt - "Current [`Hamiltonian`](@ref)." - hamiltonian::Hamiltonian +end + +""" + $(TYPEDSIGNATURES) + +A convenient wrapper around `AbstractMCMC.sample` avoiding explicit construction of [`HMCSampler`](@ref). +""" +function AbstractMCMC.sample( + model::LogDensityModel, + kernel::AbstractMCMCKernel, + metric::AbstractMetric, + adaptor::AbstractAdaptor, + N::Integer; + kwargs..., +) + return AbstractMCMC.sample( + Random.GLOBAL_RNG, + model, + kernel, + metric, + adaptor, + N; + kwargs..., + ) +end + +function AbstractMCMC.sample( + rng::Random.AbstractRNG, + model::LogDensityModel, + kernel::AbstractMCMCKernel, + metric::AbstractMetric, + adaptor::AbstractAdaptor, + N::Integer; + progress = true, + verbose = false, + callback = nothing, + kwargs..., +) + sampler = HMCSampler(kernel, metric, adaptor) + if callback === nothing + callback = HMCProgressCallback(N, progress = progress, verbose = verbose) + progress = false # don't use AMCMC's progress-funtionality + end + + return AbstractMCMC.mcmcsample( + rng, + model, + sampler, + N; + progress = progress, + verbose = verbose, + callback = callback, + kwargs..., + ) +end + +function AbstractMCMC.sample( + model::LogDensityModel, + kernel::AbstractMCMCKernel, + metric::AbstractMetric, + adaptor::AbstractAdaptor, + parallel::AbstractMCMC.AbstractMCMCEnsemble, + N::Integer, + nchains::Integer; + kwargs..., +) + return AbstractMCMC.sample( + Random.GLOBAL_RNG, + model, + kernel, + metric, + adaptor, + N, + nchains; + kwargs..., + ) +end + +function AbstractMCMC.sample( + rng::Random.AbstractRNG, + model::LogDensityModel, + kernel::AbstractMCMCKernel, + metric::AbstractMetric, + adaptor::AbstractAdaptor, + parallel::AbstractMCMC.AbstractMCMCEnsemble, + N::Integer, + nchains::Integer; + progress = true, + verbose = false, + callback = nothing, + kwargs..., +) + sampler = HMCSampler(kernel, metric, adaptor) + if callback === nothing + callback = HMCProgressCallback(N, progress = progress, verbose = verbose) + progress = false # don't use AMCMC's progress-funtionality + end + + return AbstractMCMC.mcmcsample( + rng, + model, + sampler, + parallel, + N, + nchains; + progress = progress, + verbose = verbose, + callback = callback, + kwargs..., + ) end function AbstractMCMC.step( rng::AbstractRNG, - model::AbstractMCMC.AbstractModel, + model::AbstractMCMC.LogDensityModel, spl::AbstractMCMC.AbstractSampler; init_params = nothing, kwargs..., ) # Unpack model - ctxt = model.context - vi = DynamicPPL.VarInfo(model, ctxt) - vi_t = DynamicPPL.link!!(vi, model) - logdensityfunction = DynamicPPL.LogDensityFunction(vi_t, model, ctxt) - logdensityproblem = LogDensityProblemsAD.ADgradient(logdensityfunction) - logdensitymodel = AbstractMCMC.LogDensityModel(logdensityproblem) + logdensity = model.logdensity + vi = logdensity.varinfo # Define metric if spl.metric == nothing - d = LogDensityProblems.dimension(logdensityproblem) + d = LogDensityProblems.dimension(logdensity) metric = DiagEuclideanMetric(d) else metric = spl.metric end # Construct the hamiltonian using the initial metric - hamiltonian = Hamiltonian(metric, logdensitymodel) + hamiltonian = Hamiltonian(metric, model) # Define integration algorithm if spl.integrator == nothing # Find good eps if not provided one if iszero(spl.alg.ϵ) # Extract parameters. - theta = vi_t[spl] - ϵ = find_good_stepsize(rng, hamiltonian, theta) - println(string("Found initial step size ", ϵ)) + ϵ = find_good_stepsize(rng, hamiltonian, init_params) + @info string("Found initial step size ", ϵ) else ϵ = spl.alg.ϵ end @@ -74,13 +174,13 @@ function AbstractMCMC.step( end # Make kernel - kernel = make_kernel(spl.alg, integrator) + κ = make_kernel(spl.alg, integrator) # Make adaptor if spl.adaptor == nothing - if typeof(spl.alg) <: AdvancedHMC.AdaptiveHamiltonian + if typeof(spl.alg) <: AdaptiveHamiltonian adaptor = StanHMCAdaptor(MassMatrixAdaptor(metric), - StepSizeAdaptor(spl.alg.TAP, integrator)) + StepSizeAdaptor(spl.alg.δ, integrator)) n_adapts = spl.alg.n_adapts else adaptor = NoAdaptation() @@ -91,49 +191,33 @@ function AbstractMCMC.step( n_adapts = kwargs[:n_adapts] end - if init_params == nothing - init_params = vi_t[DynamicPPL.SampleFromPrior()] - else - init_params = init_params - # We have to think of a way of transforming the initial parameters - # init_params = DynamicPPL.link!!() - end - # Get an initial sample. h, t = AdvancedHMC.sample_init(rng, hamiltonian, init_params) # Compute next transition and state. - state = HMCState(vi, 0, t, h.metric, kernel, adaptor, hamiltonian) + state = HMCState(0, t, metric, κ, adaptor) + # Take actual first step. - return AbstractMCMC.step( - rng, - model, - spl, - state; - n_adapts=n_adapts, - kwargs...) + return AbstractMCMC.step(rng, model, spl, state; kwargs...) end function AbstractMCMC.step( rng::AbstractRNG, - model::AbstractMCMC.AbstractModel, + model::LogDensityModel, spl::AbstractMCMC.AbstractSampler, state::HMCState; - nadapts::Int=0, + nadapts::Int = 0, kwargs..., -) - # Get step size - @debug "current ϵ" getstepsize(spl, state) - +) # Compute transition. i = state.i + 1 t_old = state.transition adaptor = state.adaptor κ = state.κ metric = state.metric - h = state.hamiltonian - vi = state.vi - vi_t = DynamicPPL.link!!(vi, model) + + # Reconstruct hamiltonian. + h = Hamiltonian(metric, model) # Make new transition. t = transition(rng, h, κ, t_old.z) @@ -143,19 +227,14 @@ function AbstractMCMC.step( h, κ, isadapted = adapt!(h, κ, adaptor, i, nadapts, t.z.θ, tstat.acceptance_rate) tstat = merge(tstat, (is_adapt = isadapted,)) - # Convert variables back - vii_t = DynamicPPL.unflatten(vi_t, t.z.θ) - vii = DynamicPPL.invlink!!(vii_t, model) - θ = vii[spl] - zz = phasepoint(rng, θ, h) - # Compute next transition and state. - newstate = HMCState(vii, i, t, h.metric, κ, adaptor, h) + newstate = HMCState(i, t, h.metric, κ, adaptor) # Return `Transition` with additional stats added. - return Transition(zz, tstat), newstate + return Transition(t.z, tstat), newstate end + ################ ### Callback ### ################ @@ -233,4 +312,4 @@ function (cb::HMCProgressCallback)(rng, model, spl, t, state, i; nadapts = 0, kw elseif verbose && isadapted && i == nadapts @info "Finished $nadapts adapation steps" adaptor κ.τ.integrator metric end -end +end \ No newline at end of file diff --git a/src/constructors.jl b/src/constructors.jl index f5005cc1..ed3812c9 100644 --- a/src/constructors.jl +++ b/src/constructors.jl @@ -66,7 +66,7 @@ Arguments: """ struct NUTS_alg <: AdaptiveHamiltonian n_adapts::Int # number of samples with adaption for ϵ - TAP::Float64 # target accept rate + δ::Float64 # target accept rate max_depth::Int # maximum tree depth Δ_max::Float64 # maximum error ϵ::Float64 # (initial) step size @@ -74,11 +74,11 @@ end function NUTS( n_adapts::Int, - TAP::Float64; + δ::Float64; max_depth::Int=10, Δ_max::Float64=1000.0, ϵ::Float64=0.0) - return HMCSampler(NUTS_alg(n_adapts, TAP, max_depth, Δ_max, ϵ)) + return HMCSampler(NUTS_alg(n_adapts, δ, max_depth, Δ_max, ϵ)) end ####### @@ -153,17 +153,17 @@ For more information, please view the following paper ([arXiv link](https://arxi """ struct HMCDA_alg <: AdaptiveHamiltonian n_adapts :: Int # number of samples with adaption for ϵ - TAP :: Float64 # target accept rate + δ :: Float64 # target accept rate λ :: Float64 # target leapfrog length ϵ :: Float64 # (initial) step size end function HMCDA( n_adapts::Int, - TAP::Float64, + δ::Float64, λ::Float64; ϵ::Float64=0.0) - return HMCSampler(HMCDA_alg(n_adapts, TAP, λ, ϵ)) + return HMCSampler(HMCDA_alg(n_adapts, δ, λ, ϵ)) end ############ @@ -172,7 +172,7 @@ end function makea_daptor(alg::AdaptiveHamiltonian, metric, integrator) return StanHMCAdaptor(MassMatrixAdaptor(metric, integrator), - StepSizeAdaptor(alg.TAP, integrator)) + StepSizeAdaptor(alg.δ, integrator)) end ########### From 62c20966a75675cd04d8f217645e0eab07af3424 Mon Sep 17 00:00:00 2001 From: jaimerz Date: Tue, 20 Jun 2023 17:41:59 +0100 Subject: [PATCH 23/27] constructors for tors PR --- src/constructors.jl | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/constructors.jl b/src/constructors.jl index ed3812c9..b3b5f8b5 100644 --- a/src/constructors.jl +++ b/src/constructors.jl @@ -19,21 +19,20 @@ and `adaptor` after sampling. To access the updated fields use the resulting [`HMCState`](@ref). """ -struct HMCSampler{I,K,M,A} <: AbstractMCMC.AbstractSampler +Base.@kwdef struct HMCSampler{I,K,M,A} <: AbstractMCMC.AbstractSampler alg::SamplingAlgorithm "[`integrator`](@ref)." - integrator::I + integrator::I=nothing "[`AbstractMCMCKernel`](@ref)." - kernel::K + kernel::K=nothing "[`AbstractMetric`](@ref)." - metric::M + metric::M=nothing "[`AbstractAdaptor`](@ref)." - adaptor::A + adaptor::A=nothing end # Basic use -HMCSampler(algorithm) = HMCSampler(algorithm, nothing, nothing, nothing, nothing) -# Expert use -HMCSampler(integrator, kernel, metric, adaptor) = HMCSampler(Custom_alg, integrator, kernel, metric, adaptor) +HMCSampler(algorithm; kwargs...) = HMCSampler(algorithm; kwargs...) +HMCSampler(; kwargs...) = HMCSampler(Custom_alg(); kwargs...) ########## # Custom # From 1893e3f467902b14eb10ceb4bc8235c8d5e6467e Mon Sep 17 00:00:00 2001 From: jaimerz Date: Wed, 21 Jun 2023 10:10:13 +0100 Subject: [PATCH 24/27] no sampling needed anymore --- src/abstractmcmc.jl | 110 -------------------------------------------- src/constructors.jl | 12 ++--- 2 files changed, 6 insertions(+), 116 deletions(-) diff --git a/src/abstractmcmc.jl b/src/abstractmcmc.jl index 4692050e..c645b516 100644 --- a/src/abstractmcmc.jl +++ b/src/abstractmcmc.jl @@ -26,116 +26,6 @@ struct HMCState{ adaptor::TAdapt end -""" - $(TYPEDSIGNATURES) - -A convenient wrapper around `AbstractMCMC.sample` avoiding explicit construction of [`HMCSampler`](@ref). -""" -function AbstractMCMC.sample( - model::LogDensityModel, - kernel::AbstractMCMCKernel, - metric::AbstractMetric, - adaptor::AbstractAdaptor, - N::Integer; - kwargs..., -) - return AbstractMCMC.sample( - Random.GLOBAL_RNG, - model, - kernel, - metric, - adaptor, - N; - kwargs..., - ) -end - -function AbstractMCMC.sample( - rng::Random.AbstractRNG, - model::LogDensityModel, - kernel::AbstractMCMCKernel, - metric::AbstractMetric, - adaptor::AbstractAdaptor, - N::Integer; - progress = true, - verbose = false, - callback = nothing, - kwargs..., -) - sampler = HMCSampler(kernel, metric, adaptor) - if callback === nothing - callback = HMCProgressCallback(N, progress = progress, verbose = verbose) - progress = false # don't use AMCMC's progress-funtionality - end - - return AbstractMCMC.mcmcsample( - rng, - model, - sampler, - N; - progress = progress, - verbose = verbose, - callback = callback, - kwargs..., - ) -end - -function AbstractMCMC.sample( - model::LogDensityModel, - kernel::AbstractMCMCKernel, - metric::AbstractMetric, - adaptor::AbstractAdaptor, - parallel::AbstractMCMC.AbstractMCMCEnsemble, - N::Integer, - nchains::Integer; - kwargs..., -) - return AbstractMCMC.sample( - Random.GLOBAL_RNG, - model, - kernel, - metric, - adaptor, - N, - nchains; - kwargs..., - ) -end - -function AbstractMCMC.sample( - rng::Random.AbstractRNG, - model::LogDensityModel, - kernel::AbstractMCMCKernel, - metric::AbstractMetric, - adaptor::AbstractAdaptor, - parallel::AbstractMCMC.AbstractMCMCEnsemble, - N::Integer, - nchains::Integer; - progress = true, - verbose = false, - callback = nothing, - kwargs..., -) - sampler = HMCSampler(kernel, metric, adaptor) - if callback === nothing - callback = HMCProgressCallback(N, progress = progress, verbose = verbose) - progress = false # don't use AMCMC's progress-funtionality - end - - return AbstractMCMC.mcmcsample( - rng, - model, - sampler, - parallel, - N, - nchains; - progress = progress, - verbose = verbose, - callback = callback, - kwargs..., - ) -end - function AbstractMCMC.step( rng::AbstractRNG, model::AbstractMCMC.LogDensityModel, diff --git a/src/constructors.jl b/src/constructors.jl index b3b5f8b5..af6cedb9 100644 --- a/src/constructors.jl +++ b/src/constructors.jl @@ -65,7 +65,7 @@ Arguments: """ struct NUTS_alg <: AdaptiveHamiltonian n_adapts::Int # number of samples with adaption for ϵ - δ::Float64 # target accept rate + δ::Float64 # target accept rate max_depth::Int # maximum tree depth Δ_max::Float64 # maximum error ϵ::Float64 # (initial) step size @@ -151,17 +151,17 @@ For more information, please view the following paper ([arXiv link](https://arxi Research 15, no. 1 (2014): 1593-1623. """ struct HMCDA_alg <: AdaptiveHamiltonian - n_adapts :: Int # number of samples with adaption for ϵ - δ :: Float64 # target accept rate - λ :: Float64 # target leapfrog length - ϵ :: Float64 # (initial) step size + n_adapts::Int # number of samples with adaption for ϵ + δ::Float64 # target accept rate + λ::Float64 # target leapfrog length + ϵ::Float64 # (initial) step size end function HMCDA( n_adapts::Int, δ::Float64, λ::Float64; - ϵ::Float64=0.0) + ϵ::Float64=0.0) return HMCSampler(HMCDA_alg(n_adapts, δ, λ, ϵ)) end From 1af622cd1854f1bbf629015fe303c9aef58828fb Mon Sep 17 00:00:00 2001 From: jaimerz Date: Wed, 21 Jun 2023 11:17:21 +0100 Subject: [PATCH 25/27] no Dynamic PPL --- Project.toml | 22 ++++++++++------------ src/AdvancedHMC.jl | 1 - src/constructors.jl | 19 ++++++++----------- 3 files changed, 18 insertions(+), 24 deletions(-) diff --git a/Project.toml b/Project.toml index 0ea0b2fe..ca096669 100644 --- a/Project.toml +++ b/Project.toml @@ -6,12 +6,10 @@ version = "0.4.6" AbstractMCMC = "80f14c24-f653-4e6a-9b94-39d6b0f70001" ArgCheck = "dce04be8-c92d-5529-be00-80e4d2c0e197" DocStringExtensions = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" -DynamicPPL = "366bfd00-2699-11ea-058f-f148b4cae6d8" InplaceOps = "505f98c9-085e-5b2c-8e89-488be7bf1f34" LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" LogDensityProblems = "6fdf6af0-433a-55f7-b3ed-c6c6e0b8df7c" LogDensityProblemsAD = "996a588d-648d-4e1f-a8f0-a84b347e47b1" -MCMCChains = "c7f686f2-ff18-58e9-bc7b-31028e88f75d" ProgressMeter = "92933f4c-e287-5a05-a399-4b506db050ca" Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" Requires = "ae029012-a4dd-5104-9daa-d747884805df" @@ -21,16 +19,6 @@ Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" StatsBase = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" StatsFuns = "4c63d2b9-4356-54db-8cca-17b64c39e42c" -[weakdeps] -CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" -MCMCChains = "c7f686f2-ff18-58e9-bc7b-31028e88f75d" -OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" - -[extensions] -AdvancedHMCCUDAExt = "CUDA" -AdvancedHMCMCMCChainsExt = "MCMCChains" -AdvancedHMCOrdinaryDiffEqExt = "OrdinaryDiffEq" - [compat] AbstractMCMC = "4.2" ArgCheck = "1, 2" @@ -49,7 +37,17 @@ StatsBase = "0.31, 0.32, 0.33, 0.34" StatsFuns = "0.8, 0.9, 1" julia = "1.6" +[extensions] +AdvancedHMCCUDAExt = "CUDA" +AdvancedHMCMCMCChainsExt = "MCMCChains" +AdvancedHMCOrdinaryDiffEqExt = "OrdinaryDiffEq" + [extras] CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" MCMCChains = "c7f686f2-ff18-58e9-bc7b-31028e88f75d" OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" + +[weakdeps] +CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" +MCMCChains = "c7f686f2-ff18-58e9-bc7b-31028e88f75d" +OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" diff --git a/src/AdvancedHMC.jl b/src/AdvancedHMC.jl index 1b86347a..df123320 100644 --- a/src/AdvancedHMC.jl +++ b/src/AdvancedHMC.jl @@ -20,7 +20,6 @@ using DocStringExtensions using LogDensityProblems using LogDensityProblemsAD: LogDensityProblemsAD -using DynamicPPL import AbstractMCMC using AbstractMCMC: LogDensityModel diff --git a/src/constructors.jl b/src/constructors.jl index af6cedb9..1e20c355 100644 --- a/src/constructors.jl +++ b/src/constructors.jl @@ -1,6 +1,6 @@ -abstract type SamplingAlgorithm end -abstract type StaticHamiltonian <: SamplingAlgorithm end -abstract type AdaptiveHamiltonian <: SamplingAlgorithm end +abstract type HMCAlgorithm end +abstract type StaticHamiltonian <: HMCAlgorithm end +abstract type AdaptiveHamiltonian <: HMCAlgorithm end """ HMCSampler @@ -20,7 +20,7 @@ and `adaptor` after sampling. To access the updated fields use the resulting [`HMCState`](@ref). """ Base.@kwdef struct HMCSampler{I,K,M,A} <: AbstractMCMC.AbstractSampler - alg::SamplingAlgorithm + alg::HMCAlgorithm=Custom_alg "[`integrator`](@ref)." integrator::I=nothing "[`AbstractMCMCKernel`](@ref)." @@ -30,14 +30,11 @@ Base.@kwdef struct HMCSampler{I,K,M,A} <: AbstractMCMC.AbstractSampler "[`AbstractAdaptor`](@ref)." adaptor::A=nothing end -# Basic use -HMCSampler(algorithm; kwargs...) = HMCSampler(algorithm; kwargs...) -HMCSampler(; kwargs...) = HMCSampler(Custom_alg(); kwargs...) ########## # Custom # ########## -struct Custom_alg<:SamplingAlgorithm end +struct Custom_alg<:HMCAlgorithm end ######## # NUTS # @@ -77,7 +74,7 @@ function NUTS( max_depth::Int=10, Δ_max::Float64=1000.0, ϵ::Float64=0.0) - return HMCSampler(NUTS_alg(n_adapts, δ, max_depth, Δ_max, ϵ)) + return HMCSampler(;alg=NUTS_alg(n_adapts, δ, max_depth, Δ_max, ϵ)) end ####### @@ -120,7 +117,7 @@ function HMC( ϵ::Float64, n_leapfrog::Int) - return HMCSampler(HMC_alg(ϵ, n_leapfrog)) + return HMCSampler(;alg=HMC_alg(ϵ, n_leapfrog)) end ######### @@ -162,7 +159,7 @@ function HMCDA( δ::Float64, λ::Float64; ϵ::Float64=0.0) - return HMCSampler(HMCDA_alg(n_adapts, δ, λ, ϵ)) + return HMCSampler(;alg=HMCDA_alg(n_adapts, δ, λ, ϵ)) end ############ From acaa289deaf9915284b30d4af42c704d694647dc Mon Sep 17 00:00:00 2001 From: jaimerz Date: Tue, 27 Jun 2023 16:14:43 +0100 Subject: [PATCH 26/27] convinience constructors consensus --- src/abstractmcmc.jl | 42 +++----------- src/constructors.jl | 138 ++++++++++++++++++++++++-------------------- 2 files changed, 86 insertions(+), 94 deletions(-) diff --git a/src/abstractmcmc.jl b/src/abstractmcmc.jl index c645b516..ebad0784 100644 --- a/src/abstractmcmc.jl +++ b/src/abstractmcmc.jl @@ -38,48 +38,24 @@ function AbstractMCMC.step( vi = logdensity.varinfo # Define metric - if spl.metric == nothing - d = LogDensityProblems.dimension(logdensity) - metric = DiagEuclideanMetric(d) - else - metric = spl.metric - end + d = d=LogDensityProblems.dimension(logdensity) + metric = make_metric(spl; d=d) # Construct the hamiltonian using the initial metric hamiltonian = Hamiltonian(metric, model) # Define integration algorithm - if spl.integrator == nothing - # Find good eps if not provided one - if iszero(spl.alg.ϵ) - # Extract parameters. - ϵ = find_good_stepsize(rng, hamiltonian, init_params) - @info string("Found initial step size ", ϵ) - else - ϵ = spl.alg.ϵ - end - integrator = Leapfrog(ϵ) - else - integrator = spl.integrator - end + # Find good eps if not provided one + integrator = make_integrator(spl; + rng=rng, + hamiltonian=hamiltonian, + init_params=init_params) # Make kernel - κ = make_kernel(spl.alg, integrator) + κ = make_kernel(spl, integrator) # Make adaptor - if spl.adaptor == nothing - if typeof(spl.alg) <: AdaptiveHamiltonian - adaptor = StanHMCAdaptor(MassMatrixAdaptor(metric), - StepSizeAdaptor(spl.alg.δ, integrator)) - n_adapts = spl.alg.n_adapts - else - adaptor = NoAdaptation() - n_adapts = 0 - end - else - adaptor = spl.adaptor - n_adapts = kwargs[:n_adapts] - end + n_adapts, adaptor = make_adaptor(spl, metric, integrator) # Get an initial sample. h, t = AdvancedHMC.sample_init(rng, hamiltonian, init_params) diff --git a/src/constructors.jl b/src/constructors.jl index 1e20c355..d065656e 100644 --- a/src/constructors.jl +++ b/src/constructors.jl @@ -1,7 +1,8 @@ -abstract type HMCAlgorithm end -abstract type StaticHamiltonian <: HMCAlgorithm end -abstract type AdaptiveHamiltonian <: HMCAlgorithm end +abstract type AbstractHMCSampler <:AbstractMCMC.AbstractSampler end +########## +# Custom # +########## """ HMCSampler @@ -19,10 +20,9 @@ and `adaptor` after sampling. To access the updated fields use the resulting [`HMCState`](@ref). """ -Base.@kwdef struct HMCSampler{I,K,M,A} <: AbstractMCMC.AbstractSampler - alg::HMCAlgorithm=Custom_alg +Base.@kwdef struct CustomHMC{I,K,M,A} <: AbstractMCMC.AbstractSampler "[`integrator`](@ref)." - integrator::I=nothing + integrator::I=Leapfrog "[`AbstractMCMCKernel`](@ref)." kernel::K=nothing "[`AbstractMetric`](@ref)." @@ -31,11 +31,6 @@ Base.@kwdef struct HMCSampler{I,K,M,A} <: AbstractMCMC.AbstractSampler adaptor::A=nothing end -########## -# Custom # -########## -struct Custom_alg<:HMCAlgorithm end - ######## # NUTS # ######## @@ -60,23 +55,16 @@ Arguments: - `init_ϵ::Float64` : Initial step size; 0 means automatically searching using a heuristic procedure. """ -struct NUTS_alg <: AdaptiveHamiltonian - n_adapts::Int # number of samples with adaption for ϵ - δ::Float64 # target accept rate - max_depth::Int # maximum tree depth - Δ_max::Float64 # maximum error - ϵ::Float64 # (initial) step size +Base.@kwdef struct NUTS_alg <: AbstractMCMC.AbstractSampler + n_adapts::Int # number of samples with adaption for ϵ + δ::Float64 # target accept rate + max_depth::Int=10 # maximum tree depth + Δ_max::Float64=1000.0 # maximum error + init_ϵ::Float64=0.0 # (initial) step size + integrator_method=Leapfrog # integrator method + metric_type=DiagEuclideanMetric # metric type end -function NUTS( - n_adapts::Int, - δ::Float64; - max_depth::Int=10, - Δ_max::Float64=1000.0, - ϵ::Float64=0.0) - return HMCSampler(;alg=NUTS_alg(n_adapts, δ, max_depth, Δ_max, ϵ)) -end - ####### # HMC # ####### @@ -108,16 +96,11 @@ sample(gdemo([1.5, 2]), HMC(0.1, 10), 1000) sample(gdemo([1.5, 2]), HMC(0.01, 10), 1000) ``` """ -struct HMC_alg <: StaticHamiltonian - ϵ::Float64 # leapfrog step size - n_leapfrog::Int # leapfrog step number -end - -function HMC( - ϵ::Float64, - n_leapfrog::Int) - - return HMCSampler(;alg=HMC_alg(ϵ, n_leapfrog)) +Base.@kwdef struct HMC_alg <: AbstractMCMC.AbstractSampler + init_ϵ::Float64 # leapfrog step size + n_leapfrog::Int # leapfrog step number + integrator_method=Leapfrog # integrator method + metric_type=DiagEuclideanMetric # metric type end ######### @@ -147,42 +130,75 @@ For more information, please view the following paper ([arXiv link](https://arxi setting path lengths in Hamiltonian Monte Carlo." Journal of Machine Learning Research 15, no. 1 (2014): 1593-1623. """ -struct HMCDA_alg <: AdaptiveHamiltonian - n_adapts::Int # number of samples with adaption for ϵ - δ::Float64 # target accept rate - λ::Float64 # target leapfrog length - ϵ::Float64 # (initial) step size +Base.@kwdef struct HMCDA_alg <: AbstractMCMC.AbstractSampler + n_adapts::Int # number of samples with adaption for ϵ + δ::Float64 # target accept rate + λ::Float64 # target leapfrog length + init_ϵ::Float64=0.0 # (initial) step size + integrator_method=Leapfrog # integrator method + metric_type=DiagEuclideanMetric # metric type +end + +export CustomHMC, HMC_alg, NUTS_alg, HMCDA_alg +######### +# Utils # +######### + +function make_integrator(spl::Union{HMC_alg, NUTS_alg, HMCDA_alg}; + rng, hamiltonian, init_params) + init_ϵ = spl.init_ϵ + if iszero(init_ϵ) + init_ϵ = find_good_stepsize(rng, hamiltonian, init_params) + @info string("Found initial step size ", init_ϵ) + end + return spl.integrator_method(init_ϵ) +end + +function make_integrator(spl::CustomHMC) + return spl.integrator end -function HMCDA( - n_adapts::Int, - δ::Float64, - λ::Float64; - ϵ::Float64=0.0) - return HMCSampler(;alg=HMCDA_alg(n_adapts, δ, λ, ϵ)) +######### + +function make_metric(spl::Union{HMC_alg, NUTS_alg, HMCDA_alg}; d::Int=0) + return spl.metric_type(d) end -############ -# Adaptors # -############ +function make_metric(spl::CustomHMC) + return spl.metric +end -function makea_daptor(alg::AdaptiveHamiltonian, metric, integrator) - return StanHMCAdaptor(MassMatrixAdaptor(metric, integrator), - StepSizeAdaptor(alg.δ, integrator)) +######### + +function make_adaptor(spl::Union{NUTS_alg, HMCDA_alg}, metric, integrator) + adaptor = StanHMCAdaptor(MassMatrixAdaptor(metric), + StepSizeAdaptor(spl.δ, integrator)) + n_adapts = spl.n_adapts + return n_adapts, adaptor + end + +function make_adaptor(spl::HMC_alg, metric, integrator) + return 0, NoAdaptation() end -########### -# Kernels # -########### + function make_adaptor(spl::CustomHMC, metric, integrator) + return spl.n_adapts, spl.adaptor + end -function make_kernel(alg::NUTS_alg, integrator) +######### + +function make_kernel(spl::NUTS_alg, integrator) return HMCKernel(Trajectory{MultinomialTS}(integrator, GeneralisedNoUTurn())) end -function make_kernel(alg::HMC_alg, integrator) - return HMCKernel(Trajectory{EndPointTS}(integrator, FixedNSteps(alg.n_leapfrog))) +function make_kernel(spl::HMC_alg, integrator) + return HMCKernel(Trajectory{EndPointTS}(integrator, FixedNSteps(spl.n_leapfrog))) end -function make_kernel(alg::HMCDA_alg, integrator) - return HMCKernel(Trajectory{EndPointTS}(integrator, FixedIntegrationTime(alg.λ))) +function make_kernel(spl::HMCDA_alg, integrator) + return HMCKernel(Trajectory{EndPointTS}(integrator, FixedIntegrationTime(spl.λ))) +end + +function make_kernel(spl::CustomHMC, integrator) + return spl.kernel end \ No newline at end of file From 80f0d8d0a3b4362694c90c4eacc81bb3c6d58a43 Mon Sep 17 00:00:00 2001 From: jaimerz Date: Tue, 27 Jun 2023 16:38:24 +0100 Subject: [PATCH 27/27] kwargs --> args --- src/abstractmcmc.jl | 8 ++------ src/constructors.jl | 11 ++++++----- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/src/abstractmcmc.jl b/src/abstractmcmc.jl index ebad0784..b4344ef0 100644 --- a/src/abstractmcmc.jl +++ b/src/abstractmcmc.jl @@ -38,18 +38,14 @@ function AbstractMCMC.step( vi = logdensity.varinfo # Define metric - d = d=LogDensityProblems.dimension(logdensity) - metric = make_metric(spl; d=d) + metric = make_metric(spl, logdensity) # Construct the hamiltonian using the initial metric hamiltonian = Hamiltonian(metric, model) # Define integration algorithm # Find good eps if not provided one - integrator = make_integrator(spl; - rng=rng, - hamiltonian=hamiltonian, - init_params=init_params) + integrator = make_integrator(rng, spl, hamiltonian, init_params) # Make kernel κ = make_kernel(spl, integrator) diff --git a/src/constructors.jl b/src/constructors.jl index d065656e..9d33eff6 100644 --- a/src/constructors.jl +++ b/src/constructors.jl @@ -144,8 +144,8 @@ export CustomHMC, HMC_alg, NUTS_alg, HMCDA_alg # Utils # ######### -function make_integrator(spl::Union{HMC_alg, NUTS_alg, HMCDA_alg}; - rng, hamiltonian, init_params) +function make_integrator(rng, spl::Union{HMC_alg, NUTS_alg, HMCDA_alg}, + hamiltonian, init_params) init_ϵ = spl.init_ϵ if iszero(init_ϵ) init_ϵ = find_good_stepsize(rng, hamiltonian, init_params) @@ -154,17 +154,18 @@ function make_integrator(spl::Union{HMC_alg, NUTS_alg, HMCDA_alg}; return spl.integrator_method(init_ϵ) end -function make_integrator(spl::CustomHMC) +function make_integrator(rng, spl::CustomHMC, hamiltonian, init_params) return spl.integrator end ######### -function make_metric(spl::Union{HMC_alg, NUTS_alg, HMCDA_alg}; d::Int=0) +function make_metric(spl::Union{HMC_alg, NUTS_alg, HMCDA_alg}, logdensity) + d = LogDensityProblems.dimension(logdensity) return spl.metric_type(d) end -function make_metric(spl::CustomHMC) +function make_metric(spl::CustomHMC, logdensity) return spl.metric end