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); }
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); }
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); }
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); }