예제 #1
0
        public ModelPoolLoader(ModelPredictionEngineOptions <TInput, TPrediction> options)
        {
            _options = options ?? throw new ArgumentNullException(nameof(options));

            _mlContext = _options.ServiceProvider.GetRequiredService <IOptions <MLContextOptions> >().Value.MLContext
                         ?? throw new NullReferenceException("MLContext instance is missing");

            _logger = _options.ServiceProvider.GetRequiredService <ILoggerFactory>().CreateLogger(nameof(ModelPoolLoader <TInput, TPrediction>));

            LoadPool();

            _changeToken = ChangeToken.OnChange(
                () => _options.GetReloadToken(),
                () => LoadPool());
        }
예제 #2
0
        public ModelPredictionEngineObjectPool(
            Func <ModelPredictionEngineOptions <TData, TPrediction> > options,
            ILoggerFactory loggerFactory)
        {
            _funcOptions = options ?? throw new ArgumentNullException(nameof(options));

            _logger = loggerFactory.CreateLogger(nameof(ModelPredictionEngineObjectPool <TData, TPrediction>))
                      ?? throw new ArgumentNullException(nameof(loggerFactory));

            _options = _funcOptions();

            LoadPool();

            _changeToken = ChangeToken.OnChange(
                () => _options.GetReloadToken(),
                () => LoadPool());
        }