codecamp

反量化TensorFlow张量

tf.dequantize

dequantize(
    input,
    min_range,
    max_range,
    mode=None,
    name=None
)

参见指南:张量变换>分割和连接

上述代码将 “input” 张量反量化为浮动张量.

[min_range,max_range] 是指定 “input” 数据范围的标量浮点数.'mode' 属性精确地用于控制将浮点值转换为其量化的等效项的计算.

在 “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) = numeric_limits<T>::max() - numeric_limits<T>::min()

MIN_COMBINED 模式示例

如果输入来自 QuantizedRelu6,则输出类型为 quint8 (范围为 0-255),但 QuantizedRelu6 的可能范围为0-6.因此,min_range 和 max_range 值是0.0 和6.0.在 quint8 上取消量化将取每个值,转换为浮点数并乘以 6 / 255.请注意,如果 quantizedtype 为 qint8,则操作将在强制转换之前将每个值添加 128.

如果模式是 "MIN_FIRST", 则使用此方法:

number_of_steps = 1 << (# of bits in T)
range_adjust = number_of_steps / (number_of_steps - 1)
range = (range_max - range_min) * range_adjust
range_scale = range / number_of_steps
const double offset_input = static_cast<double>(input) - lowest_quantized;
result = range_min + ((input - numeric_limits<T>::min()) * range_scale)

ARGS:

  • input:张量.必须是下列类型之一:qint8,quint8,qint16,quint16,qint32.
  • min_range:类型为 float32 的张量.可能是 input 产生的最小标量值.
  • max_range:类型为 float32 的张量.可能是 input 产生的最大标量值.
  • mode:字符串,可以从:"MIN_COMBINED", "MIN_FIRST"中选择,默认为"MIN_COMBINED".
  • name:操作的名称(可选).

返回:

返回类型为 float32 的张量.

TensorFlow数据从深度排列为空间数据块
TensorFlow设备规范
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

TensorFlow 函数介绍

TensorFlow 函数模块:tf

TensorFlow的image模块

TensorFlow使用之tf.io

TensorFlow使用之tf.keras

TensorFlow函数教程:tf.keras.applications

TensorFlow函数教程:tf.keras.backend

TensorFlow使用之tf.metrics

TensorFlow使用之tf.nn

TensorFlow使用之tf.python_io

TensorFlow 功能函数

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }