据我所知,tf.layers.conv2d有两种不同的禁用偏见方式:设置use_bias=False
和设置bias_initializer=None
。
这些是相同的,还是做不同的事情?我需要同时使用它们吗?
答案 0 :(得分:1)
我不确定bias_initializer=None
是否可以禁用偏见
一点点测试
data = np.random.rand(2, 5, 8, 3).astype(np.float32)
tensor = tf.constant(data)
n = tf.layers.conv2d(tensor, 10, 3, 1, bias_initializer=None)
tfvar = tf.trainable_variables()
# tfvar
# [<tf.Variable 'conv2d/kernel:0' shape=(3, 3, 3, 10) dtype=float32_ref>,
# <tf.Variable 'conv2d/bias:0' shape=(10,) dtype=float32_ref>]
甚至设置bias_initializer=None
,将偏差作为可训练的变量
答案 1 :(得分:0)
您可以设置use_bias = False
或设置bias_initializer=None
以禁用偏见。我认为第一个更直观。但是,根据this回答,未设置bias_initializer
会使其为0而不设置kernel_initializer
会使其glorot_uniform
。