public void EvaluateLayer_WithPassthroughAF_WithSingleInput_ReturnsInputValueTimesWeights() { FullyConnectedNN nn = new FullyConnectedNN(new[] { 1, 2 }, AF.Passthrough); int offsetWeight = 0; float[] output = nn.EvaluateLayer(new[] { 1.0f }, 1, new[] { 0.3f, -1.0f }, ref offsetWeight); AssertFloat.AreAlmostEqual(0.3f, output[0]); AssertFloat.AreAlmostEqual(-1.0f, output[1]); offsetWeight = 0; output = nn.EvaluateLayer(new[] { -0.5f }, 1, new[] { 0.5f, -1.0f }, ref offsetWeight); AssertFloat.AreAlmostEqual(-0.25f, output[0]); AssertFloat.AreAlmostEqual(0.5f, output[1]); }
public void EvaluateLayer_WithPassthroughAF_WithMultipleInputs_ReturnsCorrectValues() { FullyConnectedNN nn = new FullyConnectedNN(new[] { 2, 2 }, AF.Passthrough); int offsetWeight = 0; float[] output = nn.EvaluateLayer(new[] { 1.0f, -1.0f }, 1, new[] { 0.9f, 1.0f, 1.0f, 0.5f }, ref offsetWeight); AssertFloat.AreAlmostEqual(-0.1f, output[0]); AssertFloat.AreAlmostEqual(0.5f, output[1]); }