public override IntPtr Operator(TTrainer trainer, float minLearningRate, int cacheSize) { BatchTrainerHelper.GetTypes <TScalar, TTrainer>(out _, out var svmTrainerType, out var svmKernelType, out var sampleType); if (!(minLearningRate > 0)) { throw new ArgumentOutOfRangeException($"{nameof(minLearningRate)} must be greater than 0."); } if (!(cacheSize > 0)) { throw new ArgumentOutOfRangeException($"{nameof(cacheSize)} must be greater than 0."); } var error = NativeMethods.verbose_batch_cached_float(svmKernelType.ToNativeKernelType(), sampleType.ToNativeMatrixElementType(), svmTrainerType, trainer.NativePtr, minLearningRate, cacheSize, out var ret); switch (error) { case NativeMethods.ErrorType.MatrixElementTypeNotSupport: throw new ArgumentException($"{sampleType} is not supported."); case NativeMethods.ErrorType.SvmBatchTrainerNotSupport: throw new ArgumentException($"{svmTrainerType} is not supported."); case NativeMethods.ErrorType.SvmKernelNotSupport: throw new ArgumentException($"{svmKernelType} is not supported."); } return(ret); }
public abstract IntPtr Operator(TTrainer trainer, TScalar minLearningRate, int cacheSize);