public double[] Forward(List <Comparison> vals, StonkContext ctxt, StonkMem sm) { Parallel.For(0, vals.Count(), j => { sm.LocationOutputs[j].Add(vals[j].Values.Duplicate()); for (int i = 0; i < Network.Layers.Count(); i++) { sm.LocationOutputs[j].Add(Network.Layers[i].Output(sm.LocationOutputs[j].Last())); } ctxt.Contextualize(vals[j], j, sm); }); return(sm.Multiply()); }
public double[] Forward(List <Comparison> vals, StonkContext context) { double[] ctxt = new double[vals.Count()]; double[,] loc = new double[vals.Count(), MktSize]; Parallel.For(0, vals.Count(), j => { double[] a = vals[j].Values.Duplicate(); for (int i = 0; i < Network.Layers.Count(); i++) { a = Network.Layers[i].Output(a); } loc.SetRank(a, j); ctxt[j] = context.Contextualize(vals[j]); }); return(loc.Multiply(Activations.SoftMax(ctxt))); }