Dequantize

공개 최종 클래스 역양자화

'입력' 텐서를 float 또는 bfloat16 텐서로 역양자화합니다.

[min_range, max_range]는 출력 범위를 지정하는 스칼라 부동 소수점입니다. 'mode' 속성은 float 값을 양자화된 값으로 변환하는 데 사용되는 계산을 정확하게 제어합니다.

'MIN_COMBINED' 모드에서 텐서의 각 값은 다음을 따릅니다:

if T == qint8: in[i] += (range(T) + 1)/ 2.0
 out[i] = min_range + (in[i]* (max_range - min_range) / range(T))
 
여기서 `range(T) = 숫자_한계 ::max() - 숫자 제한 ::최소()`

MIN_COMBINED 모드 예

입력이 QuantizedRelu6에서 오는 경우 출력 유형은 quint8(0-255 범위)이지만 QuantizedRelu6의 가능한 범위는 0-6입니다. 따라서 min_range 및 max_range 값은 0.0과 6.0입니다. quint8의 역양자화는 각 값을 가져와 부동 소수점으로 변환하고 6/255를 곱합니다. 양자화 유형이 qint8인 경우 작업은 캐스팅하기 전에 각 값에 128을 추가로 추가합니다.

모드가 'MIN_FIRST'인 경우 다음 접근 방식이 사용됩니다.

num_discrete_values = 1 << (# of bits in T)
 range_adjust = num_discrete_values / (num_discrete_values - 1)
 range = (range_max - range_min) * range_adjust
 range_scale = range / num_discrete_values
 const double offset_input = static_cast<double>(input) - lowest_quantized;
 result = range_min + ((input - numeric_limits<T>::min()) * range_scale)
 
모드가 'SCALED'인 경우 각 입력 값에 scale_factor를 곱하여 역양자화를 수행합니다. (따라서 0의 입력은 항상 0.0으로 매핑됩니다.)

scale_factor는 다음 알고리즘을 사용하여 `QuantizeAndDeQuantize{V2|V3}` 및 `QuantizeV2`와 호환되는 방식으로 `min_range`, `max_range` 및 `narrow_range`에서 결정됩니다

const int min_expected_T = std::numeric_limits<T>::min() +
     (narrow_range ? 1 : 0);
   const int max_expected_T = std::numeric_limits<T>::max();
   const float max_expected_T = std::numeric_limits<float>::max();
 
   const float scale_factor =
     (std::numeric_limits<T>::min() == 0) ? (max_range / max_expected_T)
                                          : std::max(min_range / min_expected_T,
                                                     max_range / max_expected_T);
 

중첩 클래스

수업 역양자화.옵션 Dequantize 의 선택적 속성

상수

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

공개 방법

출력 <U>
출력 ()
텐서의 기호 핸들을 반환합니다.
정적 DeQuantize.Options
(장축)
static <U는 TNumber를 확장합니다. > 역양자화 <U>
생성 ( 범위 범위, 피연산자 <? 확장 TType > 입력, 피연산자 < TFloat32 > minRange, 피연산자 < TFloat32 > maxRange, Class<U> dtype, 옵션... 옵션)
새로운 DeQuantize 작업을 래핑하는 클래스를 생성하는 팩토리 메서드입니다.
정적 역양자화 < TFloat32 >
생성 ( 범위 범위, 피연산자 <? 확장 TType > 입력, 피연산자 < TFloat32 > minRange, 피연산자 < TFloat32 > maxRange, 옵션... 옵션)
기본 출력 유형을 사용하여 새로운 역양자화 작업을 래핑하는 클래스를 생성하는 팩토리 메서드입니다.
정적 DeQuantize.Options
모드 (문자열 모드)
정적 DeQuantize.Options
NarrowRange (부울 NarrowRange)
출력 <U>
출력 ()

상속된 메서드

상수

공개 정적 최종 문자열 OP_NAME

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

상수 값: "역양자화"

공개 방법

공개 출력 <U> asOutput ()

텐서의 기호 핸들을 반환합니다.

TensorFlow 작업에 대한 입력은 다른 TensorFlow 작업의 출력입니다. 이 메서드는 입력 계산을 나타내는 기호 핸들을 얻는 데 사용됩니다.

public static DeQuantize.Options (장축)

공개 정적 역 양자화 <U> 생성 ( 범위 범위, 피연산자 <? 확장 TType > 입력, 피연산자 < TFloat32 > minRange, 피연산자 < TFloat32 > maxRange, Class<U> dtype, 옵션... 옵션)

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

매개변수
범위 현재 범위
최소 범위 입력에 대해 생성될 수 있는 최소 스칼라 값입니다.
최대 범위 입력에 대해 생성될 수 있는 최대 스칼라 값입니다.
dtype 출력 텐서의 유형입니다. 현재 DeQuantize는 float 및 bfloat16을 지원합니다. 'dtype'이 'bfloat16'인 경우 'MIN_COMBINED' 모드만 지원합니다.
옵션 선택적 속성 값을 전달합니다.
보고
  • DeQuantize의 새로운 인스턴스

공개 정적 역 양자화 < TFloat32 > 생성 ( 범위 범위, 피연산자 <? 확장 TType > 입력, 피연산자 < TFloat32 > minRange, 피연산자 < TFloat32 > maxRange, 옵션... 옵션)

기본 출력 유형을 사용하여 새로운 역양자화 작업을 래핑하는 클래스를 생성하는 팩토리 메서드입니다.

매개변수
범위 현재 범위
최소 범위 입력에 대해 생성될 수 있는 최소 스칼라 값입니다.
최대 범위 입력에 대해 생성될 수 있는 최대 스칼라 값입니다.
옵션 선택적 속성 값을 전달합니다.
보고
  • DeQuantize의 새로운 인스턴스

public static DeQuantize.Options 모드 (문자열 모드)

공개 정적 DeQuantize.OptionsarrowRange ( BooleanarrowRange)

공개 출력 <U> 출력 ()