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)); }
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); }
public Tensor Argmax(Tensor x, int dim = -1) { return(Out(C.Argmax(In(x), new Axis(dim)))); }
public CNTKTensor argmax(CNTKTensor x, int axis = -1) { return(tensor(C.Argmax(x.variable, new Axis(axis)))); }
public Tensor Argmax(Tensor x, int dim = -1) { dim = CorrDim(x.DimCount, dim); return(Out(C.Argmax(In(x), new Axis(dim)))); }