QuantizeDownAndShrinkRange

공개 최종 클래스 QuantizeDownAndShrinkRange

다음을 사용하여 양자화된 '입력' 텐서를 낮은 정밀도의 '출력'으로 변환합니다.

낮은 비트 깊이의 사용을 최대화하고 이에 따라 출력 최소 및 최대 범위를 조정하기 위해 값을 실제 분포합니다.

[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>
생성 ( 범위 범위, 피연산자 <? 확장 TType > 입력, 피연산자 < TFloat32 > inputMin, 피연산자 < TFloat32 > inputMax, Class<U> outType)
새로운 QuantizeDownAndShrinkRange 작업을 래핑하는 클래스를 생성하는 팩토리 메서드입니다.
출력 <U>
출력 ()
출력 < TFloat32 >
출력최대 ()
최대 양자화된 출력 값이 나타내는 부동 소수점 값입니다.
출력 < TFloat32 >
출력최소 ()
최소 양자화된 출력 값이 나타내는 부동 소수점 값입니다.

상속된 메서드

상수

공개 정적 최종 문자열 OP_NAME

TensorFlow 코어 엔진에서 알려진 이 작업의 이름

상수 값: "QuantizeDownAndShrinkRange"

공개 방법

공개 정적 QuantizeDownAndShrinkRange <U> 생성 ( 범위 범위, 피연산자 <? 확장 TType > 입력, 피연산자 < TFloat32 > inputMin, 피연산자 < TFloat32 > inputMax, 클래스<U> outType)

새로운 QuantizeDownAndShrinkRange 작업을 래핑하는 클래스를 생성하는 팩토리 메서드입니다.

매개변수
범위 현재 범위
최소 입력 최소 양자화된 입력 값이 나타내는 부동 소수점 값입니다.
입력최대 최대 양자화된 입력 값이 나타내는 부동 소수점 값입니다.
출력 유형 출력 유형입니다. Tinput보다 비트 심도가 낮아야 합니다.
보고
  • QuantizeDownAndShrinkRange의 새로운 인스턴스

공개 출력 <U> 출력 ()

공개 출력 < TFloat32 > outputMax ()

최대 양자화된 출력 값이 나타내는 부동 소수점 값입니다.

공개 출력 < TFloat32 > 출력Min ()

최소 양자화된 출력 값이 나타내는 부동 소수점 값입니다.