Interface IWorker
Public interface for Workers. A worker is able to schedule models execution for a given backend.
Use WorkerFactory
to instantiate a worker.
Syntax
public interface IWorker : IDisposable
Methods
Execute()
Non-blocking API that schedules network execution in one go
Remark: This API will only be non-blocking for GPU inference.
Declaration
Execute(IDictionary<String, Tensor>)
Non-blocking API that schedules network execution in one go, using the provider tensor dictionary for inputs.
Remark: This API will only be non-blocking for GPU inference.
Declaration
void Execute(IDictionary<string, Tensor> inputs)
Parameters
Execute(Tensor)
Non-blocking API that schedules network execution in one go, using the provider tensor as input.
Remark: This API will only be non-blocking for GPU inference.
Useful when network have only one input as input name is not needed.
Declaration
void Execute(Tensor input)
Parameters
Type |
Name |
Description |
Tensor |
input |
|
ExecuteAsync()
Non-blocking API that schedules network execution one layer at the time.
Remark: This API will only be non-blocking for GPU inference.
Check GetAsyncProgress() for progress.
Declaration
IEnumerator ExecuteAsync()
Returns
ExecuteAsync(IDictionary<String, Tensor>)
Non-blocking API that schedules network execution one layer at the time, using the provider tensor dictionary for inputs.
Remark: This API will only be non-blocking for GPU inference.
Check GetAsyncProgress() for progress.
Declaration
IEnumerator ExecuteAsync(IDictionary<string, Tensor> inputs)
Parameters
Returns
ExecuteAsync(Tensor)
Non-blocking API that schedules network execution one layer at the time, using the provider tensor as input.
Remark: This API will only be non-blocking for GPU inference.
Useful when network have only one input as input name is not needed.
Check GetAsyncProgress() for progress.
Declaration
IEnumerator ExecuteAsync(Tensor input)
Parameters
Type |
Name |
Description |
Tensor |
input |
|
Returns
GetAsyncProgress()
Progress of the scheduling, 0.0 = 0%, 1.0 = 100%
Declaration
Returns
PeekConstants(String)
Returns references to constants tensors for a layer. This reference might be valid only until the next Execute()
or Dispose()
method is called on the worker.
IMPORTANT: if you want tensor to outlive the worker, use CopyOutput()
method or follow with TakeOwnership()
call on the tensor, also worker Execute()
or PrepareForInput() should have been called at least once for the tensors to exist.
Declaration
Tensor[] PeekConstants(string layerName)
Parameters
Type |
Name |
Description |
String |
layerName |
|
Returns
PeekOutput()
Returns a reference to the first output tensor. This reference will be valid only until the next Execute()
or Dispose()
method is called on the worker.
Useful when network has only one output.
IMPORTANT: if you want tensor to outlive the worker, use CopyOutput()
method or follow with TakeOwnership()
call on the tensor.
Declaration
Returns
PeekOutput(String)
Returns a reference to output tensor by name. This reference will be valid only until the next Execute()
or Dispose()
method is called on the worker.
IMPORTANT: if you want tensor to outlive the worker, use CopyOutput()
method or follow with TakeOwnership()
call on the tensor.
Declaration
Tensor PeekOutput(string name)
Parameters
Type |
Name |
Description |
String |
name |
|
Returns
Optional method to prepare network for particular input dimensions
Declaration
void PrepareForInput(IDictionary<string, TensorShape> inputShapes)
Parameters
Specify tensor value for the named input of the network.
Declaration
void SetInput(string name, Tensor x)
Parameters
Specify single tensor value as the input for the network.
Useful when network has only one input and caller does not need to know input's name.
Declaration
Parameters
Type |
Name |
Description |
Tensor |
x |
|
Summary()
Returns a string summary after execution.
Declaration
Returns
WaitForCompletion()
Wait for completion of part of the network that was scheduled via ExecuteAsync()
Declaration
Extension Methods
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.