예제 #1
0
        public Tensor Argmin(Tensor x, int dim = 0)
        {
            dim = CorrDim(x.DimCount, dim);
            Tensor result = Out(Algorithm.TopK(In(x), 1, 0, 1));

            return(result);
        }
예제 #2
0
        public Tensor Argmin(Tensor x, int dim = 0)
        {
            if (dim < 0)
            {
                dim = CorrDim(x.DimCount, dim);
            }

            if (dim == 1)
            {
                if (x.DimCount == 2)
                {
                    x = x.Transpose();
                }
                else if (x.DimCount == 3)
                {
                    x = x.Transpose(0, 2, 1);
                }
                else if (x.DimCount == 4)
                {
                    x = x.Transpose(0, 1, 3, 2);
                }
            }

            Tensor result = Out(Algorithm.TopK(In(x), 1, 0, 1));

            if (dim == 1)
            {
                if (result.DimCount == 2)
                {
                    result = result.Transpose();
                }
                else if (result.DimCount == 3)
                {
                    result = result.Transpose(0, 2, 1);
                }
                else if (result.DimCount == 4)
                {
                    result = result.Transpose(0, 1, 3, 2);
                }
            }

            return(result);
        }