- 25 Sep, 2020 1 commit
-
-
Chris Jewell authored
Changes: 1. Created a TFP JointDistribution to represent full probability model; 2. Renamed CovidUKStochastic --> DiscreteTimeStateTransitionModel; 3. DiscreteTimeStateTransitionModel now inherits from tfp.Distribution.
-
- 04 Sep, 2020 1 commit
-
-
Chris Jewell authored
Changes: 1. Dates are pulled out of CovidUKStochastic 2. CovidUKStochastic now behaves more like a tfd.Distribution * CovidUKStochastic is now instantiated with an initial time, number of time steps and time step size * CovidUKStochastic is now instantiated with the initial state.
-
- 23 Aug, 2020 1 commit
-
-
Chris Jewell authored
Changes: 1. We adopt the convention [start, end) for *all* date ranges. 2. Modified PHE case ingestor to reflect this 3. Modified CovidUK to reflect this 4. Corrected a bug in the use of time in simulation.
-
- 08 Jul, 2020 1 commit
-
-
Chris Jewell authored
Bug in discrete_markov.propagate found, introduced after changes for vectorised likelihood.
-
- 28 Jun, 2020 5 commits
-
-
Chris Jewell authored
Cast data structures to float32 for tfd.Multinomial.log_prob computation saves time on lgamma calculation. Approx x1.8 speedup as lgamma is approx linear in digits of precision required.
-
Chris Jewell authored
Results in over a x2 speedup.
-
Chris Jewell authored
Moved construction of Markov transition matrix format from model.make_hazard.h into discrete_markov_log_prob. Achieved a 33% increase in run speed.
-
Chris Jewell authored
Re-wrote discrete_markov_log_prob to batch the call to tfd.Multinomial.log_prob to avoid lgamma time.
-
Chris Jewell authored
1. Replaced TensorArray buffer with simple reduction in discrete_markov_log_prob. 2. tf.lgamma is slow with lots of events, so cast to tf.float32 gives a a bit over x2 speedup.
-
- 26 Jun, 2020 1 commit
-
-
Chris Jewell authored
Previously, the Events matrix expected by model.log_prob was ordered [T, M, X] where T is the number of timpoints, M is the number of meta-populations and X is the number of transitions. However, it was found more convenient to work with [M, T, X] for the purposes of data augmentation. This meant extra tf.transpose calls. model.log_prob now expects [M, T, X], with any further batch dimensions added as outer dimensions.
-
- 12 May, 2020 1 commit
-
-
Chris Jewell authored
-
- 28 Apr, 2020 1 commit
-
-
Chris Jewell authored
First pass implementation of data augmentation MCMC. This is slow, buggy, and possibly not correct yet! Use with caution!
-
- 23 Apr, 2020 1 commit
-
-
Chris Jewell authored
Working event time update. Not compatible with XLA due to tf.boolean_mask which depends on tf.where.
-
- 20 Apr, 2020 1 commit
-
-
Chris Jewell authored
-
- 17 Apr, 2020 1 commit
-
-
Chris Jewell authored
Got stochastic model fitting with new bounded convergence respecting adaptive proposal. However, XLA appears now very slow.
-
- 10 Apr, 2020 1 commit
-
-
Chris Jewell authored
Performance approximation replacing matrix exponential with row-wise independent draws, a la chain binomial.
-
- 09 Apr, 2020 2 commits
-
-
Chris Jewell authored
-
Chris Jewell authored
-
- 08 Apr, 2020 1 commit
-
-
Chris Jewell authored
1. chainbinom* file and methods renamed to discrete_markov* files and methods. 2. Implemented batched hazard rate calculation, adding functions to automatically broadcast rates to the Markov transition rate matrix. 3. Implemented test simulation and MCMC algorithm.
-
- 30 Mar, 2020 1 commit
-
-
Chris Jewell authored
Updated ODE model with overall number of starting individuals parameter, and daily confirmed cases up to 27th March (PHE, whole of England).
-
- 28 Mar, 2020 2 commits
-
-
Chris Jewell authored
-
Christopher Suter authored
-
- 27 Mar, 2020 2 commits
-
-
Christopher Suter authored
-
Christopher Suter authored
Big changes: 1. replace python for loop with tf.while_loop 2. work with a transposed state tensor shape - instead of [4, nlads * nages], use [nlads * nages, 4] - this made it pretty easy to eliminate some transposes in propagate_fn (there were comments there seemingly contemplating this shape arrangement) - this feels a little more natural to me, too; in TFP we'd call the 4 SEIR states components of the "event shape" of the system, and the nlads * nages part a "batch shape" (although one could reasonably also combine these together into one big matrix "event shape") - anyway, this allowed elimination of 3 transpose ops which makes for simpler code and avoids some memcpys - I also made an effort to update surrounding code to use the same data layout, but it seems like mcmc.py and covid_ode.py are broken right now anyway, due to other changes made in support of stochastic mode, so I couldn't confirm that my changes were sufficient. 3. switch off XLA (which didn't yield any clear improvement, although it also didn't really hurt), and disable autograph (which tries to do things like rewrite python for loops into TF graph code but tends to produce less performant than manually optimized code like what I've done here)
-
- 26 Mar, 2020 3 commits
-
-
Chris Jewell authored
-
Chris Jewell authored
-
Chris Jewell authored
Wrote chainbinom_simulate.py function. Halfway through re-writing the ODE class (which should now not be an ODE!).
-
- 12 Mar, 2020 1 commit
-
-
Chris Jewell authored
-
- 08 Mar, 2020 2 commits
-
-
Chris Jewell authored
-
Chris Jewell authored
-
- 01 Mar, 2020 2 commits
-
-
Chris Jewell authored
-
Chris Jewell authored
-