public void BiasBackward() { var outputGradient = new Double.Volume( new[] { 1.0, 2.0, 3.0, 1.0, 2.0, 3.0 }, new Shape(2, 1, 3, 1)); var biasGradient = BuilderInstance <double> .Volume.SameAs(new Shape(1, 1, 3, 1)); outputGradient.BiasGradient(biasGradient); Assert.AreEqual(3.0, biasGradient.Get(0, 0, 0, 0)); Assert.AreEqual(4.0, biasGradient.Get(0, 0, 1, 0)); Assert.AreEqual(5.0, biasGradient.Get(0, 0, 2, 0)); }
public void BiasBackwardBatch() { var outputGradient = new Double.Volume( new[] { 1.0, 2.0, 3.0, 1.0, 2.0, 3.0, 1.0, 2.0, 3.0, 1.0, 2.0, 3.0 }, new Shape(2, 1, 3, 2), GpuContext.Default); var biasGradient = BuilderInstance <double> .Volume.SameAs(new Shape(1, 1, 3, 1)); outputGradient.BiasGradient(biasGradient); Assert.AreEqual(6.0, biasGradient.Get(0, 0, 0, 0)); Assert.AreEqual(8.0, biasGradient.Get(0, 0, 1, 0)); Assert.AreEqual(10.0, biasGradient.Get(0, 0, 2, 0)); }