horde-ad
horde-ad copied to clipboard
Higher Order Reverse Derivatives Efficiently - Automatic Differentiation library based on the paper "Provably correct, asymptotically efficient, higher-order reverse-mode automatic differentiation"
That would mimic what ADModeDerivative did previously, but in a separated code path, taking advantage of the flexibility of the Tensor class. Until this is done, we have the slow...
Right now, most of the time, it shows the line it's defined at instead of the one it's called at, where the mistake is made. `HasCallStack` is already added wherever...
A possible formulation: given a few minutes of a person X speech, the network should be able to quickly determine if any short audio recording contains speech by X or...
Loose Haskell lambdas that the user writes are invisible to the tracing done in this library, but the moment the user tries to store a function inside an array, their...
To be used in HordeAd.External.Adaptor. Related to https://github.com/Mikolaj/horde-ad/issues/64 (search for "generics", but conversion of records to tuples may be easier than tackling arbitrary datatypes). The new anonymous records are an...
This is a continuation of https://github.com/Mikolaj/horde-ad/issues/64#issuecomment-1250029728. The idea is to implement ```hs dot :: (ADModeAndNum d r, OS.Shape sh, KnownNat n1, KnownNat n2) => ADVal d (OS.Array '[n1, n2] r)...
This would need to be changed a lot, because for definition ```hs instance (AdaptableDomains a, Traversable t) => AdaptableDomains (t a) where type Scalar (t a) = Scalar a toDomains...
See #43. Perhaps backpack is the right tool to express the parameterization. If we decide to suffer the tool support problems with backpack, perhaps the other code duplication in orthotope...
See #43. The idea is to map the ArrayFire arrays to untyped orthotope tensors in the `Domains` and related types. For this early experiment, we can leave optimizers unchanged and...
In some cases, the task will involve generalizing an operation already defined on tensors or on matrices or vectors. In many cases the task will require introducing new delta expression...