【TensorFlow基礎】tf.add 和 tf.nn.bias_add 的區別

wuliytTaotao發表於2018-08-18

1. tf.add(x,  y, name)

Args:
  x: A `Tensor`. Must be one of the following types: `bfloat16`, `half`, `float32`, `float64`, `uint8`, `int8`, `int16`, `int32`, `int64`, `complex64`, `complex128`, `string`.
  y: A `Tensor`. Must have the same type as `x`.
  name: A name for the operation (optional).

Returns:
  A `Tensor`. Has the same type as `x`.

 

2. tf.nn.bias_add(value, bias, data_format=None, name=None)

Adds `bias` to `value`.

This is (mostly) a special case of `tf.add` where `bias` is restricted to 1-D. Broadcasting is supported, so `value` may have any number of dimensions. Unlike `tf.add`, the type of `bias` is allowed to differ from `value` in the case where both types are quantized.

Args:
  value: A `Tensor` with type `float`, `double`, `int64`, `int32`, `uint8`, `int16`, `int8`, `complex64`, or `complex128`.
  bias: A 1-D `Tensor` with size matching the last dimension of `value`. Must be the same type as `value` unless `value` is a quantized type, in which case a different quantized type may be used.   
  data_format: A string. `NHWC` and `NCHW` are supported.   
  name: A name for the operation (optional).
Returns:   A `Tensor` with the same type as `value`.

 

3. tf.add 和 tf.nn.bias_add 的區別

  • tf.nn.bias_add 是 tf.add 中的一個特例,tf.nn.bias_add 中 bias 一定是 1 維的張量;
  • tf.nn.bias_add 中 value 最後一維長度和 bias 的長度一定得一樣;
  • tf.nn.bias_add 中,當 value 是 quantized type 時,bias 可以取不同的 quantized type。但什麼是 quantized type?TensorFlow API 中 tf.DType 頁面顯示,`tf.qint8`、`tf.quint8`、`tf.qint16`、`tf.quint16`、`tf.qint32`型別就是Quantized type。但這些類別具體如何使用並不知曉。

 

References

TensorFlow API 1.10

 

相關文章