알려진 직접 서브클래스 |
모델의 입력 또는 출력의 데이터 버퍼를 나타냅니다.
공개 메서드
static TensorBuffer | |
static TensorBuffer | |
static TensorBuffer |
createFrom(TensorBuffer 버퍼, DataType dataType)
지정된
DataType 를 사용하여 다른 데이터에서 TensorBuffer 딥 복사 데이터를 만듭니다. |
ByteBuffer |
getBuffer()
데이터 버퍼를 반환합니다.
|
추상 DataType |
getDataType()
이 버퍼의 데이터 유형을 반환합니다.
|
int |
getFlatSize()
버퍼의 flatSize를 가져옵니다.
|
추상 float[] |
getFloatArray()
이 버퍼에 저장된 값의 부동 소수점 배열을 반환합니다.
|
추상 부동 소수점 |
getFloatValue(int absIndex)
지정된 색인의 부동 소수점 값을 반환합니다.
|
추상 int[] |
getIntArray()
이 버퍼에 저장된 값의 int 배열을 반환합니다.
|
추상 정수 |
getIntValue(int absIndex)
지정된 색인에서 int 값을 반환합니다.
|
int[] |
getShape()
현재 도형을 가져옵니다.
|
추상 정수 |
getTypeSize()
배열에 있는 단일 요소의 바이트 수를 반환합니다.
|
boolean |
isDynamic()
TensorBuffer 의 크기가 동적인 경우 (임의로 크기를 조절할 수 있음) 반환합니다. |
추상 void |
loadArray(int[] src, int[] shape)
이 버퍼에 특정 형태를 사용하여 int 배열을 로드합니다.
|
추상 void |
loadArray(float[] src, int[] shape)
이 버퍼에 특정 셰이프를 사용하여 부동 배열을 로드합니다.
|
void |
loadArray(float[] src)
이 버퍼에 부동 배열을 로드합니다.
|
void |
loadArray(int[] src)
이 버퍼에 int 배열을 로드합니다.
|
void | |
void |
상속된 메서드
공개 메서드
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.
매개변수
dataType | 생성할 TensorBuffer 의 dataType입니다.
|
---|
public static TensorBuffer createFixedSize (int[] shape, 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의 크기는 생성된 후에는 변경할 수 없습니다.
매개변수
shape | 생성될 TensorBuffer 의 모양입니다. |
---|---|
dataType | 생성할 TensorBuffer 의 dataType입니다. |
생성 값
NullPointerException | shape 가 null인 경우입니다. |
---|---|
IllegalArgumentException | shape 에 양수가 아닌 요소가 있는 경우입니다.
|
public static TensorBuffer createFrom (TensorBuffer 버퍼, DataType dataType)
지정된 DataType
를 사용하여 다른 데이터에서 TensorBuffer
딥 복사 데이터를 만듭니다.
매개변수
buffer | 복사할 소스 TensorBuffer 입니다. |
---|---|
dataType | 새로 생성된 TensorBuffer 의 예상 DataType 입니다. |
생성 값
NullPointerException | buffer 가 null인 경우입니다.
|
---|
public 추상 float[] getFloatArray ()
이 버퍼에 저장된 값의 부동 소수점 배열을 반환합니다. 버퍼의 유형이 부동 소수점 수와 다르면 값은 부동 소수점 수로 변환됩니다. 예를 들어 TensorBufferUint8
의 값은 uint8에서 float로 변환됩니다.
public summary float getFloatValue (int absIndex)
지정된 색인의 부동 소수점 값을 반환합니다. 버퍼의 유형이 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);
매개변수
absIndex | 읽을 값의 절대 색인입니다. |
---|
public 추상화 int[] getIntArray ()
이 버퍼에 저장된 값의 int 배열을 반환합니다. 버퍼의 유형이 int와 다른 경우 값은 int로 변환되며 정밀도 손실이 적용될 수 있습니다. 예를 들어 TensorBufferFloat
에서 값이 {400.32f, 23.04f}인 int 배열을 가져오면 출력은 {400, 23}입니다.
public 추상화 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.
매개변수
absIndex | 읽을 값의 절대 색인입니다. |
---|
public int[] getShape ()
현재 도형을 가져옵니다. (예기치 않은 수정을 방지하기 위해 여기에 사본을 반환합니다.)
생성 값
IllegalStateException | 기본 데이터가 손상된 경우 |
---|
public summary int getTypeSize ()
배열에 있는 단일 요소의 바이트 수를 반환합니다. 예를 들어 부동 버퍼는 4를 반환하고 바이트 버퍼는 1을 반환합니다.
public 추상 void loadArray (int[] src, int[] shape)
이 버퍼에 특정 형태를 사용하여 int 배열을 로드합니다. 버퍼가 int와 다른 유형인 경우 값은 버퍼에 로드되기 전에 버퍼의 유형으로 변환되며 정밀도 손실이 적용될 수 있습니다. 예를 들어 값이 {400, -23}인 int 배열을 TensorBufferUint8
에 로드하면 값이 [0, 255] 로 고정된 후 {255, 0}만큼 uint8로 변환됩니다.
매개변수
src | 로드할 소스 배열입니다. |
---|---|
shape | src 가 나타내는 텐서의 형태입니다. |
생성 값
NullPointerException | src 가 null인 경우입니다. |
---|---|
NullPointerException | shape 가 null인 경우입니다. |
IllegalArgumentException | 로드할 배열의 크기가 지정된 도형과 일치하지 않는 경우입니다. |
public 추상 void loadArray (float[] src, int[] shape)
이 버퍼에 특정 셰이프를 사용하여 부동 배열을 로드합니다. 버퍼가 부동 소수점과 다른 유형인 경우 값은 버퍼에 로드되기 전에 버퍼의 유형으로 변환되며 정밀도 손실이 적용될 수 있습니다. 예를 들어 부동 배열을 값이 {400.32f, -23.04f}인 TensorBufferUint8
에 로드하면 값이 [0, 255] 로 고정된 다음 {255, 0}만큼 uint8로 변환됩니다.
매개변수
src | 로드할 소스 배열입니다. |
---|---|
shape | src 가 나타내는 텐서의 형태입니다. |
생성 값
NullPointerException | src 가 null인 경우입니다. |
---|---|
NullPointerException | shape 가 null인 경우입니다. |
IllegalArgumentException | 로드할 배열의 크기가 지정된 도형과 일치하지 않는 경우입니다. |
public void loadArray (float[] src)
이 버퍼에 부동 배열을 로드합니다. 버퍼가 부동 소수점과 다른 유형인 경우 값은 버퍼에 로드되기 전에 버퍼의 유형으로 변환되며 정밀도 손실이 적용될 수 있습니다. 예를 들어 부동 배열을 값이 {400.32f, -23.04f}인 TensorBufferUint8
에 로드하면 값은 [0, 255] 로 고정된 후 {255, 0}에 의해 uint8로 변환됩니다.
이 메서드를 사용하면 src
의 모양이 이 TensorBuffer
의 모양과 동일하다고 가정합니다. 따라서 고정 크기 및 동적 TensorBuffer
에서 buffer
의 크기 (src.length
)는 항상 이 TensorBuffer
의 플랫 크기와 일치해야 합니다. src
의 모양이 다른 경우 loadArray(float[], int[])
를 사용합니다.
매개변수
src | 로드할 소스 배열입니다. |
---|
public void loadArray (int[] src)
이 버퍼에 int 배열을 로드합니다. 버퍼의 유형이 int와 다른 경우 값은 버퍼에 로드되기 전에 버퍼의 유형으로 변환되며 정밀도 손실이 적용될 수 있습니다. 예를 들어 값이 {400, -23}인 int 배열을 TensorBufferUint8
에 로드하면 값이 [0, 255] 로 고정된 후 {255, 0}에 의해 uint8로 변환됩니다.
이 메서드를 사용하면 src
의 모양이 이 TensorBuffer
의 모양과 동일하다고 가정합니다. 따라서 고정 크기 및 동적 TensorBuffer
에서 buffer
의 크기 (src.length
)는 항상 이 TensorBuffer
의 플랫 크기와 일치해야 합니다. src
의 모양이 다른 경우 loadArray(int[], int[])
를 사용합니다.
매개변수
src | 로드할 소스 배열입니다. |
---|
public void loadBuffer (ByteBuffer 버퍼)
이 TensorBuffer
에 바이트 버퍼를 로드합니다. 버퍼 크기는 이 TensorBuffer
의 플랫 크기와 일치해야 합니다.
이 메서드를 사용하면 buffer
의 모양이 이 TensorBuffer
의 모양과 동일하다고 가정합니다. 따라서 고정 크기 및 동적 TensorBuffer
에서 buffer
의 크기 (buffer.limit()
)는 항상 이 TensorBuffer
의 플랫 크기와 일치해야 합니다. buffer
의 모양이 다른 경우 loadBuffer(ByteBuffer, int[])
를 사용합니다.
중요: 로드된 버퍼는 참조입니다. 수정하지 마세요. 성능상의 이유로 여기에 사본을 만들지는 않지만 수정이 필요하면 사본을 만드세요.
최상의 성능을 얻으려면 항상 배열로 지원되는 직접적인 ByteBuffer
또는 ByteBuffer
를 로드하세요.
buffer
가 읽기 전용인 경우 성능을 위해 COW(기록 중 복사) 전략을 채택합니다.
매개변수
buffer | 로드할 바이트 버퍼입니다. |
---|
public void loadBuffer (ByteBuffer buffer, int[] shape)
특정 도형을 사용하여 이 TensorBuffer
에 바이트 버퍼를 로드합니다.
중요: 로드된 버퍼는 참조입니다. 수정하지 마세요. 성능상의 이유로 여기에 사본을 만들지는 않지만 수정이 필요하면 사본을 만드세요.
최상의 성능을 얻으려면 항상 배열로 지원되는 직접적인 ByteBuffer
또는 ByteBuffer
를 로드하세요.
매개변수
buffer | 로드할 바이트 버퍼입니다. |
---|---|
shape |
생성 값
NullPointerException | buffer 가 null인 경우입니다. |
---|---|
IllegalArgumentException | buffer 와 typeSize 의 크기가 일치하지 않거나 buffer 와 flatSize 의 크기가 일치하지 않는 경우입니다.
|