public override void Forward(Tensor x) { base.Forward(x); Parameter weight = BuildParam("w", new long[] { x.Shape[1], Dim }, x.ElementType, KernalInitializer, KernalConstraint, KernalRegularizer); Parameter bias = null; Output = K.Dot(x, weight.Data); if (UseBias) { bias = BuildParam("b", new long[] { 1, Dim }, x.ElementType, BiasInitializer, BiasConstraint, BiasRegularizer); Output = Output + bias.Data; } if (Act != null) { Act.Forward(Output); Output = Act.Output; } }
/// <summary> /// Forwards the inputs and compute the output /// </summary> /// <param name="x">The input SuperArray for this layer.</param> public override void Forward(SuperArray x) { base.Forward(x); Parameter weight = BuildParam("w", new Shape(x.Shape[1], Dim), KernelInitializer, KernelConstraint, KernelRegularizer); Parameter bias = null; Output = Ops.Dot(x, weight.Data); if (UseBias) { bias = BuildParam("b", new Shape(1, Dim), BiasInitializer, BiasConstraint, BiasRegularizer); Output = Output + bias.Data; } if (Act != null) { Act.Forward(Output); Output = Act.Output; } }