public void ForwardBackwardで形が変わらない()
        {
            var func = new MeanSquaredError();
            var x0   = new Variable(Matrix <float> .Build.DenseOfArray(new float[, ] {
                { 1, 1, 1 }
            }));

            var loss = func.Forward(
                x0,
                new Variable(Matrix <float> .Build.DenseOfArray(new float[, ] {
                { 1, 2, 3 }
            }))
                );

            loss.CurrentGrad = loss.Value;
            var gxs = func.Backward(loss).ToList();

            Assert.AreEqual(gxs[0].ColumnCount, x0.Value.ColumnCount);
            Assert.AreEqual(gxs[0].RowCount, x0.Value.RowCount);
        }
        public void Forwardできる()
        {
            var func = new MeanSquaredError();
            var loss = func.Forward(
                new Variable(Matrix <float> .Build.DenseOfArray(new float[, ] {
                { 1, 1, 1 }
            })),
                new Variable(Matrix <float> .Build.DenseOfArray(new float[, ] {
                { 1, 2, 3 }
            }))
                );

            Helper.AssertMatrixAlmostEqual(
                loss.Value,
                Matrix <float> .Build.DenseOfArray(new float[, ] {
                { 1.6666666269302368f }
            }),
                delta: 0.00001f
                );
        }