示例#1
0
        public static IModelCreationServiceBuilder <TInput, TResult> ConfigureModelDefinition <TInput, TResult>(
            this IModelCreationServiceBuilder <TInput, TResult> builder,
            double testSlipFraction,
            Action <ModelDefinitionBuilderOptions <TResult> > configureModel)
            where TInput : class
            where TResult : MetricsResult
        {
            // configured options for model definition
            builder.Services.AddOptions <ModelDefinitionBuilderOptions <TResult> >(builder.ModelName)
            .Configure(
                options =>
            {
                options.ModelName        = builder.ModelName;
                options.TestSlipFraction = testSlipFraction;

                configureModel(options);
            });

            // allows to add multiple instances of the typed object
            builder.Services.AddTransient <IModelDefinitionBuilder <TInput, TResult> >(sp =>
            {
                var mlContext = sp.GetRequiredService <IOptions <MLContextOptions> >();
                var options   = sp.GetRequiredService <IOptionsMonitor <ModelDefinitionBuilderOptions <TResult> > >().Get(builder.ModelName);
                var logger    = sp.GetRequiredService <ILogger <ModelDefinitionBuilder <TInput, TResult> > >();

                return(new ModelDefinitionBuilder <TInput, TResult>(mlContext, options, logger));
            });

            return(builder);
        }
示例#2
0
 public static IModelCreationServiceBuilder <TInput, TResult> AddSourceLoader <TInput, TResult, TLoader>(
     this IModelCreationServiceBuilder <TInput, TResult> builder,
     Action <SourceLoaderFileOptions <TInput> > configure,
     ServiceLifetime serviceLifetime = ServiceLifetime.Transient)
     where TInput : class
     where TResult : MetricsResult
     where TLoader : SourceLoader <TInput>
 {
     builder.Services.AddSourceLoader <TInput, TLoader>(builder.ModelName, configure, serviceLifetime);
     return(builder);
 }
示例#3
0
 public static IModelCreationServiceBuilder <TInput, TResult> AddModelLoader <TInput, TResult, TLoader>(
     this IModelCreationServiceBuilder <TInput, TResult> builder,
     Action <ModelLoderFileOptions>?configure = null,
     ServiceLifetime serviceLifetime          = ServiceLifetime.Transient)
     where TInput : class
     where TResult : MetricsResult
     where TLoader : ModelLoader
 {
     // adds model loader to DI
     builder.Services.AddModelLoader <TInput, TLoader>(builder.ModelName, configure, serviceLifetime);
     return(builder);
 }
示例#4
0
        public static IModelCreationServiceBuilder <TInput, TResult> ConfigureService <TInput, TResult>(
            this IModelCreationServiceBuilder <TInput, TResult> builder,
            Action <ModelCreationEngineOptions <TInput, TResult> > configureEngine)
            where TInput : class
            where TResult : MetricsResult
        {
            builder.Services.AddOptions <ModelCreationEngineOptions <TInput, TResult> >(builder.ModelName)
            .Configure(
                options =>
            {
                options.ModelName = builder.ModelName;
                configureEngine?.Invoke(options);
            });

            return(builder);
        }