我尝试从论文[1]中尝试一些东西,其中要求对FC层中的所有神经元都有一个共同的偏差项,而不是每个神经元的个体偏差。< / p>
如何在Tensorflow中执行此操作?
是否可以创建没有偏差的FC层,最后添加tf.nn.bias_add()
?这是正确的方法吗?
如果是,则没有标记将tf.nn.bias_add()
设置为trainable
。它会起作用吗?
还是其他任何建议?
<小时/> 参考文献:
答案 0 :(得分:1)
tf.nn.bias_add(value, bias)
需要A 1-D Tensor with size matching the last dimension of value
。所以只需tf.add
即可:
X = tf.placeholder(tf.float32, [None, 32])
W = tf.Variable(tf.truncated_normal([32, 16]))
#Single bias for all the 16 output
bias = tf.Variable(tf.truncated_normal([1]))
#Works as expected
y = tf.add(tf.matmul(X,W), bias)
#ValueError: Dimensions must be equal, but are 16 and 1 for 'BiasAdd'
z = tf.nn.bias_add(tf.matmul(X,W), bias)