Class Tensor
Represents data in a multidimensional array-like structure.
Ownership and lifetime:
- Disposed needs to be called on the main thread.
- Ownership is always to the owner of the object.
Data Representation:
- TensorShape represents the data layout of the tensor
- Data is held by a tensorData (ITensorData) which can be on a given backend
- Data is stored in a flattened row major format
- Data can be pending (ie computation is being done in parallel)
- call CompleteAllPendingOperations for a blocking call to finish computing the tensor's data Data can be in a non readable type (GPU/NPU)
- Call CompleteAllPendingOperations to finish computing the tensor's data
- Call ReadbackAndClone or ReadBackAndCloneAsync to allow reading the tensor's data
Data manipulation
- ToReadOnlyArray returns a copy of the tensor's data
- dataOnBackend can be manipulated directly to avoid a unnecessary copy see ComputeTensorData/CPUTensorData for info
Implements
Inherited Members
Namespace: Unity.Sentis
Assembly: Unity.Sentis.dll
Syntax
public abstract class Tensor : IDisposable
Properties
backendType
The backend type where the tensor data is currently stored.
Declaration
public BackendType backendType { get; }
Property Value
Type | Description |
---|---|
BackendType |
count
The length of the tensor (32 bit stride).
Declaration
public int count { get; }
Property Value
Type | Description |
---|---|
int |
dataOnBackend
The device-specific internal representation of the tensor data.
Declaration
public ITensorData dataOnBackend { get; }
Property Value
Type | Description |
---|---|
ITensorData |
dataType
The data type of the elements of the tensor.
Declaration
public DataType dataType { get; }
Property Value
Type | Description |
---|---|
DataType |
shape
The shape of the tensor, as a TensorShape
.
Declaration
public TensorShape shape { get; }
Property Value
Type | Description |
---|---|
TensorShape |
Methods
AdoptTensorData(ITensorData, bool)
Associates a new tensor data to the tensor.
Declaration
public void AdoptTensorData(ITensorData tensorData, bool disposePrevious = true)
Parameters
Type | Name | Description |
---|---|---|
ITensorData | tensorData | The new tensor data to associate to the tensor. |
bool | disposePrevious | Whether to dispose the previous tensor data. |
CompleteAllPendingOperations()
Completes all scheduled tensor operations on device.
Declaration
public void CompleteAllPendingOperations()
Dispose()
Disposes of the tensor and any associated memory.
Declaration
public void Dispose()
IsReadbackRequestDone()
Checks if asynchronous readback request it done.
Returns true if async readback is successful.
Declaration
public bool IsReadbackRequestDone()
Returns
Type | Description |
---|---|
bool | Whether the async readback request is successful. |
ReadbackAndClone()
Blocking download task of the internal data.
Declaration
public Tensor ReadbackAndClone()
Returns
Type | Description |
---|---|
Tensor | CPU copy of the tensor. |
ReadbackRequest()
Schedules asynchronous download of the internal data.
Declaration
public void ReadbackRequest()
ReleaseTensorData()
Sets the tensor data to null and return the previous one.
Declaration
public ITensorData ReleaseTensorData()
Returns
Type | Description |
---|---|
ITensorData | The tensor data. |
Reshape(TensorShape)
Changes the shape of a tensor without changing the backing data.
The new shape must fit in the allocated backend tensor data, and the data cannot be on the GPUPixel backend.
Declaration
public abstract void Reshape(TensorShape shape)
Parameters
Type | Name | Description |
---|---|---|
TensorShape | shape | The new shape for the tensor. |
ToString()
Returns a string that represents the Tensor
.
Declaration
public override string ToString()
Returns
Type | Description |
---|---|
string | String representation of tensor. |