怎么對(duì)TensorFlow進(jìn)行假量化

2018-10-16 18:04 更新

tf.fake_quant_with_min_max_args

fake_quant_with_min_max_args(
    inputs,
    min=None,
    max=None,
    num_bits=None,
    narrow_range=None,
    name=None
)

參見(jiàn)指南:張量變換>假量化

假量化的 '輸入(inputs)' 張量,類(lèi)型浮動(dòng)到相同類(lèi)型的 '輸出(outputs)' 張量.

屬性 [min; max] 定義 inputs 數(shù)據(jù)的鉗位范圍.inputs 值被量化為量化范圍([0; 2^num_bits - 1] 當(dāng) narrow_range為假的,并且 [1; 2^num_bits - 1] 為真時(shí)),然后被去量化(de-quantized)并作為 [min; max] 間隔中的浮點(diǎn)輸出.num_bits 是量化的位寬;介于 2 和 8 之間(包含).

量化被稱為假,因?yàn)檩敵鋈蕴幱诟↑c(diǎn)狀態(tài).

參數(shù):

  • inputs:float32 類(lèi)型的張量.
  • min:可選浮點(diǎn)型.默認(rèn)值為-6.
  • max:可選浮點(diǎn)型.默認(rèn)值為6.
  • num_bits:可選的整數(shù)型.默認(rèn)值為8.
  • narrow_range:可選布爾值.默認(rèn)取值為 False.
  • name:操作的名稱(可選).

返回:

float32 類(lèi)型的張量.

tf.fake_quant_with_min_max_args_gradient

fake_quant_with_min_max_args_gradient(
    gradients,
    inputs,
    min=None,
    max=None,
    num_bits=None,
    narrow_range=None,
    name=None
)

參見(jiàn)指南:張量變換>假量化


計(jì)算 FakeQuantWithMinMaxArgs 操作的梯度.

參數(shù):

  • gradients:float32 類(lèi)型的張量.在 FakeQuantWithMinMaxArgs 操作之上的反向傳播(Backpropagated)梯度.
  • inputs:float32 類(lèi)型的張量.作為 FakeQuantWithMinMaxArgs 操作的輸入傳遞的值.
  • min:可選的浮點(diǎn)型,默認(rèn)為-6.
  • max:可選的浮點(diǎn)型,默認(rèn)為6.
  • num_bits:可選的整數(shù)型,默認(rèn)為8.
  • narrow_range:可選的布爾值,默認(rèn)為 False.
  • name:操作的名稱(可選).

返回:

float32 類(lèi)型的張量.FakeQuantWithMinMaxArgs 操作之下的反向傳播(Backpropagated)梯度:gradients * (inputs >= min && inputs <= max).

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)