TensorLabel

공개 클래스 TensorLabel

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

예를 들어 이미지 분류 모델에는 {1, 10} 모양의 출력 텐서가 있을 수 있습니다. 여기서 1은 배치 크기이고 10은 범주 수입니다. 실제로 두 번째 축에서는 각 하위 텐서에 해당 카테고리의 이름이나 설명을 표시할 수 있습니다. TensorLabel TensorBuffer 의 일반 Tensor를 사전 정의된 레이블에서 하위 텐서까지의 맵으로 변환하는 데 도움이 될 수 있습니다. 이 경우 두 번째 축에 10개의 레이블이 제공되면 TensorLabel 원래 {1, 10} Tensor를 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 < Integer , List < String >> axisLabels, TensorBuffer tensorBuffer)
다차원 텐서의 축에 라벨을 붙일 수 있는 TensorLabel 객체를 생성합니다.
TensorLabel ( 목록 < 문자열 > axisLabels, TensorBuffer tensorBuffer)
다차원 텐서의 한 축에 라벨을 붙일 수 있는 TensorLabel 객체를 생성합니다.

공개 방법

목록 < 카테고리 >
getCategoryList ()
TensorLabel 객체에서 Category 목록을 가져옵니다.
< 문자열 , 부동소수점 >
getMapWithFloatValue ()
라벨을 부동에 매핑하는 지도를 가져옵니다.
< 문자열 , 텐서버퍼 >
getMapWithTensorBuffer ()
레이블과 해당 TensorBuffer 쌍이 포함된 지도를 가져옵니다.

상속된 메서드

공공 생성자

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

다차원 텐서의 축에 라벨을 붙일 수 있는 TensorLabel 객체를 생성합니다.

매개변수
축레이블 키가 축 ID(0부터 시작)이고 값이 해당 레이블인 맵입니다. 참고: 레이블의 크기는 해당 축의 텐서 크기와 동일해야 합니다.
텐서버퍼 라벨을 붙일 TensorBuffer입니다.
던지기
NullPointer예외 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이어야 합니다.

매개변수
축레이블 레이블을 지정할 축의 텐서 크기와 크기가 같아야 하는 레이블 목록입니다.
텐서버퍼 라벨을 붙일 TensorBuffer입니다.

공개 방법

공개 목록 < 카테고리 > getCategoryList ()

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

레이블의 축은 사실상 마지막 축이어야 합니다(즉, 이 축으로 지정된 모든 하위 텐서의 기본 크기는 1이어야 함을 의미함). 그러면 레이블이 지정된 각 하위 텐서는 부동 소수점 값 점수로 변환될 수 있습니다. 예: 모양이 {2, 5, 3} 이고 축이 2인 TensorLabel 이 유효합니다. 축이 1 또는 0이면 Category 로 변환할 수 없습니다.

getMapWithFloatValue() 는 대안이지만 결과로 Map 반환합니다.

던지기
IllegalStateException 각 레이블의 하위 텐서 크기가 1이 아닌 경우.

공개 < String , Float > getMapWithFloatValue ()

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

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

던지기
IllegalStateException 각 레이블의 하위 텐서 크기가 1이 아닌 경우.

공개 < String , TensorBuffer > getMapWithTensorBuffer ()

레이블과 해당 TensorBuffer 쌍이 포함된 지도를 가져옵니다. 현재 크기가 1보다 큰 첫 번째 축에서만 매핑을 허용합니다.