computational-graph
Version:
A computational graph made in typescript
34 lines (27 loc) • 1.08 kB
text/typescript
import {CompNode} from "./comp_node";
import { Matrix } from "./matrix";
import {CostFunction} from "./cost_function"
import {Variable} from "./variable"
export class Minimiser {
constructor() {}
static gradientDescentMinimiser(learningRate:number, y:CompNode, iterations:number, costFunction:CostFunction, batch:[Matrix, Matrix], x:Variable, vars:Array<Variable>) {
x.initialValue = batch[0];
for(let i=0;i<iterations; i++) {
y.computeNew();
costFunction.initialize(y.value, batch[1]);
costFunction.calculateDy();
y.initializeDelta(costFunction.dy);
y.addDirsPropagate();
vars.forEach(x=>x.update(learningRate));
}
}
static MinimiseNode(y:CompNode, vars:Array<Variable>, learningRate:number, iterations:number) {
for(let i=0; i<iterations; i++) {
y.computeNew();
y.initialiseBackProp();
y.resetDelta(1);
y.addDirsPropagate();
vars.forEach(x=>x.update(learningRate));
}
}
}