public static void BackpropLayer(Matrix dy, Matrix h, Matrix w, IPerceptronFunc outputfunc, out Matrix dh, out Matrix dw) { Matrix z = (BaseMatrix)w * (BaseMatrix)h; Matrix y = outputfunc.Func(z); var dz = outputfunc.GradientAt(y); dz.ElemntsMult(dy); dh = (BaseMatrix)w.Transpose() * (BaseMatrix)dz; dw = (BaseMatrix)dz * (BaseMatrix)h.Transpose(); }
public static Matrix ForwardPropLayer(IPerceptronFunc outputfunc, Matrix x, Matrix w) { var z = (BaseMatrix)w * (BaseMatrix)x; return(outputfunc.Func(z)); }