backprop v0.2.4.0 Release Notes
Release Date: 2018-05-29 // almost 6 years ago-
May 28, 2018
๐ https://github.com/mstksg/backprop/releases/tag/v0.2.4.0
NOTE Major breaking changes to Explicit modules, and some re-shuffling of typeclass constraints on various non-explicit functions that should only affect polymorphic usage.
- ๐ Huge improvements in performance! Around 20-40% reduction in
runtimes/overheads, with savings higher for large matrix situations or
situations with expensive
add
. - However, this restructuring required major reshuffling of constraints on
Backprop
/Num
for most functions. These are potentially breaking changes for polymorphic code, but monomorphic code should remain unchanged. However, code using the Explicit interfaces is most likely broken unfortunately. Fixes just include adding or droppingzeroFunc
s to the appropriate functions. - Added warnings to Explicit modules that the API is "semi-stable".
-
overVar
and%~~
, for modifying fields. Essentially a wrapper over aviewVar
andsetVar
. - Argument order in the
backpropWith
family of functions changed again; breaking change for those using anybackpropWith
function. However, the new order is much more usable. - Changes to the argument order in the
backprop
family of functions in the Explicit interfaces now reverted back to previous order, from v0.2.0 and before. Should be an "un-breaking" change, but will break code written in v0.2.3 style. - ๐ Bechmarks now include HKD access and a "hybrid" approach. Documentation updated to reflect results.
- ๐ Documentation updated to include a new "unital" law for
one
, namelyone = gradBP id
. - Fixity declarations for
^^?
,^^?!
, and<$>
. - Added
fmap . const
and<$
to Prelude modules. -
Backprop
instances forExpr
from simple-reflect - Added
zeroVecNum
andoneVecNum
to Numeric.Backprop.Class, which is potentially more efficient thanzeroVec
andoneVec
if the items are instances ofNum
and the vectors are larger. Also addedNumVec
newtype wrapper givingBackprop
instances to vectors usingzeroVecNum
andoneVecNum
instead ofzeroVec
andoneVec
. - ๐
Build.hs
build script now also builds profiling results
- ๐ Huge improvements in performance! Around 20-40% reduction in
runtimes/overheads, with savings higher for large matrix situations or
situations with expensive