public void tf_conv_test()
        {
            using (var K = new TensorFlowBackend())
            {
                Array input = Matrix.Magic(5);
                input = input.ExpandDimensions(0);
                input = input.ExpandDimensions(3);

                Array kernel = new double[, ]
                {
                    { 1, 2 },
                    { 3, 4 },
                };

                kernel = kernel.ExpandDimensions(2);
                kernel = kernel.ExpandDimensions(3);

                Tensor input_var  = K.variable(array: input, dtype: DataType.Float);
                Tensor kernel_var = K.variable(array: kernel, dtype: DataType.Float);

                Tensor conv = K.conv2d(input_var, kernel_var, new[] { 1, 1, 1, 1 }, PaddingType.Valid);
                float[,,,] output = (float[, , , ])conv.eval();

                Assert.AreEqual(new double[, ] {
                    { 1, 2, 3, 4 }
                }, output);
            }
        }