TensorBuffer

공개 추상 클래스 TensorBuffer
알려진 직접 서브클래스

모델의 입력 또는 출력에 대한 데이터 버퍼를 나타냅니다.

공개 방법

정적 TensorBuffer
createDynamic ( DataType 데이터 유형)
지정된 DataType 사용하여 빈 동적 TensorBuffer 생성합니다.
정적 TensorBuffer
createFixedSize (int[] 모양, DataType dataType)
지정된 shapeDataType 사용하여 TensorBuffer 생성합니다.
정적 TensorBuffer
createFrom ( TensorBuffer 버퍼, DataType dataType)
지정된 DataType 사용하여 다른 데이터의 깊은 복사 데이터를 TensorBuffer 로 생성합니다.
바이트버퍼
getBuffer ()
데이터 버퍼를 반환합니다.
추상 데이터 유형
getDataType ()
이 버퍼의 데이터 유형을 반환합니다.
정수
getFlatSize ()
버퍼의 flatSize를 가져옵니다.
추상 부동소수점[]
getFloatArray ()
이 버퍼에 저장된 값의 부동 소수점 배열을 반환합니다.
추상 플로트
getFloatValue (int absIndex)
지정된 인덱스에서 부동 소수점 값을 반환합니다.
추상 정수[]
getIntArray ()
이 버퍼에 저장된 값의 int 배열을 반환합니다.
추상 정수
getIntValue (int absIndex)
주어진 인덱스에서 int 값을 반환합니다.
정수[]
getShape ()
현재 모양을 가져옵니다.
추상 정수
getTypeSize ()
배열에 있는 단일 요소의 바이트 수를 반환합니다.
부울
isDynamic ()
TensorBuffer 동적 크기인 경우(크기를 임의로 조정할 수 있음)를 반환합니다.
추상적인 공백
loadArray (int[] src, int[] 모양)
특정 형태의 int 배열을 이 버퍼에 로드합니다.
추상적인 공백
loadArray (float[] src, int[] 모양)
특정 모양의 부동 소수점 배열을 이 버퍼에 로드합니다.
무효의
loadArray (float[] src)
이 버퍼에 부동 배열을 로드합니다.
무효의
loadArray (int[] src)
이 버퍼에 int 배열을 로드합니다.
무효의
loadBuffer ( ByteBuffer 버퍼)
TensorBuffer 에 바이트 버퍼를 로드합니다.
무효의
loadBuffer ( ByteBuffer 버퍼, int[] 모양)
특정 모양으로 이 TensorBuffer 에 바이트 버퍼를 로드합니다.

상속된 메서드

공개 방법

공개 정적 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입니다.

공개 정적 TensorBuffer createFixedSize (int[] 모양, DataType dataType)

지정된 shapeDataType 사용하여 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입니다.
던지기
NullPointer예외 shape null인 경우.
IllegalArgumentException shape 양수가 아닌 요소가 있는 경우.

공개 정적 TensorBuffer createFrom ( TensorBuffer 버퍼, DataType dataType)

지정된 DataType 사용하여 다른 데이터의 깊은 복사 데이터를 TensorBuffer 로 생성합니다.

매개변수
완충기 복사할 원본 TensorBuffer .
데이터 형식 새로 생성된 TensorBuffer 의 예상 DataType 입니다.
던지기
NullPointer예외 buffer 가 null인 경우.

공개 ByteBuffer getBuffer ()

데이터 버퍼를 반환합니다.

공개 추상 데이터 유형 getDataType ()

이 버퍼의 데이터 유형을 반환합니다.

공개 int getFlatSize ()

버퍼의 flatSize를 가져옵니다.

던지기
IllegalStateException 기본 데이터가 손상된 경우

공개 추상 float[] getFloatArray ()

이 버퍼에 저장된 값의 부동 소수점 배열을 반환합니다. 버퍼의 유형이 float와 다른 경우 값은 float로 변환됩니다. 예를 들어 TensorBufferUint8 의 값은 uint8에서 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);
 

매개변수
절대지수 읽을 값의 절대 인덱스입니다.

공개 추상 int[] getIntArray ()

이 버퍼에 저장된 값의 int 배열을 반환합니다. 버퍼의 유형이 int와 다른 경우 값은 int로 변환되며 정밀도가 손실될 수 있습니다. 예를 들어 TensorBufferFloat 에서 값이 {400.32f, 23.04f}인 int 배열을 가져오면 출력은 {400, 23}입니다.

공개 추상 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.
 

매개변수
절대지수 읽을 값의 절대 인덱스입니다.

공개 int[] getShape ()

현재 모양을 가져옵니다. (예기치 않은 수정을 피하기 위해 여기에 사본을 반환하십시오.)

던지기
IllegalStateException 기본 데이터가 손상된 경우

공개 추상 int getTypeSize ()

배열에 있는 단일 요소의 바이트 수를 반환합니다. 예를 들어 부동 버퍼는 4를 반환하고 바이트 버퍼는 1을 반환합니다.

