Tensorflow——tf.nn.bias_add和tf.add、tf.add_n

tf.add(x,y,name=None)

x,y类型一致,必须是一个张量,包含以下几种类型之一:half, float32, float64, uint8, int8, int16, int32, int64, complex64, complex128, string

tf.nn.bias_add

解释:这个函数的作用是将偏差bias加到value上面
这个操作你可以看作是tf.add的一个特例。其中bias必须是一维的。该API支持广播形式,因此value可以有任何维度。但是该API又不像tf.add,可以让bias的维度和value的最后一维不同。

输入参数说明:

  • value:一个Tensor。数据类型必须是float, double, int32, int16, int8, unit8, 或者complex64。
  • bias:一个一维的Tensor,数据维度和value的最后一维相同。数据类型必须和value相同。
  • name:可选

输出参数说明:

  • 一个Tensor,数据类型和value相同

举例:

import tensorflow as tf
 
a=tf.constant([[1,1],[2,2],[3,3]],dtype=tf.float32)
b=tf.constant([1,-1],dtype=tf.float32)
c=tf.constant([1],dtype=tf.float32)
 
with tf.Session() as sess:
    print('bias_add:')
    print(sess.run(tf.nn.bias_add(a, b)))
    #执行下面语句错误
    #print(sess.run(tf.nn.bias_add(a, c)))
 
    print('add:')
    print(sess.run(tf.add(a, c)))

输出结果:

bias_add:
[[ 2. 0.]
[ 3. 1.]
[ 4. 2.]]
add:
[[ 2. 2.]
[ 3. 3.]
[ 4. 4.]]

tf.add_n(inputs,name=None)

函数是实现一个列表的元素的相加。就是输入的对象是一个列表,列表里的元素可以是向量,矩阵等但没有广播功能

例子:

import tensorflow as tf;  
import numpy as np;  
  
input1 = tf.constant([1.0, 2.0, 3.0])  
input2 = tf.Variable(tf.random_uniform([3]))  
output = tf.add_n([input1, input2])  
  
with tf.Session() as sess:  
    sess.run(tf.initialize_all_variables())  
    print (sess.run(input1 + input2))  
    print (sess.run(output))

输出

[ 1.30945706  2.29760814  3.81558323]
[ 1.30945706  2.29760814  3.81558323]
    原文作者:SpareNoEfforts
    原文地址: https://www.jianshu.com/p/018c0d5c26ff
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