BSD-3-Clause licensed by Justin Le
Maintained by [email protected]
This version can be pinned in stack with:hmatrix-backprop-0.1.3.0@sha256:eff786a68b34d44df9bd461c5890d0d876684f34e5fd4b6078a67263d21279f1,2294

Module documentation for 0.1.3.0

hmatrix-backprop

hmatrix-backprop on Hackage Build Status

hmatrix operations lifted for backprop, along with orphan instances of Backprop.

Meant to act as a drop-in replacement to the API of Numeric.LinearAlgebra.Static. Just change your imports, and your functions are automatically backpropagatable. Useful types are all re-exported.

Formulas for gradients come from the following papers:

Some functions are not yet implemented! See module documentation for details. PR’s definitely appreciated :)

Tests

Currently numeric tests are implemented as property tests using hedgehog, but it is possible that the answers might differ from the true values by an amount undetectable by property tests.

All functions currently are tested except for the higher-order functions.

They are tested by “nudging” components of inputs and checking if the change in the function outputs match what is expected from the backpropagated gradient.

TODO

  1. Now that new backprop no longer requires Num, we can lift normal hmatrix operations as well.
  2. Statically sized convolutions. Should probably add this to hmatrix instead first, though.

Changes

Changelog

Version 0.1.3.0

August 18, 2019

https://github.com/mstksg/hmatrix-backprop/releases/tag/v0.1.3.0

  • Fix for compatibility with hmatrix-vector-sized-0.1.2.0. However, this is potentially a breaking change because vector, fromRows, and fromColumns now all require extra KnownNat constraints.

Version 0.1.2.5

November 14, 2018

https://github.com/mstksg/hmatrix-backprop/releases/tag/v0.1.2.5

  • Fix compatibility with GHC 8.6

Version 0.1.2.4

August 8, 2018

https://github.com/mstksg/hmatrix-backprop/releases/tag/v0.1.2.4

  • Fix compatibility with backprop-0.2.6.1

Version 0.1.2.3

June 19, 2018

https://github.com/mstksg/hmatrix-backprop/releases/tag/v0.1.2.3

  • Fix compatibility with backprop-0.2.5.0

Version 0.1.2.2

May 28, 2018

https://github.com/mstksg/hmatrix-backprop/releases/tag/v0.1.2.2

  • Fix compatibility with backprop-0.2.4.0.
  • Rewrote most of Numeric.LinearAlgebra.Static.Backprop module to require Backprop constraints on everything instead of Num constraints
  • Re-ordered constraint orders on various functions. Potentially breaking change if TypeApplications are used.
  • Removed redundant dependency on finite-typelits.

Version 0.1.2.1

May 1, 2018

https://github.com/mstksg/hmatrix-backprop/releases/tag/v0.1.2.1

  • Updated for compatibility with backprop-0.2.0.0
  • Orphan instances added for types in Numeric.LinearAlgebra.Static.

Version 0.1.2.0

Mar 30, 2018

https://github.com/mstksg/hmatrix-backprop/releases/tag/v0.1.2.0

  • zipWithVector family rewritten in the same way as dvmap/dvmap were for version 0.1.1.0, which is a breaking API change. However, again, it is unlikely that any code using the previous versions compiled at all, so in practicality, no actual code that previously worked is now breaking.

Version 0.1.1.0

Mar 25, 2018

https://github.com/mstksg/hmatrix-backprop/releases/tag/v0.1.1.0

  • dvmap/dmmap family rewritten, which is a breaking API change. Previous version of dvmap/dmmap would not even compile at all if used, though, because of nonsensical constraints, so it is likely that no code that previously worked is now breaking.
  • backprop types re-exported for convenience

Internal

  • Rewrote much code to use isoVar instead of opIso, for increased clarity and cleanliness. Requires backprop-0.1.4.0.

Version 0.1.0.0

Feb 10, 2018

https://github.com/mstksg/hmatrix-backprop/releases/tag/v0.1.0.0

  • Initial release