Join us virtually at the Women in ML Symposium on October 19 Register now

tflite::InterpreterBuilder

#include <interpreter_builder.h>

Build an interpreter capable of interpreting model.

Summary

model: A model whose lifetime must be at least as long as any interpreter(s) created by the builder. In principle multiple interpreters can be made from a single model. op_resolver: An instance that implements the OpResolver interface, which maps custom op names and builtin op codes to op registrations. The lifetime of the provided op_resolver object must be at least as long as the InterpreterBuilder; unlike model and error_reporter, the op_resolver does not need to exist for the duration of any created Interpreter objects. error_reporter: a functor that is called to report errors that handles printf var arg semantics. The lifetime of the error_reporter object must be greater than or equal to the Interpreter created by operator().

Returns a kTfLiteOk when successful and sets interpreter to a valid Interpreter. Note: The user must ensure the lifetime of the model (and error reporter, if provided) is at least as long as interpreter's lifetime, and a single model instance may safely be used with multiple interpreters.

Constructors and Destructors

InterpreterBuilder(const FlatBufferModel & model, const OpResolver & op_resolver)
For this constructor, the ErrorReporter will be extracted from the FlatBufferModel.
InterpreterBuilder(const ::tflite::Model *model, const OpResolver & op_resolver, ErrorReporter *error_reporter)
Builds an interpreter given only the raw flatbuffer Model object (instead of a FlatBufferModel).
InterpreterBuilder(const InterpreterBuilder &)
~InterpreterBuilder()

Public functions

AddDelegate(TfLiteDelegate *delegate)
void
Any delegates added with AddDelegate will be applied to the Interpreter generated by operator(), in the order that they were added.
PreserveAllTensorsExperimental()
Enables preserving intermediates for debugging.
SetNumThreads(int num_threads)
TfLiteStatus
Sets the number of CPU threads to use for the interpreter.
operator()(std::unique_ptr< Interpreter > *interpreter)
TfLiteStatus
Builds an interpreter and stores it in *interpreter.
operator()(std::unique_ptr< Interpreter > *interpreter, int num_threads)
TfLiteStatus
Same as above, but also sets the number of CPU threads to use (overriding any previous call to SetNumThreads).
operator=(const InterpreterBuilder &)=delete

Public functions

AddDelegate

void AddDelegate(
  TfLiteDelegate *delegate
)

Any delegates added with AddDelegate will be applied to the Interpreter generated by operator(), in the order that they were added.

(The delegate parameter passed to AddDelegate should be non-null, otherwise an error will be reported, and the call to AddDelegate will have no other effect.) The lifetime of the delegate must be at least as long as the lifetime of any Interpreter generated by this InterpreterBuilder. WARNING: This is an experimental API and subject to change.

InterpreterBuilder

 InterpreterBuilder(
  const FlatBufferModel & model,
  const OpResolver & op_resolver
)

For this constructor, the ErrorReporter will be extracted from the FlatBufferModel.

InterpreterBuilder

 InterpreterBuilder(
  const ::tflite::Model *model,
  const OpResolver & op_resolver,
  ErrorReporter *error_reporter
)

Builds an interpreter given only the raw flatbuffer Model object (instead of a FlatBufferModel).

Mostly used for testing. If error_reporter is null, then DefaultErrorReporter() is used.

InterpreterBuilder

 InterpreterBuilder(
  const InterpreterBuilder &
)=delete

PreserveAllTensorsExperimental

InterpreterBuilder & PreserveAllTensorsExperimental()

Enables preserving intermediates for debugging.

Otherwise, by default intermediates are undefined due to memory planning and reuse.

SetNumThreads

TfLiteStatus SetNumThreads(
  int num_threads
)

Sets the number of CPU threads to use for the interpreter.

Returns kTfLiteOk on success, kTfLiteError on error.

operator()

TfLiteStatus operator()(
  std::unique_ptr< Interpreter > *interpreter
)

Builds an interpreter and stores it in *interpreter.

On success, returns kTfLiteOk and sets *interpreter to a valid Interpreter. On failure, returns an error status and sets *interpreter to nullptr.

operator()

TfLiteStatus operator()(
  std::unique_ptr< Interpreter > *interpreter,
  int num_threads
)

Same as above, but also sets the number of CPU threads to use (overriding any previous call to SetNumThreads).

Deprecated: use the SetNumThreads method instead.

operator=

InterpreterBuilder & operator=(
  const InterpreterBuilder &
)=delete

~InterpreterBuilder

 ~InterpreterBuilder()