Skip to content

Releases: joelberkeley/spidr

Release 0.0.4

27 Feb 18:18
f6e2a5b
Compare
Choose a tag to compare

Tested on Ubuntu 64-bit with Idris2 v0.5.1 and Nx XLA CPU binaries v0.3.0

This release implements (or, in some cases, removes) all functions the Tensor API.

API changes

  • introduce Idris counterparts to XLA data types (S32, U32, F64 etc.) for use in Tensor #168. Add custom numerical interfaces to mirror Prelude numerical constraints #174
  • support boolean primitive type PRED #135
  • use List Nat for tensor shapes #184 #185
  • make dtype explicit in Array #156
  • make broadcasting explicit #138
  • delete the Variable mutable tensor type #186
  • delete trace_product #189, cast_dtype, inverse #198, det #209
  • make ProbabilisticModel an interface #121
  • implement new functions and operators. Most of these APIs have changed during implementation
    • identity for constructing identity matrices #199
    • index for basic tensor indexing #191
    • reshape for reshaping tensors #192
    • expand for adding a dimension to a Tensor #193
    • squeeze for removing dimensions of length one #194
    • slice for slicing along any one axis #195
    • split for splitting a tensor in two along a given axis #196
    • concat for concatenating Tensors #197
    • .T for transposing matrices #208
    • diag for fetching the diagonal of a matrix #211
    • element-wise unary functions: absolute value absEach #144 #163; numeric negation negate #157; natural exponential expEach and logarithm logEach #187; add floor floorEach, ceiling ceilEach, logistic logisticEach, sine sinEach, cosine cosEach, hyperbolic tangent tanhEach, and square root sqrtEach #188; boolean negation notEach #160
    • element-wise binary functions: equality ==# and inequality /=# #136; subtraction - #145; multiplication *# #134; division /# #158; comparison ># <# >=# <=# #143; logical and &&# and or ||# #160; exponential wrt any base ^# #206; minimum minEach and maximum maxEach #179
    • division by a constant / #158
    • multiplication by a constant * #142
    • functor-like map #165, applicative-like map2 #171 #178 and foldable-like reduce #176 along with monoid instances for Tensor #180
    • @@ for matrix and vector multiplication #201
    • trace for summing along a matrix diagonal #202
    • cholesky for lower triangular Cholesky decomposition #203
    • (\\) for solving linear equations wrt triangular matrices #207

Bug fixes

  • pdf for Gaussian now uses covariance correctly in exponent #209

Documentation

  • expand introduction to Bayesian optimisation in tutorial #172

Build changes

  • compile XLA C wrapper into single shared library #215
  • update XLA binary to version 0.0.3 (for XLA/TensorFlow version 2.8.0) #216

Release 0.0.3

27 Dec 18:28
b14a501
Compare
Choose a tag to compare

Tested on Ubuntu 64-bit with Idris2 v0.5.1 and Nx XLA binaries v0.2.0

API enhancements

  • implement Gaussian PDF (#42)
  • refactor distribution functionality (#86)
  • replace Connection with Morphism (#89)
  • improve efficiency of GP training with Cholesky factorization (#93)
  • allow any data representation in Bayesian optimization (#100)
  • erase as many values as possible (#106)
  • simplify namespace names (#107)
  • add Matern 5/2 kernel (#109)
  • simplify Distribution with functional dependencies (#112)
  • implement conjugate GP regression (#113)
  • introduce Dataset data type (#115)
  • add Bayesian optimization loop (#114)
  • add XLA backend (#82 #90 #123 #124 #126 #127 #128 #129 #131) with executable implementations for addition (#128) and broadcasting (#130)

Other

  • add installation instructions (#133)
  • update Idris 2 to v0.5.1 (#78)

Release 0.0.2

27 Jun 21:16
706d13c
Compare
Choose a tag to compare

API enhancements

  • add RBF kernel (#75)
  • implement zero mean function (#74)
  • constrain element type of tensors to have corresponding types in backend (#47)
  • replace Maybe usage with Either and error types (#45)
  • add support for squeezing Tensors (#40)
  • add numerous tensor operators (#39)
  • add mutable (linear) tensor Variable type and in-place ops (#36)
  • hide Tensor constructor, enabling arbitrary Tensor representation (#34)
  • implement acquisition functions: (negative) lower confidence bound, probability of feasibility, expected improvement (#24)

Bug fixes

  • improve type inference for tensor contraction operator @@ (#72)

Other

  • convert Bayesian optimization integration test to tutorial (#43) (#51)
  • add automatic API reference build and deployment on release (#77)
  • update Idris 2 to v0.4.0 (#78)

Release 0.0.1

31 May 15:00
43ba1c9
Compare
Choose a tag to compare
v0.0.1

add support for broadcasting (#26)