Class TextureAsTensorData
Texture based Tensor storage
Inherited Members
Namespace: Unity.Barracuda
Assembly: Unity.Barracuda.dll
Syntax
public class TextureAsTensorData : UniqueResourceId, ITensorData, IDisposable, ITensorDataStatistics, IUniqueResource
Constructors
TextureAsTensorData(Texture, int, Flip, InterpretDepthAs, InterpretColorAs)
Create TextureAsTensorData from supplied texture
Declaration
public TextureAsTensorData(Texture texture, int interpretPixelAsChannels = -1, TextureAsTensorData.Flip flip = Flip.Y, TextureAsTensorData.InterpretDepthAs depthAs = InterpretDepthAs.Batch, TextureAsTensorData.InterpretColorAs colorAs = InterpretColorAs.AverageMultipleChannels)
Parameters
| Type | Name | Description |
|---|---|---|
| Texture | texture | texture |
| int | interpretPixelAsChannels | interpret pixel as channels |
| TextureAsTensorData.Flip | flip | flip |
| TextureAsTensorData.InterpretDepthAs | depthAs | depth as |
| TextureAsTensorData.InterpretColorAs | colorAs | color as |
TextureAsTensorData(Texture[], int, Flip, InterpretDepthAs, InterpretColorAs)
Create TextureAsTensorData from supplied textures
Declaration
public TextureAsTensorData(Texture[] textures, int interpretPixelAsChannels = -1, TextureAsTensorData.Flip flip = Flip.Y, TextureAsTensorData.InterpretDepthAs depthAs = InterpretDepthAs.Batch, TextureAsTensorData.InterpretColorAs colorAs = InterpretColorAs.AverageMultipleChannels)
Parameters
| Type | Name | Description |
|---|---|---|
| Texture[] | textures | backing textures |
| int | interpretPixelAsChannels | interpret pixel as channels |
| TextureAsTensorData.Flip | flip | flip |
| TextureAsTensorData.InterpretDepthAs | depthAs | depth as |
| TextureAsTensorData.InterpretColorAs | colorAs | color as |
Exceptions
| Type | Condition |
|---|---|
| ArgumentException | thrown if textures array is empty or texture types are different |
| InvalidOperationException | thrown if unsupported texture type is supplied |
TextureAsTensorData(Texture[], Flip, InterpretDepthAs, InterpretColorAs, Vector4, Vector4, int)
Create TextureAsTensorData from supplied textures
Declaration
public TextureAsTensorData(Texture[] textures, TextureAsTensorData.Flip flip, TextureAsTensorData.InterpretDepthAs depthAs, TextureAsTensorData.InterpretColorAs colorAs, Vector4 scale, Vector4 bias, int interpretPixelAsChannels)
Parameters
| Type | Name | Description |
|---|---|---|
| Texture[] | textures | backing textures |
| TextureAsTensorData.Flip | flip | flip |
| TextureAsTensorData.InterpretDepthAs | depthAs | depth as |
| TextureAsTensorData.InterpretColorAs | colorAs | color as |
| Vector4 | scale | multiplies |
| Vector4 | bias | substracts |
| int | interpretPixelAsChannels | interpret pixel as channels |
Exceptions
| Type | Condition |
|---|---|
| ArgumentException | thrown if textures array is empty or texture types are different |
| InvalidOperationException | thrown if unsupported texture type is supplied |
Properties
bias
subtracts bias texture value
Declaration
public Vector4 bias { get; }
Property Value
| Type | Description |
|---|---|
| Vector4 |
dataType
Returns the type of the elements this tensorData can contain.
Declaration
public virtual DataType dataType { get; }
Property Value
| Type | Description |
|---|---|
| DataType |
flip
Flip flag
Declaration
public TextureAsTensorData.Flip flip { get; }
Property Value
| Type | Description |
|---|---|
| TextureAsTensorData.Flip |
inUse
Declaration
public virtual bool inUse { get; }
Property Value
| Type | Description |
|---|---|
| bool |
interpretColorAs
Interpret color as
Declaration
public TextureAsTensorData.InterpretColorAs interpretColorAs { get; }
Property Value
| Type | Description |
|---|---|
| TextureAsTensorData.InterpretColorAs |
interpretDepthAs
Interpret depth as
Declaration
public TextureAsTensorData.InterpretDepthAs interpretDepthAs { get; }
Property Value
| Type | Description |
|---|---|
| TextureAsTensorData.InterpretDepthAs |
interpretPixelAsChannels
Interpret pixel as channels
Declaration
public int interpretPixelAsChannels { get; }
Property Value
| Type | Description |
|---|---|
| int |
isGPUMem
Declaration
public virtual bool isGPUMem { get; }
Property Value
| Type | Description |
|---|---|
| bool |
maxCapacity
Returns the maximum number of element this tensorData can contain.
Declaration
public virtual int maxCapacity { get; }
Property Value
| Type | Description |
|---|---|
| int |
scale
multiplies scales texture value
Declaration
public Vector4 scale { get; }
Property Value
| Type | Description |
|---|---|
| Vector4 |
shape
Shape
Declaration
public TensorShape shape { get; }
Property Value
| Type | Description |
|---|---|
| TensorShape |
textures
Backing textures
Declaration
public Texture[] textures { get; }
Property Value
| Type | Description |
|---|---|
| Texture[] |
Methods
Dispose()
Dispose
Declaration
public virtual void Dispose()
Download(TensorShape)
Returns an array filled with the values of a tensor.
Depending on the implementation and underlying device this array might be a copy or direct reference to the tensor values.
This is a blocking call, unless data from device was requested via ScheduleAsyncDownload beforehand and has already arrived.
Declaration
public virtual float[] Download(TensorShape shape)
Parameters
| Type | Name | Description |
|---|---|---|
| TensorShape | shape | the TensorShape (and thus length) of the data to copy |
Returns
| Type | Description |
|---|---|
| float[] | Tensor data as |
Reserve(int)
Reserve uninitialized memory.
Declaration
public virtual void Reserve(int count)
Parameters
| Type | Name | Description |
|---|---|---|
| int | count | element count to reserve |
ScheduleAsyncDownload(int)
Schedule an asynchronous download from device memory.
count is the number of element to readback.
Declaration
public virtual bool ScheduleAsyncDownload(int count)
Parameters
| Type | Name | Description |
|---|---|---|
| int | count | count of elements to download |
Returns
| Type | Description |
|---|---|
| bool |
|
SharedAccess(out int)
Returns an array filled with the values of multiple tensors that share the same tensorData on device.
Depending on the implementation and underlying device this array might be a copy or direct reference to tensor values, no conversion from on device memory layout will occur.
This is a blocking call, unless data from device was requested via ScheduleAsyncDownload beforehand and has already arrived.
Declaration
public virtual BarracudaArray SharedAccess(out int offset)
Parameters
| Type | Name | Description |
|---|---|---|
| int | offset | This function outputs |
Returns
| Type | Description |
|---|---|
| BarracudaArray | array filled with the values of multiple tensors that share the same tensorData on device |
Upload(float[], TensorShape, int)
Initialize with data.
shape is the TensorShape (and thus length) of the data to copy.
managedBufferStartIndex is the offset where to start the copy in the data
Declaration
public virtual void Upload(float[] data, TensorShape shape, int managedBufferStartIndex = 0)
Parameters
| Type | Name | Description |
|---|---|---|
| float[] | data | data as |
| TensorShape | shape | Tensor shape |
| int | managedBufferStartIndex | managed buffer start index |