TensorLabel

공개 클래스 TensorLabel

TensorLabel은 축에 의미 있는 라벨이 있는 TensorBuffers용 유틸리티 래퍼입니다.

예를 들어 이미지 분류 모델에 형태가 {1, 10}인 출력 텐서가 있을 수 있습니다. 여기서 1은 배치 크기이고 10은 카테고리 수입니다. 실제로 두 번째 축에서 각 하위 텐서에 해당하는 각 카테고리의 이름 또는 설명으로 라벨을 지정할 수 있습니다. TensorLabelTensorBuffer의 일반 텐서를 사전 정의된 라벨에서 하위 텐서로의 매핑으로 변환하는 데 도움이 될 수 있습니다. 이 경우, 두 번째 축에 라벨 10개를 제공하면 TensorLabel가 원래 {1, 10} 텐서를 10개 요소 맵으로 변환할 수 있으며, 각 값은 Tensor의 형태 {} (스칼라)입니다. 사용 예:

   TensorBuffer outputTensor = ...;
   List<String> labels = FileUtil.loadLabels(context, labelFilePath);
   // labels the first axis with size greater than one
   TensorLabel labeled = new TensorLabel(labels, outputTensor);
   // If each sub-tensor has effectively size 1, we can directly get a float value
   Map<String, Float> probabilities = labeled.getMapWithFloatValue();
   // Or get sub-tensors, when each sub-tensor has elements more than 1
   Map<String, TensorBuffer> subTensors = labeled.getMapWithTensorBuffer();
 

참고: 현재 크기가 1보다 큰 첫 번째 라벨에만 텐서-맵 변환이 지원됩니다.

공개 생성자

TensorLabel(Map<IntegerList<String>> axisLabels, TensorBuffer tensorBuffer)
다차원 텐서의 축에 라벨을 지정할 수 있는 TensorLabel 객체를 만듭니다.
TensorLabel(List<String> axisLabels, TensorBuffer tensorBuffer)입니다
다차원 텐서의 한 축에 라벨을 지정할 수 있는 TensorLabel 객체를 만듭니다.

공개 메서드

List<Category>
getCategoryList()
TensorLabel 객체에서 Category 목록을 가져옵니다.
Map<StringFloat>
getMapWithFloatValue()
라벨을 부동 소수점에 매핑하는 지도를 가져옵니다.
Map<StringTensorBuffer>
getMapWithTensorBuffer()
라벨 쌍과 해당 TensorBuffer가 있는 지도를 가져옵니다.

상속된 메서드

공개 생성자

공개 TensorLabel (Map<IntegerList<String>> axisLabels, TensorBuffer tensorBuffer)

다차원 텐서의 축에 라벨을 지정할 수 있는 TensorLabel 객체를 만듭니다.

매개변수
axisLabels 키가 축 ID (0부터 시작)이고 값이 상응하는 라벨인 맵. 참고: 라벨의 크기는 해당 축의 텐서 크기와 동일해야 합니다.
tensorBuffer 라벨을 지정할 TensorBuffer.
생성 값
NullPointerException axisLabels 또는 tensorBuffer가 null이거나 axisLabels의 값이 null인 경우
IllegalArgumentException axisLabels의 키가 tensorBuffer의 모양과 비교하여 범위를 벗어났거나 값(라벨)이 지정된 측정기준의 tensorBuffer와 크기가 다른 경우입니다.

공개 TensorLabel (List<String> axisLabels, TensorBuffer tensorBuffer)

다차원 텐서의 한 축에 라벨을 지정할 수 있는 TensorLabel 객체를 만듭니다.

참고: 라벨은 크기가 1보다 큰 첫 번째 축에 적용됩니다. 예를 들어 텐서 모양이 [1, 10, 3]이면 라벨이 축 1 (0에서 시작하는 ID)에 적용되며 axisLabels의 크기도 10이어야 합니다.

매개변수
axisLabels 라벨 목록으로, 크기는 라벨을 지정할 축의 텐서 크기와 동일해야 합니다.
tensorBuffer 라벨을 지정할 TensorBuffer.

공개 메서드

public List<Category> getCategoryList ()

TensorLabel 객체에서 Category 목록을 가져옵니다.

라벨 축은 사실상 마지막 축이어야 합니다 (즉, 이 축으로 지정된 모든 하위 텐서의 크기가 1이어야 함). 그래야 라벨이 지정된 각 하위 텐서를 부동 소수점 값 점수로 변환할 수 있습니다. 예: 도형이 {2, 5, 3}이고 축이 2인 TensorLabel가 유효합니다. 축이 1 또는 0인 경우 Category로 변환될 수 없습니다.

getMapWithFloatValue()를 사용할 수 있지만 결과로 Map를 반환합니다.

생성 값
IllegalStateException 각 라벨의 하위 텐서 크기가 1이 아닌 경우

public Map<StringFloat> getMapWithFloatValue ()

라벨을 부동 소수점에 매핑하는 지도를 가져옵니다. 크기가 1보다 큰 첫 번째 축에만 매핑이 허용되며, 축은 사실상 마지막 축이어야 합니다 (즉, 이 축에 의해 지정된 모든 하위 텐서의 평면 크기가 1이어야 함).

getCategoryList()는 결과를 가져오기 위한 대체 API입니다.

생성 값
IllegalStateException 각 라벨의 하위 텐서 크기가 1이 아닌 경우

public Map<StringTensorBuffer> getMapWithTensorBuffer ()

라벨 쌍과 해당 TensorBuffer가 있는 지도를 가져옵니다. 현재 크기가 1보다 큰 첫 번째 축 매핑만 허용합니다.