News

gogp v1.0.1

GoGP v1.0.1 is out. This is the first stable (v1) release of GoGP, a library for Gaussian process regression. GoGP has been used in production for over a year, and has undergone many changes improving performance and robustness.

infergo v1.0.1

Infergo v1.0.1 is out. This is the first stable (v1) release of Infergo. Infergo has undergone many changes during the past year, and has been used in production for mission-critical computations in the cloud.

gogp v0.1.0

GoGP is out. GoGP is a library for Gaussian process regression in Go and uses Infergo for automatic differentiation and inference.

infergo v0.7.0

Infergo v0.7.0 is out. This release is a result of improving and extending Infergo along with development of GoGP, a library for Gaussian process regression. What’s new: model’s gradient can be explicitly specified as the Gradient() method, instead of through automatic differentation. An elemental may also be a function which accepts a slice of floats (in addition to functions which accept one or more float scalars as parameters). More kernels in the supplied kernel library.

infergo v0.6.1

Infergo v0.6.1 is out. What’s new: I moved many things around, some in a backward-incompatible way, but should only affect a minority of users. As a side-effect of using Infergo for a rather involved model, I fixed two bugs in the automatic differentiation transformation. The bugs manifested in edge cases I didn’t even think they exist. The accompanying repository infergo-studies now contains a new case study — a rewrite of Stan’s LDA example.

infergo v0.5.0

infergo v0.5.0 is out. What’s new: Multithreading support. Differentiation can be performed concurrently in multiple goroutines without locking of calls to Observe or Gradient, and with little contention. Examples and case studies performing inference in parallel, both using Infergo’s own inference algorithms, or through integration in Gonum.

The Tale of GoIDs

2.16 And the LORD God commanded the man, saying: ‘Of every tree of the garden thou mayest freely eat; 2.17 but of the tree of the knowledge of good and evil, thou shalt not eat of it; for in the day that thou eatest thereof thou shalt surely die.’ The Book of Genesis Go gives the programmer introspection into every aspect of the language, and of a running program.

infergo v0.3.0

infergo v0.3.0 is out. What’s new: Only methods returning float64 or nothing are differentiated. This allows to define helper methods on the model, such as returning the number of parameters, and call the methods outside of differentiated context. infergo models can be optimized using Gonum optimization algorithms. This includes BFGS and variants. Case study lr-gonum applies L-BFGS to linear regression. Case studies have been extended. New studies include: linear regression, solved using either stochastic gradient descent and BFGS; compilation of infergo models and inference into WebAssembly and running in the browser; integration with Gonum; Neal’s funnel, a re-parameterization example borrowed from Stan documentation.

infergo v0.2.2

infergo v0.2.2 is out. What’s new: Constant folding. Automatic import of packages required for short variable declarations (see issue #10).