Search Results for

    Show / Hide Table of Contents

    Class InferenceEngine

    An inference engine, used to perform inference tasks in Infer.NET.

    Inheritance
    Object
    InferenceEngine
    Implements
    SettableTo<InferenceEngine>
    Inherited Members
    Object.Equals(Object)
    Object.Equals(Object, Object)
    Object.GetHashCode()
    Object.GetType()
    Object.MemberwiseClone()
    Object.ReferenceEquals(Object, Object)
    Object.ToString()
    Namespace: Microsoft.ML.Probabilistic.Models
    Assembly: Microsoft.ML.Probabilistic.Compiler.dll
    Syntax
    public class InferenceEngine : SettableTo<InferenceEngine>
    Remarks

    The Debug class may be used to get debug messages for the inference engine. For example, use

    Debug.Listeners.Add(new TextWriterTraceListener(Console.Out));
    to get debug information for when compiled models and marginals are re-used.

    Constructors

    InferenceEngine()

    Creates an inference engine which uses the default inference algorithm (currently this is expectation propagation).

    Declaration
    public InferenceEngine()

    InferenceEngine(IAlgorithm)

    Creates an inference engine which uses the specified inference algorithm.

    Declaration
    public InferenceEngine(IAlgorithm algorithm)
    Parameters
    Type Name Description
    IAlgorithm algorithm

    Fields

    compiler

    The Compiler used to compile MSL into a compiled algorithm.

    Declaration
    protected ModelCompiler compiler
    Field Value
    Type Description
    ModelCompiler

    DefaultEngine

    Default inference engine whose settings will be copied onto newly created engines.

    Declaration
    public static readonly InferenceEngine DefaultEngine
    Field Value
    Type Description
    InferenceEngine

    Properties

    Algorithm

    The default inference algorithm to use. This can be overridden for individual variables or factors using the Algorithm attribute.

    Declaration
    public IAlgorithm Algorithm { get; set; }
    Property Value
    Type Description
    IAlgorithm

    Compiler

    The model compiler that this inference engine uses.

    Declaration
    public ModelCompiler Compiler { get; }
    Property Value
    Type Description
    ModelCompiler

    Groups

    List of groups

    Declaration
    public IList<VariableGroup> Groups { get; }
    Property Value
    Type Description
    IList<VariableGroup>

    ModelName

    Model name, used when naming generated classes.

    Declaration
    public string ModelName { get; set; }
    Property Value
    Type Description
    String

    ModelNamespace

    Model namespace, used when naming generated classes.

    Declaration
    public string ModelNamespace { get; set; }
    Property Value
    Type Description
    String

    Name

    The full name of the inference engine, including version

    Declaration
    public static string Name { get; }
    Property Value
    Type Description
    String

    NumberOfIterations

    The number of iterations to use when executing the compiled inference algorithm.

    Declaration
    public int NumberOfIterations { get; set; }
    Property Value
    Type Description
    Int32

    OptimiseForVariables

    The variables to optimize the engine to infer. If set to a list of variables, only the specified variables can be inferred by this engine. If set to null, any variable can be inferred by this engine.

    Declaration
    public IList<IVariable> OptimiseForVariables { get; set; }
    Property Value
    Type Description
    IList<IVariable>
    Remarks

    Setting this property to a list of variables can improve performance by removing redundent computation and storage needed to infer marginals for variables which are not on the list.

    ResetOnObservedValueChanged

    If true (default), Infer resets messages to their initial values if an observed value has changed.

    Declaration
    public bool ResetOnObservedValueChanged { get; set; }
    Property Value
    Type Description
    Boolean

    SaveFactorGraphToFolder

    If not null, the factor graph will be saved (in DGML format) to a file in the specified folder (created if necessary) under the model name and the extension ".dgml"

    Declaration
    public string SaveFactorGraphToFolder { get; set; }
    Property Value
    Type Description
    String

    ShowFactorGraph

    If true, displays the factor graph for the model, prior to compiling it.

    Declaration
    public bool ShowFactorGraph { get; set; }
    Property Value
    Type Description
    Boolean

    ShowMsl

    If true, prints the model definition in Model Specification Language (MSL), prior to compiling the model.

    Declaration
    public bool ShowMsl { get; set; }
    Property Value
    Type Description
    Boolean

    ShowProgress

    If true, prints progress information to the console during inference.

    Declaration
    public bool ShowProgress { get; set; }
    Property Value
    Type Description
    Boolean

    ShowSchedule

    If true, displays the schedule for the model, after the scheduler has run.

    Declaration
    public bool ShowSchedule { get; set; }
    Property Value
    Type Description
    Boolean

    ShowTimings

    If true, prints timing information to the console during inference.

    Declaration
    public bool ShowTimings { get; set; }
    Property Value
    Type Description
    Boolean

    ShowWarnings

    If true, any warnings encountered during model compilation will be printed to the console.

    Declaration
    public bool ShowWarnings { get; set; }
    Property Value
    Type Description
    Boolean

    Visualizer

    Provides the implementation of ShowFactorGraph, ShowSchedule, and BrowserMode.

    Declaration
    public static Visualizer Visualizer { get; set; }
    Property Value
    Type Description
    Visualizer

    Methods

    GetBuiltInAlgorithms()

    Returns an array of the built-in inference algorithms.

    Declaration
    public static IAlgorithm[] GetBuiltInAlgorithms()
    Returns
    Type Description
    IAlgorithm[]

    GetCodeToInfer(IVariable)

    Get the abstract syntax tree for the generated code.

    Declaration
    public List<ITypeDeclaration> GetCodeToInfer(IVariable var)
    Parameters
    Type Name Description
    IVariable var
    Returns
    Type Description
    List<ITypeDeclaration>

    A list of type declaration objects.

    GetCompiledInferenceAlgorithm(IVariable[])

    Returns a compiled algorithm which can later be used to infer marginal distributions for the specified variables. This method allows more fine-grained control over the inference procedure.

    Declaration
    public IGeneratedAlgorithm GetCompiledInferenceAlgorithm(params IVariable[] vars)
    Parameters
    Type Name Description
    IVariable[] vars

    The variables whose marginals are to be computed by the returned algorithm.

    Returns
    Type Description
    IGeneratedAlgorithm

    An IGeneratedAlgorithm object

    Remarks

    This method should not be used unless fine-grained control over the inference is required. Infer.NET will cache the last compiled algorithm and re-use it if possible.

    GetOutputMessage<Distribution>(IVariable)

    Computes the output message (message to the prior) for the specified variable.

    Declaration
    public Distribution GetOutputMessage<Distribution>(IVariable var)
    Parameters
    Type Name Description
    IVariable var

    The variable whose output message is to be inferred

    Returns
    Type Description
    Distribution

    The output message (or an approximation to it)

    Type Parameters
    Name Description
    Distribution

    Desired distribution type

    GetRelevantModelExpressions(IVariable[])

    For advanced use. Returns all the model expressions that are relevant to inferring the set of variables provided. This may be useful for constructing visualisations of the model.

    Declaration
    public IReadOnlyCollection<IModelExpression> GetRelevantModelExpressions(params IVariable[] vars)
    Parameters
    Type Name Description
    IVariable[] vars

    The variables to build a model for

    Returns
    Type Description
    IReadOnlyCollection<IModelExpression>

    A collection of model expressions

    Remarks

    The returned collection includes Variable and VariableArray objects which the engine has determined are relevant to inferring marginals over the variables provided. This will at least include the provided variables, but may include other relevant variables as well. It will also include MethodInvoke objects which act as priors, constraints or factors in the model.

    Group(Variable[])

    Add a variable group

    Declaration
    public VariableGroup Group(params Variable[] variables)
    Parameters
    Type Name Description
    Variable[] variables
    Returns
    Type Description
    VariableGroup

    Infer(IVariable)

    Infers the marginal distribution for the specified variable.

    Declaration
    public object Infer(IVariable var)
    Parameters
    Type Name Description
    IVariable var

    The variable whose marginal is to be inferred

    Returns
    Type Description
    Object

    The marginal distribution (or an approximation to it)

    Infer(IVariable, QueryType)

    Performs an inference query for the specified variable, given a query type.

    Declaration
    public object Infer(IVariable var, QueryType queryType)
    Parameters
    Type Name Description
    IVariable var

    The variable whose marginal is to be inferred

    QueryType queryType

    The type of query

    Returns
    Type Description
    Object

    The marginal distribution (or an approximation to it)

    Infer<TReturn>(IVariable)

    Infers the marginal distribution for the specified variable.

    Declaration
    public TReturn Infer<TReturn>(IVariable var)
    Parameters
    Type Name Description
    IVariable var

    The variable whose marginal is to be inferred

    Returns
    Type Description
    TReturn

    The marginal distribution (or an approximation to it)

    Type Parameters
    Name Description
    TReturn

    Desired return type which may be a distribution type or an array type if the argument is a VariableArray

    Infer<TReturn>(IVariable, QueryType)

    Infers the marginal distribution for the specified variable, and the specified query type

    Declaration
    public TReturn Infer<TReturn>(IVariable var, QueryType queryType)
    Parameters
    Type Name Description
    IVariable var

    The variable whose marginal is to be inferred

    QueryType queryType

    The query type

    Returns
    Type Description
    TReturn

    The marginal distribution (or an approximation to it)

    Type Parameters
    Name Description
    TReturn

    Desired return type

    InferAll(Boolean, IVariable)

    Declaration
    protected IGeneratedAlgorithm InferAll(bool inferOnlySpecifiedVars, IVariable var)
    Parameters
    Type Name Description
    Boolean inferOnlySpecifiedVars
    IVariable var
    Returns
    Type Description
    IGeneratedAlgorithm

    InferAll(Boolean, IEnumerable<IVariable>)

    Declaration
    protected IGeneratedAlgorithm InferAll(bool inferOnlySpecifiedVars, IEnumerable<IVariable> vars)
    Parameters
    Type Name Description
    Boolean inferOnlySpecifiedVars
    IEnumerable<IVariable> vars
    Returns
    Type Description
    IGeneratedAlgorithm

    Reset()

    For message passing algorithms, reset all messages to their initial values.

    Declaration
    protected void Reset()

    SetTo(InferenceEngine)

    Configures this inference engine by copying the settings from the supplied inference engine.

    Declaration
    public void SetTo(InferenceEngine engine)
    Parameters
    Type Name Description
    InferenceEngine engine

    ShowFactorManager(Boolean)

    Shows the factor manager, indicating which factors are available in Infer.NET and which are supported for each built-in inference algorithm.

    Declaration
    public static void ShowFactorManager(bool showMissingEvidences)
    Parameters
    Type Name Description
    Boolean showMissingEvidences

    ShowFactorManager(Boolean, IAlgorithm[])

    Shows the factor manager, indicating which factors are available in Infer.NET and which are supported for the supplied list of inference algorithms.

    Declaration
    public static void ShowFactorManager(bool showMissingEvidences, params IAlgorithm[] algorithms)
    Parameters
    Type Name Description
    Boolean showMissingEvidences
    IAlgorithm[] algorithms

    Events

    MessageUpdated

    Event that is fired when a message that has been marked with ListenToMessages has been updated.

    Declaration
    public event MessageUpdatedEventHandler MessageUpdated
    Event Type
    Type Description
    MessageUpdatedEventHandler

    ProgressChanged

    Event that is fired when the progress of inference changes, typically at the end of one iteration of the inference algorithm.

    Declaration
    public event InferenceProgressEventHandler ProgressChanged
    Event Type
    Type Description
    InferenceProgressEventHandler

    Implements

    SettableTo<T>
    In This Article
    Back to top Copyright © .NET Foundation. All rights reserved.