/// <summary>2次元最大値逆プーリング</summary>
        public static VariableNode MaxUnpooling2D(VariableNode gx, VariableNode y, VariableNode x, int stride)
        {
            Function function =
                new Functions.Connection2D.MaxUnpooling(stride);

            VariableNode gy = Apply(function, gx, y, x)[0];

            return(gy);
        }
        /// <summary>2次元最大値逆プーリング</summary>
        public static Tensor MaxUnpooling2D(Tensor gx, Tensor y, Tensor x, int stride)
        {
            Function function =
                new Functions.Connection2D.MaxUnpooling(stride);

            Tensor gy = new Tensor(function.OutputShapes(x.Shape)[0]);

            function.Execute(new Tensor[] { gx, y, x }, new Tensor[] { gy });

            return(y);
        }