텐서플로우:: ops:: 양자화 축소 및 범위 축소
#include <math_ops.h>양자화된 '입력' 텐서를 더 낮은 정밀도의 '출력'으로 변환합니다.
요약
값의 실제 분포를 최적화하여 낮은 비트 심도를 최대한 활용하고, 그에 따라 출력의 최소 및 최대 범위를 조정합니다.
[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.0f 범위 대신 해당 범위를 사용할 수 있습니다.
실제로 이 방법은 입력보다 높은 비트 심도의 출력을 생성할 수 있고 잠재적인 출력 범위가 넓지만 실제 입력값 분포는 가능한 범위의 극히 일부만 사용하는 양자화 행렬 곱셈 (QuantizedMatMul) 과 같은 연산의 출력을 처리하는 데 가장 유용합니다. 이러한 출력을 이 연산자에 입력하면 정확도 손실을 최소화하면서 32비트에서 8비트로 줄일 수 있습니다.
논거:
- 범위: Scope 객체
- input_min: 양자화된 최소 입력값을 나타내는 부동 소수점 값입니다.
- input_max: 양자화된 최대 입력값을 나타내는 부동 소수점 값입니다.
- out_type: 출력 유형입니다. Tinput보다 낮은 비트 심도여야 합니다.
보고:
-
Output -
Outputoutput_min: 양자화된 최소 출력값을 나타내는 부동 소수점 값입니다. -
Outputoutput_max: 양자화된 최대 출력값을 나타내는 부동 소수점 값입니다.
생성자와 소멸자 | |
|---|---|
QuantizeDownAndShrinkRange (const :: tensorflow::Scope & scope, :: tensorflow::Input input, :: tensorflow::Input input_min, :: tensorflow::Input input_max, DataType out_type) |
공개 속성 | |
|---|---|
operation | |
output | |
output_max | |
output_min | |
공개 속성
작업
Operation operation
산출
::tensorflow::Output output
출력 최대값
::tensorflow::Output output_max
출력_최소
::tensorflow::Output output_min
공공 기능
양자화 축소 및 범위 축소
QuantizeDownAndShrinkRange( const ::tensorflow::Scope & scope, ::tensorflow::Input input, ::tensorflow::Input input_min, ::tensorflow::Input input_max, DataType out_type )