public static int IndexOfMax <T>(this SpanTensor1 <T> tensor, IComparer <T> comparer = null) where T : unmanaged, IEquatable <T> { var span = tensor._Buffer; if (span.Length == 0) { return(-1); } if (comparer == null) { comparer = Comparer <T> .Default; } T max = span[0]; var idx = 0; for (int i = 1; i < span.Length; ++i) { var item = span[i]; if (comparer.Compare(max, item) > 0) { max = item; idx = i; } } return(idx); }
public static int IndexOf <T>(this SpanTensor1 <T> tensor, Predicate <T> predicate) where T : unmanaged, IEquatable <T> { var span = tensor._Buffer; for (int i = 0; i < span.Length; ++i) { if (predicate(span[i])) { return(i); } } return(-1); }
public static int IndexOf <T>(this SpanTensor1 <T> tensor, T value) where T : unmanaged, IEquatable <T> { return(tensor._Buffer.IndexOf(value)); }
public static void ApplySoftMax(this SpanTensor1 <float> tensor) { SpanTensor.ApplySoftMax(tensor.Span); }