public (FloatArray p, FloatArray s, FloatArray x) FeedForward(FloatArray c1, FloatArray c2) { var x = c1.Union(c2); var p = ActivationFunctions.Tanh(((x.T * w).SumLine() + b)); var s = ActivationFunctions.Sigmoid((p.T * wScore).SumLine()); return(p, s, x); }
public (FloatArray z, FloatArray fGate, FloatArray iGate, FloatArray cGate, FloatArray cellState, FloatArray oGate, FloatArray hState) FeedForward(FloatArray x, FloatArray hiddenState, FloatArray cellState) { var z = hiddenState.Union(x); Parallel.For(0, w.Length, i => w[i].FeedForward(z)); var c = F.Output * cellState + I.Output * C.Output; var h = O.Output * c.Tanh(); return(z, F.Output, I.Output, C.Output, c, O.Output, h); }