1

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

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

  y = W^t x + b 

那么我们创建模型时是否默认添加了偏差?

4

3 回答 3

1

如果您从头开始创建自己的模型,则必须明确地为权重和偏差创建自己的可训练变量。默认情况下,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
于 2017-07-01T03:46:54.887 回答
0

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

  1. 假设该层是一个基本的 rnn 层(尽管您只提供了一个输入和一个输出),那么答案是肯定的。查看此源代码。线性函数的第三个参数为真,表示默认添加了偏差。

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

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

于 2017-07-01T07:43:40.900 回答
0

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

y = w^tx 
于 2017-07-01T05:53:58.157 回答