공개 부울 isDynamic ()

TensorBuffer 동적 크기인 경우(크기를 임의로 조정할 수 있음)를 반환합니다.

공개 추상 무효 loadArray (int[] src, int[] 모양)

특정 형태의 int 배열을 이 버퍼에 로드합니다. 버퍼가 int와 다른 유형인 경우 값은 버퍼에 로드되기 전에 버퍼 유형으로 변환되며 정밀도 손실이 적용될 수 있습니다. 예를 들어 값이 {400, -23}인 int 배열을 TensorBufferUint8 에 로드하면 값이 [0, 255]로 고정된 다음 {255, 0}에 의해 uint8로 변환됩니다.

매개변수
소스 로드할 소스 배열입니다.
모양 src 가 나타내는 텐서의 모양입니다.
던지기
NullPointer예외 src 가 null인 경우
NullPointer예외 shape null인 경우.
IllegalArgumentException 로드할 배열의 크기가 지정된 모양과 일치하지 않는 경우.

공개 추상 무효 loadArray (float[] src, int[] 모양)

특정 모양의 부동 소수점 배열을 이 버퍼에 로드합니다. 버퍼가 float와 다른 유형인 경우 값은 버퍼에 로드되기 전에 버퍼 유형으로 변환되며 정밀도가 손실될 수 있습니다. 예를 들어, 값이 {400.32f, -23.04f}인 TensorBufferUint8 에 float 배열을 로드하면 값이 [0, 255]로 고정된 다음 {255, 0}에 의해 uint8로 변환됩니다.

매개변수
소스 로드할 소스 배열입니다.
모양 src 가 나타내는 텐서의 모양입니다.
던지기
NullPointer예외 src 가 null인 경우
NullPointer예외 shape null인 경우.
IllegalArgumentException 로드할 배열의 크기가 지정된 모양과 일치하지 않는 경우.

공개 무효 loadArray (float[] src)

이 버퍼에 부동 배열을 로드합니다. 버퍼가 float와 다른 유형인 경우 값은 버퍼에 로드되기 전에 버퍼 유형으로 변환되며 정밀도가 손실될 수 있습니다. 예를 들어, 값이 {400.32f, -23.04f}인 TensorBufferUint8 에 float 배열을 로드하면 값이 [0, 255]로 고정된 다음 {255, 0}에 의해 uint8로 변환됩니다.

이 방법을 사용하면 src 의 모양이 이 TensorBuffer 의 모양과 동일하다고 가정합니다. 따라서 buffer 크기( src.length )는 고정 크기 및 동적 TensorBuffer 모두에 대해 이 TensorBuffer 의 기본 크기와 항상 일치해야 합니다. src 의 모양이 다른 경우 loadArray(float[], int[]) 사용하세요.

매개변수
소스 로드할 소스 배열입니다.

공공 무효 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[]) 사용하세요.

매개변수
소스 로드할 소스 배열입니다.

공공 무효 loadBuffer ( ByteBuffer 버퍼)

TensorBuffer 에 바이트 버퍼를 로드합니다. 버퍼 크기는 이 TensorBuffer 의 플랫 크기와 일치해야 합니다.

이 방법을 사용하는 것은 buffer 의 모양이 이 TensorBuffer 의 모양과 동일하다고 가정합니다. 따라서 buffer 의 크기( buffer.limit() )는 고정 크기 및 동적 TensorBuffer 모두에 대해 이 TensorBuffer 의 기본 크기와 항상 일치해야 합니다. buffer 모양이 다른 경우 loadBuffer(ByteBuffer, int[]) 사용하십시오.

중요: 로드된 버퍼는 참조입니다. 수정하지 마십시오. 성능 문제로 인해 여기에 복사본을 만들지 않지만 수정이 필요한 경우 복사본을 만드십시오.

최상의 성능을 위해서는 항상 직접 ByteBuffer 또는 배열이 지원하는 ByteBuffer 로드하세요.

buffer 읽기 전용인 경우 성능을 위해 쓰기 시 복사 전략을 채택합니다.

매개변수
완충기 로드할 바이트 버퍼입니다.

공공 무효 loadBuffer ( ByteBuffer 버퍼, int[] 모양)

특정 모양으로 이 TensorBuffer 에 바이트 버퍼를 로드합니다.

중요: 로드된 버퍼는 참조입니다. 수정하지 마십시오. 성능 문제로 인해 여기에 복사본을 만들지 않지만 수정이 필요한 경우 복사본을 만드십시오.

최상의 성능을 위해서는 항상 직접 ByteBuffer 또는 배열이 지원하는 ByteBuffer 로드하세요.

매개변수
완충기 로드할 바이트 버퍼입니다.
모양
던지기
NullPointer예외 buffer 가 null인 경우.
IllegalArgumentException buffer 의 크기와 typeSize 크기가 일치하지 않거나 buffer 의 크기와 flatSize 크기가 일치하지 않는 경우.