1 /**
2     This package contains implementations of common online optimisation algorithms, with a particular bias towards
3     those commonly used in large scale machine learning/deep learning.
4 
5     Authors: Henry Gouk
6 */
7 module dopt.online;
8 
9 public
10 {
11     import dopt.online.adam;
12     import dopt.online.amsgrad;
13     import dopt.online.sgd;
14 }
15 
16 import dopt.core;
17 
18 /**
19     Used for performing projected gradient descent.
20 
21     The delegate should take a new value for some tensor, and project it back into the feasible set.
22 */
23 alias Projection = Operation delegate(Operation);
24 
25 /**
26     A delegate that can be used to perform the update step for an online optimisation algorithm.
27 */
28 alias Updater = Buffer[] delegate(Buffer[Operation] args);