compute($value), 0.001); } public function tanhProvider(): array { return [ [1.0, 0.761, 1], [1.0, 0, 0], [1.0, 1, 4], [1.0, -1, -4], [0.5, 0.462, 1], [0.3, 0, 0], ]; } /** * @dataProvider tanhDerivativeProvider * * @param float|int $value */ public function testHyperbolicTangentDerivative(float $beta, float $expected, $value): void { $tanh = new HyperbolicTangent($beta); $activatedValue = $tanh->compute($value); self::assertEqualsWithDelta($expected, $tanh->differentiate($value, $activatedValue), 0.001); } public function tanhDerivativeProvider(): array { return [ [1.0, 0, -6], [1.0, 0.419, -1], [1.0, 1, 0], [1.0, 0.419, 1], [1.0, 0, 6], [0.5, 0.786, 1], [0.5, 0.786, -1], [0.3, 1, 0], ]; } }