Numpy.NET で Sigmoid レイヤー

C# で「ゼロから作るDeep Learning」に挑戦中。現在地点は 5.5.2。

今回は Sigmoid レイヤーを写経するだけ。

using Numpy;

public class Sigmoid
{
    private NDarray? _out;

    public NDarray forward(NDarray x)
    {
        var @out = 1 / (1 + np.exp(-x));
        _out = @out;

        return @out;
    }

    public NDarray backward(NDarray dout)
    {
        var dx = dout * (1.0 - _out) * _out;

        return dx;
    }
}