Releases: probmods/webppl
v0.9.15
v0.9.14
v0.9.13
v0.9.10
New Features
- Node.js core modules can now be imported using the
--requirecommand line argument. (docs) - Added support for constructing kernel density estimates from the marginal returned by sampling based inference methods. (docs)
- Add the
Mixturedistribution. (docs)
Enhancements
- Improved argument checks for
sampleand distribution constructors. - Documentation updates.
v0.9.9
v0.9.8
Breaking Changes
Optimize no longer supports the checkpointParams option
See the new
file backed parameter store
for similar functionality.
Parameter serialization format
The format in which parameters are serialized has changed. As a
result, parameters serialized with 0.9.7 and earlier cannot be loaded
directly into 0.9.8. As a work-around, the following script can be
used to convert old parameters into the new format:
Node v4 is no longer supported
New Features
Add Laplace distribution primitives
- http://docs.webppl.org/en/master/distributions.html#Laplace
- http://docs.webppl.org/en/master/distributions.html#TensorLaplace
More flexible parameter initialization
The param method now supports an init option which allows fine
grained control over the initialization of parameters.
Automatic selection of inference method
When no method is specified when calling Infer, heuristics are
used to automatically select a reasonable method for the current
model.
Add support for weight decay
Add onStep callback to Optimize
Add forward and forwardGuide methods
These provide a convenient way to generate a single sample from the
model or guide.
- http://docs.webppl.org/en/master/functions/other.html#forward
- http://docs.webppl.org/en/master/functions/other.html#forwardGuide
Add file backed parameter store
Add official support for command line arguments
Allow the ps parameter to be omitted from Categorical
Warn on superfluous options
Infer and Optimize now issue a warning when passed superfluous
options.
Bug Fixes
Fix Poisson sampler
Correctly optimize parameters nested within Enumerate
v0.9.7
New Features
Distribution arg checks
Distribution arguments are now checked at run time. For example, trying to create a Bernoulli distribution with success probability of -1 will now produce the following error:
Bernoulli({p: -1});
// => Error: Parameter "p" should be of type "real [0, 1]".The docs include a list of parameters and the values they can take for each distribution.
Built-in functions
Added:
Breaking Changes
Switch to lodash
The global variable _ is now bound to lodash rather than underscore in WebPPL programs. Many of the functions available as properties of _ will continue to work as before, but there are some breaking changes. This (non-exhaustive) list of differences between the two describes many of the changes. One change it doesn't mention is that _.object is no longer available, though _.fromPairs offers the same functionality.
Global parameter set
Optimize and the Infer methods forward and SMC now implicitly operate on a global set of parameters, rather than on parameters passed via an argument.
Guide thunks
sample now expects guide distributions to be wrapped in a function of zero arguments. For example:
sample(dist, {guide: guideDist})should now be written:
sample(dist, {guide: function() { return guideDist; }});See the docs for more.
SMC ignoreGuide option
The ignoreGuide option of SMC has been replaced with a new importance option. See the docs for details of this new option.