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 an 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. |