Beispiel #1
0
        public Tensor argmax(Tensor x, int axis = -1)
        {
            // https://github.com/fchollet/keras/blob/f65a56fb65062c8d14d215c9f4b1015b97cc5bf3/keras/backend/cntk_backend.py#L745
            var _axis = new Axis(axis);
            var _x    = In(x);

            CNTK.Function output = C.Argmax(_x.function, _axis);
            output = _reshape_dummy_dim(output, axis);
            return(Out(output));
        }
Beispiel #2
0
        C.Function get_mask_and_infer_from_last_dimension(C.Function inputs, C.Function mask)
        {
            if (mask == null)
            {
                var inputs_shape = inputs.Output.Shape.Dimensions.ToArray();
                var ndims        = inputs_shape.Length - 1;
                var x            = CC.Sqrt(CC.ReduceSum(CC.Square(inputs), new C.Axis(ndims - 1)));
                x = CC.Squeeze(x);
                System.Diagnostics.Debug.Assert(x.Output.Shape.Dimensions.Count == 1);
                x    = CC.Argmax(x, new C.Axis(0));
                mask = CC.OneHotOp(x, numClass: (uint)inputs_shape[0], outputSparse: false, axis: new C.Axis(0));
            }
            mask = CC.Reshape(mask, mask.Output.Shape.AppendShape(new int[] { 1 }));
            var masked = CC.ElementTimes(inputs, mask);

            masked = CC.Flatten(masked);
            masked = CC.Squeeze(masked);
            return(masked);
        }
Beispiel #3
0
 public Tensor Argmax(Tensor x, int dim = -1)
 {
     return(Out(C.Argmax(In(x), new Axis(dim))));
 }
Beispiel #4
0
 public CNTKTensor argmax(CNTKTensor x, int axis = -1)
 {
     return(tensor(C.Argmax(x.variable, new Axis(axis))));
 }
Beispiel #5
0
 public Tensor Argmax(Tensor x, int dim = -1)
 {
     dim = CorrDim(x.DimCount, dim);
     return(Out(C.Argmax(In(x), new Axis(dim))));
 }