创建 tensorflow 神经网络模型时是否默认添加了偏置项?
换句话说,如果 x 是特定层的输入,y 是输出,W 是权重矩阵,b 是偏差,则该层的输出由下式给出,
y = W^t x + b
那么我们创建模型时是否默认添加了偏差?
创建 tensorflow 神经网络模型时是否默认添加了偏置项?
换句话说,如果 x 是特定层的输入,y 是输出,W 是权重矩阵,b 是偏差,则该层的输出由下式给出,
y = W^t x + b
那么我们创建模型时是否默认添加了偏差?
如果您从头开始创建自己的模型,则必须明确地为权重和偏差创建自己的可训练变量。默认情况下,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
我不清楚您在以下三种可能性(至少)中指的是哪种情况:
假设该层是一个基本的 rnn 层(尽管您只提供了一个输入和一个输出),那么答案是肯定的。查看此源代码。线性函数的第三个参数为真,表示默认添加了偏差。
假设你做了一个线性投影,那么你可以自己定制它。可以省略偏差,例如在this中。
并使用此API: tf.nn.xw_plus_b,您可以定义自己的偏见。
不,您需要自己定义偏差和所有变量。如果您没有定义偏差,那么您的模型将是
y = w^tx