docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    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/BurstTensorData for info
    Inheritance
    object
    Tensor
    TensorByte
    TensorFloat
    TensorInt
    TensorShort
    Implements
    IDisposable
    Inherited Members
    object.Equals(object)
    object.Equals(object, object)
    object.GetHashCode()
    object.GetType()
    object.MemberwiseClone()
    object.ReferenceEquals(object, object)
    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.

    Declaration
    public abstract 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 abstract 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

    AttachToDevice(ITensorData)

    Associates a tensor with the block of data on a device. Sentis downloads from source on first access.

    Make sure source contains initialized and valid data that represents tensor values.

    Declaration
    public void AttachToDevice(ITensorData source)
    Parameters
    Type Name Description
    ITensorData source

    The data on device to associate to the tensor.

    CompleteAllPendingOperations()

    Completes all scheduled tensor operations on device.

    Declaration
    public void CompleteAllPendingOperations()

    DetachFromDevice(bool)

    Synchronizes the tensor data with the data on the device, then remove the tensor from the device.

    Declaration
    public ITensorData DetachFromDevice(bool disposeDeviceData = true)
    Parameters
    Type Name Description
    bool disposeDeviceData

    Whether to free the space on device after detaching.

    Returns
    Type Description
    ITensorData

    The detached tensor data.

    Dispose()

    Disposes of the tensor and any associated memory.

    Declaration
    public void Dispose()

    ~Tensor()

    Dispose of the tensor and any associated memory.

    Declaration
    protected ~Tensor()

    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.

    ReadbackRequest()

    Schedules asynchronous download of the internal data.

    Declaration
    public void ReadbackRequest()

    Reshape(TensorShape)

    Change the shape of a tensor without changing the backing data.

    The new shape must be the same length as the current shape, and the data cannot be on the GPUPixel backend.

    Declaration
    public 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.

    Overrides
    object.ToString()

    Implements

    IDisposable
    In This Article
    Back to top
    Copyright © 2024 Unity Technologies — Trademarks and terms of use
    • Legal
    • Privacy Policy
    • Cookie Policy
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)