既知の直接サブクラス |
モデルの入力または出力のデータ バッファーを表します。
パブリックメソッド
静的TensorBuffer | |
静的TensorBuffer | |
静的TensorBuffer | createFrom ( TensorBufferバッファ、 DataType dataType) 指定された DataType を使用して、別のデータからデータをディープコピーするTensorBuffer を作成します。 |
バイトバッファ | getBuffer () データバッファを返します。 |
抽象データ型 | getDataType () このバッファのデータ型を返します。 |
整数 | getFlatSize () バッファの flatSize を取得します。 |
抽象浮動小数点数[] | getFloatArray () このバッファに格納されている値の float 配列を返します。 |
抽象的なフロート | getFloatValue (int absIndex) 指定されたインデックスの float 値を返します。 |
抽象整数[] | getIntArray () このバッファに格納されている値の int 配列を返します。 |
抽象整数 | getIntValue (int absIndex) 指定されたインデックスの int 値を返します。 |
int[] | getShape () 現在の形状を取得します。 |
抽象整数 | getTypeSize () 配列内の単一要素のバイト数を返します。 |
ブール値 | isDynamic () TensorBuffer が動的サイズであるかどうかを返します (任意にサイズ変更できる)。 |
抽象的な空白 | loadArray (int[] src、int[] シェイプ) 特定の形状を持つ int 配列をこのバッファーにロードします。 |
抽象的な空白 | loadArray (float[] src、int[] シェイプ) 特定の形状を持つ浮動小数点配列をこのバッファーにロードします。 |
空所 | loadArray (float[] src) float 配列をこのバッファにロードします。 |
空所 | ロード配列(int[] src) int 配列をこのバッファにロードします。 |
空所 | |
空所 |
継承されたメソッド
パブリックメソッド
public static TensorBuffer createDynamic ( DataType dataType)
指定されたDataType
を使用して空の動的TensorBuffer
を作成します。作成されたTensorBuffer
の形状は {0} です。
動的 TensorBuffers は、異なるバッファ サイズの配列またはデータ バッファをロードするときにメモリを再割り当てします。以下にいくつかの例を示します。
// Creating a float dynamic TensorBuffer: TensorBuffer tensorBuffer = TensorBuffer.createDynamic(DataType.FLOAT32); // Loading a float array: float[] arr1 = new float[] {1, 2, 3}; tensorBuffer.loadArray(arr, new int[] {arr1.length}); // loading another float array: float[] arr2 = new float[] {1, 2, 3, 4, 5}; tensorBuffer.loadArray(arr, new int[] {arr2.length}); // loading a third float array with the same size as arr2, assuming shape doesn't change: float[] arr3 = new float[] {5, 4, 3, 2, 1}; tensorBuffer.loadArray(arr); // loading a forth float array with different size as arr3 and omitting the shape will result // in error: float[] arr4 = new float[] {3, 2, 1}; tensorBuffer.loadArray(arr); // Error: The size of byte buffer and the shape do not match.
パラメーター
データ・タイプ | 作成されるTensorBuffer の dataType。 |
---|
public static TensorBuffer createFixedSize (int[] 形状、 DataType dataType)
指定されたshape
とDataType
でTensorBuffer
を作成します。以下にいくつかの例を示します。
// Creating a float TensorBuffer with shape {2, 3}: int[] shape = new int[] {2, 3}; TensorBuffer tensorBuffer = TensorBuffer.createFixedSize(shape, DataType.FLOAT32);
// Creating an uint8 TensorBuffer of a scalar: int[] shape = new int[] {}; TensorBuffer tensorBuffer = TensorBuffer.createFixedSize(shape, DataType.UINT8);
// Creating an empty uint8 TensorBuffer: int[] shape = new int[] {0}; TensorBuffer tensorBuffer = TensorBuffer.createFixedSize(shape, DataType.UINT8);
固定サイズの TensorBuffer のサイズは、作成後に変更することはできません。
パラメーター
形 | 作成されるTensorBuffer の形状。 |
---|---|
データ・タイプ | 作成されるTensorBuffer の dataType。 |
投げる
NullPointerException | shape が null の場合。 |
---|---|
IllegalArgumentException | shape に非正の要素がある場合。 |
public static TensorBuffer createFrom ( TensorBufferバッファ、 DataType dataType)
指定されたDataType
を使用して、別のデータからデータをディープコピーするTensorBuffer
を作成します。
パラメーター
バッファ | コピー元のソースTensorBuffer 。 |
---|---|
データ・タイプ | 新しく作成されたTensorBuffer の予想されるDataType 。 |
投げる
NullPointerException | buffer がnullの場合。 |
---|
パブリック抽象 float[] getFloatArray ()
このバッファに格納されている値の float 配列を返します。バッファーの型が float ではない場合、値は float に変換されます。たとえば、 TensorBufferUint8
の値は uint8 から float に変換されます。
public abstract float getFloatValue (int absIndex)
指定されたインデックスの float 値を返します。バッファーの型が float 以外の場合、値は float に変換されます。たとえば、 TensorBufferUint8
から値を読み取る場合、値は最初に uint8 として読み取られ、次に uint8 から float に変換されます。
For example, a TensorBuffer with shape {2, 3} that represents the following array, [[0.0f, 1.0f, 2.0f], [3.0f, 4.0f, 5.0f]]. The fourth element (whose value is 3.0f) in the TensorBuffer can be retrieved by: float v = tensorBuffer.getFloatValue(3);
パラメーター
腹筋インデックス | 読み取られる値の絶対インデックス。 |
---|
public abstract int[] getIntArray ()
このバッファに格納されている値の int 配列を返します。バッファーの型が int とは異なる場合、値は int に変換され、精度が失われる可能性があります。たとえば、値が {400.32f, 23.04f} であるTensorBufferFloat
から int 配列を取得すると、出力は {400, 23} になります。
public abstract int getIntValue (int absIndex)
指定されたインデックスの int 値を返します。バッファーの型が int 以外の場合、値は int に変換されます。たとえば、 TensorBufferFloat
から値を読み取る場合、値は最初に float として読み取られ、次に float から int に変換されます。精度が失われる可能性があります。
For example, a TensorBuffer with shape {2, 3} that represents the following array, [[0.0f, 1.0f, 2.0f], [3.0f, 4.0f, 5.0f]]. The fourth element (whose value is 3.0f) in the TensorBuffer can be retrieved by: int v = tensorBuffer.getIntValue(3); Note that v is converted from 3.0f to 3 as a result of type conversion.
パラメーター
腹筋インデックス | 読み取られる値の絶対インデックス。 |
---|
public int[] getShape ()
現在の形状を取得します。 (予期しない変更を避けるために、ここでコピーを返します。)
投げる
IllegalStateException | 基礎となるデータが破損している場合 |
---|
パブリック抽象 int getTypeSize ()
配列内の単一要素のバイト数を返します。たとえば、浮動小数点バッファは 4 を返し、バイト バッファは 1 を返します。
public abstract void loadArray (int[] src, int[] 形状)
特定の形状を持つ int 配列をこのバッファーにロードします。バッファーの型が int 以外の場合、値はバッファーにロードされる前にバッファーの型に変換され、精度が失われる可能性があります。たとえば、値 {400, -23} を持つ int 配列をTensorBufferUint8
にロードすると、値は [0, 255] にクランプされ、その後、{255, 0} によって uint8 にキャストされます。
パラメーター
送信元 | ロードされるソース配列。 |
---|---|
形 | src が表すテンソルの形状。 |
投げる
NullPointerException | src が null の場合。 |
---|---|
NullPointerException | shape が null の場合。 |
IllegalArgumentException | ロードされる配列のサイズが指定された形状と一致しない場合。 |
public abstract void loadArray (float[] src、int[] 形状)
特定の形状を持つ浮動小数点配列をこのバッファーにロードします。バッファーが float とは異なる型である場合、値はバッファーにロードされる前にバッファーの型に変換され、精度が失われる可能性があります。たとえば、値 {400.32f, -23.04f} を持つ float 配列をTensorBufferUint8
にロードすると、値は [0, 255] にクランプされ、その後、{255, 0} によって uint8 にキャストされます。
パラメーター
送信元 | ロードされるソース配列。 |
---|---|
形 | src が表すテンソルの形状。 |
投げる
NullPointerException | src が null の場合。 |
---|---|
NullPointerException | shape が null の場合。 |
IllegalArgumentException | ロードされる配列のサイズが指定された形状と一致しない場合。 |
public void loadArray (float[] src)
float 配列をこのバッファにロードします。バッファーが float とは異なる型である場合、値はバッファーにロードされる前にバッファーの型に変換され、精度が失われる可能性があります。たとえば、値 {400.32f, -23.04f} を持つ float 配列をTensorBufferUint8
にロードすると、値は [0, 255] にクランプされ、その後、{255, 0} によって uint8 にキャストされます。
このメソッドを使用すると、 src
の形状がこのTensorBuffer
の形状と同じであると想定されます。したがって、 buffer
( src.length
) のサイズは、固定サイズと動的TensorBuffer
の両方で、常にこのTensorBuffer
のフラット サイズと一致する必要があります。 src
形状が異なる場合は、 loadArray(float[], int[])
を使用します。
パラメーター
送信元 | ロードされるソース配列。 |
---|
public void loadArray (int[] src)
int 配列をこのバッファにロードします。バッファーの型が int 以外の場合、値はバッファーにロードされる前にバッファーの型に変換され、精度が失われる可能性があります。たとえば、値 {400, -23} を持つ int 配列をTensorBufferUint8
にロードすると、値は [0, 255] にクランプされ、その後、{255, 0} によって uint8 にキャストされます。
このメソッドを使用すると、 src
の形状がこのTensorBuffer
の形状と同じであると想定されます。したがって、 buffer
( src.length
) のサイズは、固定サイズと動的TensorBuffer
の両方で、常にこのTensorBuffer
のフラット サイズと一致する必要があります。 src
形状が異なる場合は、 loadArray(int[], int[])
を使用します。
パラメーター
送信元 | ロードされるソース配列。 |
---|
public void loadBuffer ( ByteBufferバッファ)
バイト バッファをこのTensorBuffer
にロードします。バッファ サイズは、このTensorBuffer
のフラット サイズと一致する必要があります。
このメソッドを使用すると、 buffer
の形状がこのTensorBuffer
の形状と同じであることが前提となります。したがって、 buffer
( buffer.limit()
) のサイズは、固定サイズと動的TensorBuffer
の両方で、常にこのTensorBuffer
のフラット サイズと一致する必要があります。 buffer
形状が異なる場合は、 loadBuffer(ByteBuffer, int[])
を使用します。
重要: ロードされたバッファは参照です。変更しないでください。パフォーマンスを考慮してここではコピーを作成しませんが、変更が必要な場合はコピーを作成してください。
最高のパフォーマンスを得るには、常に直接ByteBuffer
または配列によってバックアップされたByteBuffer
をロードしてください。
buffer
が読み取り専用の場合、パフォーマンスのためにコピーオンライト戦略を採用します。
パラメーター
バッファ | ロードするバイトバッファ。 |
---|
public void loadBuffer ( ByteBufferバッファー、int[] 形状)
バイト バッファを特定の形状でこのTensorBuffer
にロードします。
重要: ロードされたバッファは参照です。変更しないでください。パフォーマンスを考慮してここではコピーを作成しませんが、変更が必要な場合はコピーを作成してください。
最高のパフォーマンスを得るには、常に直接ByteBuffer
または配列によってバックアップされたByteBuffer
をロードしてください。
パラメーター
バッファ | ロードするバイトバッファ。 |
---|---|
形 |
投げる
NullPointerException | buffer がnullの場合。 |
---|---|
IllegalArgumentException | buffer のサイズとtypeSize 一致しない場合、またはbuffer のサイズとflatSize が一致しない場合。 |