Quality bands are a way for you to
assess the reliability of the code generated by the Infer.NET engine.
These bands are assigned to all distributions and to all message
operators which act on these distributions. The Infer.NET model compiler
generates an error message for each expression in the generated code
which falls below a user-settable required quality band,
and generates a warning for each expression which falls below a
user-settable recommended quality band.
If you are embedding your generated code into production code, for example,
you may want to set the required quality level high, whereas if you are doing
research you would set it lower, perhaps allowing access to experimental
Quality Band Definitions
are ready for full release, meeting the highest levels of quality and
stability. Future releases of mature components will maintain a high quality
band with no breaking changes other than in exceptional circumstances. Users
should be confident using mature components, knowing that when they upgrade
from one version of Infer.NET to a newer version it will be a quick and easy
process. These components will have detailed documentation and at least one
example of usage.
are suitable for a wide range of usage scenarios and will have incorporated
substantial design and functionality feedback. They may continue evolving
via limited bug fixes, fine-tuning, and support for additional scenarios.
Stable components may have a small number of breaking API or behaviour
changes when feedback demands it. These components will have a reasonable
level of documentation which may include examples.
are intended to meet most basic usage scenarios. While in the Preview
Quality Band, these components may have a moderate number of breaking API or
behaviour changes in response to user feedback and as we learn more about
how they will be used. Users are likely to encounter bugs and functionality
issues for less common scenarios. These will have some documentation which
may be minimal.
components are work in progress and represent early stage development of new
components. They are typically usable in just a few common scenarios, and
will not have undergone rigorous testing. They are primarily intended for
use by researchers and provide an opportunity for preliminary feedback. It
is possible that a given experimental component may not be included in a
future release. These may be undocumented or only sparsely documented.
have not been marked with a quality band.
Setting Required and Recommended Bands
The required and recommended quality bands can be set on the Compiler
property for the inference engine. For example:
InferenceEngine engine =
engine.Compiler.RequiredQuality = QualityBand.Experimental;
engine.Compiler.RecommendedQuality = QualityBand.Stable;
If you want to disable the model compiler errors and/or the warnings, set the
required and recommended Quality bands to the lowest level:
engine.Compiler.RequiredQuality = QualityBand.Unknown;
engine.Compiler.RecommendedQuality = QualityBand.Unknown;