Current section

Files

Jump to
tflite_elixir lib tflite_interpreter_builder.ex
Raw

lib/tflite_interpreter_builder.ex

defmodule TFLiteElixir.InterpreterBuilder do
import TFLiteElixir.Errorize
alias TFLiteElixir.FlatBufferModel, as: FlatBufferModel
@type nif_resource_ok :: {:ok, reference()}
@type nif_error :: {:error, String.t()}
@doc """
New InterpreterBuilder
"""
@spec new(%FlatBufferModel{}, reference()) :: nif_resource_ok() | nif_error()
def new(%FlatBufferModel{model: model}, resolver) when is_reference(resolver) do
TFLiteElixir.Nif.interpreterBuilder_new(model, resolver)
end
deferror(new(model, resolver))
@doc """
Build the interpreter with the InterpreterBuilder.
Note: all Interpreters should be built with the InterpreterBuilder,
which allocates memory for the Interpreter and does various set up
tasks so that the Interpreter can read the provided model.
"""
@spec build(reference(), reference()) :: :ok | nif_error()
def build(self, interpreter) do
TFLiteElixir.Nif.interpreterBuilder_build(self, interpreter)
end
deferror(build(self, interpreter))
@doc """
Sets the number of CPU threads to use for the interpreter.
Returns `true` on success, `{:error, reason}` on error.
"""
@spec setNumThreads(reference(), integer()) :: :ok | nif_error()
def setNumThreads(self, num_threads) when is_integer(num_threads) and num_threads >= -1 do
TFLiteElixir.Nif.interpreterBuilder_setNumThreads(self, num_threads)
end
deferror(setNumThreads(self, num_threads))
end