다음을 사용하여 양자화된 '입력' 텐서를 낮은 정밀도의 '출력'으로 변환합니다.
낮은 비트 깊이의 사용을 최대화하고 이에 따라 출력 최소 및 최대 범위를 조정하기 위해 값을 실제 분포합니다.
[input_min, input_max]는 '입력' 데이터의 부동 소수점 해석 범위를 지정하는 스칼라 부동 소수점입니다. 예를 들어 input_min이 -1.0f이고 input_max가 1.0f이고 quint16 양자화된 데이터를 처리하는 경우 16비트 데이터의 0 값은 -1.0f로 해석되어야 하며 65535는 1.0f를 의미합니다.
이 연산자는 데이터에서 발견된 실제 최소값과 최대값을 계산하여 비트 심도가 낮은 출력에 최대한 높은 정밀도를 적용하려고 합니다. 예를 들어, 해당 quint16 입력에는 16,384보다 낮은 값이 없고 49,152보다 높은 값이 없을 수 있습니다. 즉, 실제로는 범위의 절반만 필요하고 모든 부동소수점 해석은 -0.5f에서 0.5f 사이이므로 데이터를 quint8 출력으로 압축하려면 이론적으로 -1.0f에서 1.0이 아닌 해당 범위를 사용할 수 있습니다. f는 입력 min과 max에 의해 제안됩니다.
실제로 이는 입력보다 더 높은 비트 심도 출력을 생성할 수 있고 잠재적 출력 범위가 클 수 있는 QuantizedMatMul과 같은 작업에서 출력을 가져오는 데 가장 유용합니다. 그러나 실제로는 입력 값의 작은 부분만 사용하는 입력 값 분포가 있습니다. 가능한 범위. 해당 출력을 이 연산자에 입력하면 정확도 손실을 최소화하면서 출력을 32비트에서 8비트로 줄일 수 있습니다.
상수
끈 | OP_NAME | TensorFlow 코어 엔진에서 알려진 이 작업의 이름 |
공개 방법
static <U는 TType을 확장합니다. > QuantizeDownAndShrinkRange <U> | |
출력 <U> | 출력 () |
출력 < TFloat32 > | 출력최대 () 최대 양자화된 출력 값이 나타내는 부동 소수점 값입니다. |
출력 < TFloat32 > | 출력최소 () 최소 양자화된 출력 값이 나타내는 부동 소수점 값입니다. |
상속된 메서드
상수
공개 정적 최종 문자열 OP_NAME
TensorFlow 코어 엔진에서 알려진 이 작업의 이름
공개 방법
공개 정적 QuantizeDownAndShrinkRange <U> 생성 ( 범위 범위, 피연산자 <? 확장 TType > 입력, 피연산자 < TFloat32 > inputMin, 피연산자 < TFloat32 > inputMax, 클래스<U> outType)
새로운 QuantizeDownAndShrinkRange 작업을 래핑하는 클래스를 생성하는 팩토리 메서드입니다.
매개변수
범위 | 현재 범위 |
---|---|
최소 입력 | 최소 양자화된 입력 값이 나타내는 부동 소수점 값입니다. |
입력최대 | 최대 양자화된 입력 값이 나타내는 부동 소수점 값입니다. |
출력 유형 | 출력 유형입니다. Tinput보다 비트 심도가 낮아야 합니다. |
보고
- QuantizeDownAndShrinkRange의 새로운 인스턴스