Changelog History
Page 1
-
v0.2.6.4 Changes
June 30, 2020
๐ https://github.com/mstksg/backprop/releases/tag/v0.2.6.4
- Compatibility with ghc-8.10.1 (@tonyday567)
-
v0.2.6.3 Changes
August 13, 2019August 13, 2019
๐ https://github.com/mstksg/backprop/releases/tag/v0.2.6.3
- Add
Backprop
instances for the various vinyl types. - Rewrite many
Backprop
instances over newtypes to coerce instead of go through Generics
- Add
-
v0.2.6.2 Changes
April 08, 2019April 7, 2019
๐ https://github.com/mstksg/backprop/releases/tag/v0.2.6.2
- Fix a numerical bug that would occur when an input is used directly as the
result of a computation. (For example,
gradBP id
orgradBP2 const
). - ๐ Some internal changes to strictness which offers some performance boosts in computation of gradients.
- Fix a numerical bug that would occur when an input is used directly as the
result of a computation. (For example,
-
v0.2.6.1 Changes
August 07, 2018August 6, 2018
๐ https://github.com/mstksg/backprop/releases/tag/v0.2.6.1
- ๐ Removed redundant constraints from
Floating
instance ofOp
. - Fixed lower bound for vinyl dependency.
- ๐ Removed redundant constraints from
-
v0.2.6.0 Changes
August 06, 2018August 6, 2018
๐ https://github.com/mstksg/backprop/releases/tag/v0.2.6.0
- Dropped
Expr
instance ofBackprop
. I don't think anyone was actually using this. If you need this, please useNumeric.Backprop.Num
instead! - Removed Rec re-exports.
- Compatibility with vinyl-0.9, using the Data.Vinyl.Recursive interface. This requires some minor reshuffling of constraints but should not affect any monomorphic usage.
- Dropped
-
v0.2.5.0 Changes
June 20, 2018June 19, 2018
๐ https://github.com/mstksg/backprop/releases/tag/v0.2.5.0
Since type-combinators has been unmaintained for over two years, and is no longer compatible with modern GHC, the library internals was rewritten to be built on the type-level combinators in the vinyl library instead. The main external API change is basically
Every
is replaced withAllConstrained
, andKnown Length
is replaced withRecApplicative
.To most users, this should make no difference API-wise. The only users affected should be those using the "-N" family of functions (
backpropN
), who have to pass in heterogeneous lists. Heterogeneous lists now must be passed in using vinyl syntax and operators instead of the previous type-combinators interface.bpOp
added, to allow for non-rank-N storage of backpropagatable functions in containers without impredicative types.Benchmarks use microlens and microlens-th instead of lens.
-
v0.2.4.0 Changes
May 29, 2018May 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
-
v0.2.3.0 Changes
May 25, 2018May 25, 2018
๐ https://github.com/mstksg/backprop/releases/tag/v0.2.3.0
- Argument order in
backpropWith
family of functions switched around to allow for final gradient to be given after-the-fact. Breaking change for anyone using anybackpropWith
function. - As a consequence of the previous change,
backprop
family of functions in Explicit interfaces also all changed argument order. Breaking change only for those using the Explicit interfaces. - Explicit
collectVar
no longer needs aZeroFunc
for the container, and so all versions ofcollectVar
and functions that use it (fmap
,liftA2
,liftA3
,traverse
,mapAccumL
,mapAccumR
) no longer requireBackprop
orNum
instances for the final returned container type. This enables a lot more flexibility in container types. Breaking change only for those using the Explicit interfaces. -
BV
pattern synonym added to Numeric.Backprop, abstracting over application ofsplitBV
andjoinBV
. -
foldr
andfoldl'
added to Prelude modules, for convenience. -
round
andfromIntegral'
("unround") added to Prelude modules.
- Argument order in
-
v0.2.2.0 Changes
May 12, 2018May 12, 2018
๐ https://github.com/mstksg/backprop/releases/tag/v0.2.2.0
-
evalBP0
added, for convenience for no-argument values that need to be evaluated without backpropagation. - ๐
splitBV
andjoinBV
for "higher-kinded data" styleBVar
manipulation, via theBVGroup
helper typeclass. -
toList
,mapAccumL
, andmapAccumR
for Prelude.Backprop modules -
Backprop
instance forBVar
- COMPLETE pragmas for
T2
andT3
- Un-exported
gzero
,gadd
, andgone
from Numeric.Backprop.Class - Many, many more instances of
Backprop
-
Backprop
instance forProxy
made non-strict foradd
- Swapped type variable order for a few library functions, which might potentially be breaking changes.
Internal
- ๐ Fixed documentation for Num and Explicit Prelude modules, and rewrote normal and Num Prelude modules in terms of canonical Prelude definitions
- Switched to
errorWithoutStackTrace
wherever appropriate (in Internal module)
-
-
v0.2.1.0 Changes
May 08, 2018May 8, 2018
๐ https://github.com/mstksg/backprop/releases/tag/v0.2.1.0
- Added
ABP
newtype wrapper to Numeric.Backprop.Class (re-exported from Numeric.Backprop and Numeric.Backprop.Explicit) to give freeBackprop
instances for Applicative actions. - Added
NumBP
newtype wrapper to Numeric.Backprop.Class (re-exported in the same places asABP
) to give freeBackprop
instances forNum
instances. - Added
^^?!
(unsafe access) to Numeric.Backprop and Numeric.Backprop.Num. -
Backprop
instance forNatural
from Numeric.Natural. Should actually be safe, unlike itsNum
instance! -
zfFunctor
andofFunctor
for instances ofFunctor
for Numeric.Backprop.Explicit. -
realToFrac
andfromIntegral
to Prelude modules -
T2
andT3
patterns for Numeric.Backprop, for conveniently constructing and deconstructing tuples.
- Added