Interface IGeneratedAlgorithm
Interface for running a generated inference algorithm
Namespace: Microsoft.ML.Probabilistic
Assembly: Microsoft.ML.Probabilistic.dll
Syntax
public interface IGeneratedAlgorithm
Properties
NumberOfIterationsDone
The number of iterations done from the initial state or since the last change of observed values
Declaration
int NumberOfIterationsDone { get; }
Property Value
Type | Description |
---|---|
Int32 |
Remarks
Changing an observed value will reset this to 0.
Methods
Execute(Int32)
Execute the inference algorithm for the specified number of iterations, starting from the initial state
Declaration
void Execute(int numberOfIterations)
Parameters
Type | Name | Description |
---|---|---|
Int32 | numberOfIterations | The number of iterations to perform from the initial state |
Remarks
Sets NumberOfIterationsDone =
.
This method is equivalent to calling numberOfIterations
Reset()
followed by Update(numberOfIterations)
.
GetObservedValue(String)
Gets an observed value
Declaration
object GetObservedValue(string variableName)
Parameters
Type | Name | Description |
---|---|---|
String | variableName | Name of the variable in the generated code |
Returns
Type | Description |
---|---|
Object | The observed value |
Marginal(String)
Get the marginal distribution (computed up to this point) of a variable
Declaration
object Marginal(string variableName)
Parameters
Type | Name | Description |
---|---|---|
String | variableName | Name of the variable in the generated code |
Returns
Type | Description |
---|---|
Object | The marginal distribution computed up to this point |
Remarks
Execute, Update, or Reset must be called first to set the value of the marginal.
Marginal(String, String)
Get the query-specific marginal distribution of a variable. For example, GibbsSampling answers "Marginal", "Samples", and "Conditionals" queries
Declaration
object Marginal(string variableName, string query)
Parameters
Type | Name | Description |
---|---|---|
String | variableName | Name of the variable in the generated code |
String | query | Query string |
Returns
Type | Description |
---|---|
Object | The query-specific marginal distribution computed up to this point |
Remarks
Execute, Update, or Reset must be called first to set the value of the marginal.
Marginal<T>(String)
Get the marginal distribution (computed up to this point) of a variable, converted to type T
Declaration
T Marginal<T>(string variableName)
Parameters
Type | Name | Description |
---|---|---|
String | variableName | Name of the variable in the generated code |
Returns
Type | Description |
---|---|
T | The marginal distribution computed up to this point |
Type Parameters
Name | Description |
---|---|
T | The distribution type. |
Remarks
Execute, Update, or Reset must be called first to set the value of the marginal. The conversion operation may be costly, even if the marginal already has type T. For maximum efficiency, use the non-generic Marginal method when conversion is not needed.
Marginal<T>(String, String)
Get the query-specific marginal distribution of a variable, converted to type T
Declaration
T Marginal<T>(string variableName, string query)
Parameters
Type | Name | Description |
---|---|---|
String | variableName | Name of the variable in the generated code |
String | query | Query |
Returns
Type | Description |
---|---|
T | The query-specific marginal distribution computed up to this point |
Type Parameters
Name | Description |
---|---|
T | Type to cast to |
Remarks
Execute, Update, or Reset must be called first to set the value of the marginal. The conversion operation may be costly, even if the marginal already has type T. For maximum efficiency, use the non-generic Marginal method when conversion is not needed.
Reset()
Reset all messages to their initial values. Sets NumberOfIterationsDone to 0
Declaration
void Reset()
Remarks
This method is equivalent to calling Execute(0)
SetObservedValue(String, Object)
Sets an observed value
Declaration
void SetObservedValue(string variableName, object value)
Parameters
Type | Name | Description |
---|---|---|
String | variableName | Name of the variable in the generated code |
Object | value | The observed value |
Update(Int32)
Perform additional iterations of the inference algorithm
Declaration
void Update(int additionalIterations)
Parameters
Type | Name | Description |
---|---|---|
Int32 | additionalIterations | The number of additional iterations to perform |
Remarks
If no observed values have changed, this method increments NumberOfIterationsDone
by additionalIterations
,
and is equivalent to calling Execute(NumberOfIterationsDone + additionalIterations)
.
If some observed values have changed, this method sets NumberOfIterationsDone =
,
and is not equivalent to calling additionalIterations
Execute
, because it will start from the existing message state rather than the initial state.
Events
ProgressChanged
Fired when the progress of inference changes, typically at the end of one iteration of the inference algorithm
Declaration
event EventHandler<ProgressChangedEventArgs> ProgressChanged
Event Type
Type | Description |
---|---|
EventHandler<ProgressChangedEventArgs> |