Skip to content

Commit

Permalink
More compat updates (#27)
Browse files Browse the repository at this point in the history
* Make tests pass with StaticArrays

* Fix remaining adjoint tests

* Bump patch

* Bump Distributions compat
  • Loading branch information
willtebbutt committed Nov 29, 2020
1 parent 5b00834 commit 3313d62
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 12 deletions.
6 changes: 3 additions & 3 deletions Project.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name = "TemporalGPs"
uuid = "e155a3c4-0841-43e1-8b83-a0e4f03cc18f"
authors = ["willtebbutt <wt0881@my.bristol.ac.uk>"]
version = "0.3.5"
version = "0.3.6"

[deps]
BlockArrays = "8e7c35d0-a365-5155-bbbb-fb81a777f24e"
Expand All @@ -19,10 +19,10 @@ ZygoteRules = "700de1a5-db45-46bc-99cf-38207098b444"
[compat]
BlockArrays = "0.12"
BlockDiagonals = "0.1"
Distributions = "0.19, 0.20, 0.21, 0.22, 0.23"
Distributions = "0.19, 0.20, 0.21, 0.22, 0.23, 0.24"
FillArrays = "0.7, 0.8"
Kronecker = "0.4"
StaticArrays = "= 0.12.1"
StaticArrays = "0.12.1"
Stheno = "0.6.6"
Zygote = "0.5"
ZygoteRules = "0.2"
Expand Down
1 change: 0 additions & 1 deletion src/models/immutable_inference_pullbacks.jl
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,6 @@ for (foo, step_foo, foo_pullback, step_foo_pullback) in [
@assert length(model) == length(ys)
T = length(model)


# Pre-allocate for filtering distributions. The indexing is slightly different for
# these than for other quantities. In particular, xs[t] := x_{t-1}.
xs = Vector{typeof(model.gmm.x0)}(undef, T + 1)
Expand Down
10 changes: 6 additions & 4 deletions test/models/lgssm.jl
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,8 @@ println("lgssm:")
if eltype(model) == Float64

# Verify the gradients w.r.t. sampling from the model.
P_U = cholesky(x.P).U
P_U = storage.val isa SArrayStorage ? UpperTriangular(SMatrix(P_U.data)) : P_U
adjoint_test(
(As, as, sqrt_Qs, Hs, hs, m, sqrt_P, sqrt_Σs) -> begin
Qs = map(U->UpperTriangular(U)'UpperTriangular(U), sqrt_Qs)
Expand All @@ -154,7 +156,7 @@ println("lgssm:")
return rand(MersenneTwister(123456), model)
end,
[randn(rng, Dobs) for _ in 1:N],
As, as, sqrt_Qs, Hs, hs, x.m, cholesky(x.P).U, sqrt_Σs;
As, as, sqrt_Qs, Hs, hs, x.m, P_U, sqrt_Σs;
rtol=1e-6, atol=1e-6,
)

Expand All @@ -170,7 +172,7 @@ println("lgssm:")
return logpdf(model, y)
end,
randn(rng),
As, as, sqrt_Qs, Hs, hs, x.m, cholesky(x.P).U, sqrt_Σs, y;
As, as, sqrt_Qs, Hs, hs, x.m, P_U, sqrt_Σs, y;
atol=1e-5, rtol=1e-5,
)

Expand All @@ -186,7 +188,7 @@ println("lgssm:")
return TemporalGPs.whiten(model, y)
end,
[randn(rng, Dobs) for _ in 1:N],
As, as, sqrt_Qs, Hs, hs, x.m, cholesky(x.P).U, sqrt_Σs, y;
As, as, sqrt_Qs, Hs, hs, x.m, P_U, sqrt_Σs, y;
atol=1e-6, rtol=1e-6,
)

Expand All @@ -202,7 +204,7 @@ println("lgssm:")
return TemporalGPs.unwhiten(model, α)
end,
[randn(rng, Dobs) for _ in 1:N],
As, as, sqrt_Qs, Hs, hs, x.m, cholesky(x.P).U, sqrt_Σs, y;
As, as, sqrt_Qs, Hs, hs, x.m, P_U, sqrt_Σs, y;
atol=1e-6, rtol=1e-6,
)
end
Expand Down
10 changes: 6 additions & 4 deletions test/models/scalar_lgssm.jl
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,8 @@ println("scalar_lgssm:")
sqrt_Σs = map->cholesky(Symmetric(Σ)).U, Σs)

# Verify the gradients w.r.t. sampling from the model.
P_U = cholesky(x.P).U
P_U = storage.val isa SArrayStorage ? UpperTriangular(SMatrix(P_U.data)) : P_U
adjoint_test(
(As, as, sqrt_Qs, Hs, hs, m, sqrt_P, sqrt_Σs) -> begin
Qs = map(U->UpperTriangular(U)'UpperTriangular(U), sqrt_Qs)
Expand All @@ -77,7 +79,7 @@ println("scalar_lgssm:")
return rand(MersenneTwister(123456), scalar_model)
end,
randn(rng, N),
As, as, sqrt_Qs, Hs, hs, x.m, cholesky(x.P).U, sqrt_Σs;
As, as, sqrt_Qs, Hs, hs, x.m, P_U, sqrt_Σs;
rtol=1e-6, atol=1e-6,
)

Expand All @@ -93,7 +95,7 @@ println("scalar_lgssm:")
return logpdf(scalar_model, y)
end,
randn(rng),
As, as, sqrt_Qs, Hs, hs, x.m, cholesky(x.P).U, sqrt_Σs, y;
As, as, sqrt_Qs, Hs, hs, x.m, P_U, sqrt_Σs, y;
atol=1e-6, rtol=1e-6,
)

Expand All @@ -109,7 +111,7 @@ println("scalar_lgssm:")
return TemporalGPs.whiten(scalar_model, y)
end,
randn(rng, N),
As, as, sqrt_Qs, Hs, hs, x.m, cholesky(x.P).U, sqrt_Σs, y;
As, as, sqrt_Qs, Hs, hs, x.m, P_U, sqrt_Σs, y;
atol=1e-6, rtol=1e-6,
)

Expand All @@ -125,7 +127,7 @@ println("scalar_lgssm:")
return TemporalGPs.unwhiten(scalar_model, α)
end,
randn(rng, N),
As, as, sqrt_Qs, Hs, hs, x.m, cholesky(x.P).U, sqrt_Σs, y;
As, as, sqrt_Qs, Hs, hs, x.m, P_U, sqrt_Σs, y;
atol=1e-6, rtol=1e-6,
)
end
Expand Down

2 comments on commit 3313d62

@willtebbutt
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@JuliaRegistrator register()

@JuliaRegistrator
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Registration pull request created: JuliaRegistries/General/25508

After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.

This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:

git tag -a v0.3.6 -m "<description of version>" 3313d622a144a579f046958b15a3506f2d2a5898
git push origin v0.3.6

Please sign in to comment.