Class Worker
Represents a worker that allows you to execute neural networks (models).
Worker
abstracts implementation details on different hardware devices such as the CPU and the GPU. Worker
lets you do the following:
- Specify inputs.
- Schedule the work.
- Get outputs.
Internally, Worker
translates the neural network from a Model into a set of operations, then sends the operations to the hardware device for asynchronous execution.
Implements
Inherited Members
Namespace: Unity.Sentis
Assembly: Unity.Sentis.dll
Syntax
public class Worker : IDisposable
Constructors
Worker(Model, BackendType)
Creates and initializes a Worker with a model on a backend type.
Declaration
public Worker(Model model, BackendType backendType)
Parameters
Type | Name | Description |
---|---|---|
Model | model | The model for the worker. |
BackendType | backendType | The backend type for the worker. |
Worker(Model, DeviceType)
Creates and initializes a Worker with a model on a backend type.
The fastest backend type for the device type will be chosen.
Declaration
public Worker(Model model, DeviceType deviceType)
Parameters
Type | Name | Description |
---|---|---|
Model | model | The model for the worker. |
DeviceType | deviceType | The device type for the worker. |
Properties
backendType
Returns the backend type of the worker.
Declaration
public BackendType backendType { get; }
Property Value
Type | Description |
---|---|
BackendType |
Methods
CopyOutput(int, ref Tensor)
Schedule a copy of the output tensor at an index into a tensor.
If, the input tensor is null, Sentis will allocate a new one If not, the input tensor dataType must match the output and have large enough capacity for the output shape.
Sentis reshapes the provided tensor if the shape does not match.
Declaration
public void CopyOutput(int index, ref Tensor tensor)
Parameters
Type | Name | Description |
---|---|---|
int | index | The index of the output. |
Tensor | tensor | The tensor to copy the output into. |
CopyOutput(string, ref Tensor)
Schedule a copy of the output tensor with a name into a tensor.
If, the input tensor is null, Sentis will allocate a new one If not, the input tensor dataType must match the output and have large enough capacity for the output shape.
Sentis reshapes the provided tensor if the shape does not match.
Declaration
public void CopyOutput(string name, ref Tensor tensor)
Parameters
Type | Name | Description |
---|---|---|
string | name | The name of the output. |
Tensor | tensor | The tensor to copy the output into. |
Dispose()
Disposes of the worker and any associated memory.
Declaration
public void Dispose()
~Worker()
Finalizes the Worker
.
Declaration
protected ~Worker()
PeekOutput()
Returns a reference to the default output tensor. This is non-blocking.
For models with more than one output this returns a reference to the first output tensor.
The reference is valid only until you call Execute()
or Dispose()
on the worker.
Declaration
public Tensor PeekOutput()
Returns
Type | Description |
---|---|
Tensor | The output tensor reference. |
PeekOutput(int)
Returns a reference an output tensor. This is non-blocking.
The reference is valid only until you call Execute()
or Dispose()
on the worker.
Declaration
public Tensor PeekOutput(int index)
Parameters
Type | Name | Description |
---|---|---|
int | index | The index of the output tensor to peek. |
Returns
Type | Description |
---|---|
Tensor | The output tensor reference. |
PeekOutput(string)
Returns a reference to an output tensor. This is non-blocking.
The reference is valid only until you call Execute()
or Dispose()
on the worker.
Declaration
public Tensor PeekOutput(string name)
Parameters
Type | Name | Description |
---|---|---|
string | name | The name of the output tensor to peek. |
Returns
Type | Description |
---|---|
Tensor | The output tensor reference. |
Schedule()
Schedules the execution of the model on the worker. This is non-blocking.
Declaration
public void Schedule()
Schedule(Tensor)
Schedules the execution of the model on the worker. This is non-blocking.
Declaration
public void Schedule(Tensor input)
Parameters
Type | Name | Description |
---|---|---|
Tensor | input | The tensor to set to the default input of the model. |
Schedule(params Tensor[])
Schedules the execution of the model on the worker. This is non-blocking.
Declaration
public void Schedule(params Tensor[] inputs)
Parameters
Type | Name | Description |
---|---|---|
Tensor[] | inputs | The tensors to set. |
ScheduleIterable()
Schedules the execution of the model in parts. This is non-blocking.
To schedule the execution of the next layer of the model, call MoveNext
on the IEnumerator
object this method returns.
Declaration
public IEnumerator ScheduleIterable()
Returns
Type | Description |
---|---|
IEnumerator | The |
ScheduleIterable(Tensor)
Schedules the execution of the model in parts. This is non-blocking.
To schedule the execution of the next layer of the model, call MoveNext
on the IEnumerator
object this method returns.
Declaration
public IEnumerator ScheduleIterable(Tensor input)
Parameters
Type | Name | Description |
---|---|---|
Tensor | input | The tensor to set to the default input of the model. |
Returns
Type | Description |
---|---|
IEnumerator | The |
ScheduleIterable(params Tensor[])
Schedules the execution of the model in parts. This is non-blocking.
To schedule the execution of the next layer of the model, call MoveNext
on the IEnumerator
object this method returns.
Declaration
public IEnumerator ScheduleIterable(params Tensor[] inputs)
Parameters
Type | Name | Description |
---|---|---|
Tensor[] | inputs | The tensors to set. |
Returns
Type | Description |
---|---|
IEnumerator | The |
SetInput(int, Tensor)
Sets an input tensor with a index.
Declaration
public void SetInput(int index, Tensor input)
Parameters
Type | Name | Description |
---|---|---|
int | index | The index of the input to set. |
Tensor | input | The input tensor. |
SetInput(string, Tensor)
Sets an input tensor with a name.
Declaration
public void SetInput(string name, Tensor input)
Parameters
Type | Name | Description |
---|---|---|
string | name | The name of the input to set. |
Tensor | input | The input tensor. |