张量流模型中的每一层是否默认添加了偏置项?

Are the bias terms added by default on each layer in tensorflow models?

创建tensorflow神经网络模型时是否默认添加偏置项?

换句话说,如果 x 是特定层的输入,y 是输出,W 是权重矩阵,b 是偏置,则该层的输出由下式给出,

  y = W^t x + b 

那么我们在创建模型的时候是不是默认添加了bias呢?

如果您要从头开始创建自己的模型,则必须明确地为权重和偏差创建自己的可训练变量。默认情况下,Tensorflow 不会创建它们。

x = tf.placeholder(tf.float32, shape=(None, n))

W = tf.Variable(tf.random_normal([n,m], stddev=0.01))
b = tf.Variable(tf.zeros([m]))

y = tf.matmul(x,W) + b

不,您需要自己定义偏差和所有变量。如果您没有定义偏差,那么您的模型将是

y = w^tx 

我不清楚您在以下三种可能性(至少)中指的是哪种情况:

  1. 假设该层是一个基本的rnn层(虽然你只提供了一个输入和一个输出),那么答案是肯定的。看看这个 source code。 linear函数的第三个参数为true,表示默认添加bias。

  2. 假设你做了一个线性投影,那么你可以自己定制。偏差可以省略,例如 this

  3. 并使用此 API: tf.nn.xw_plus_b,您可以定义自己的偏见。