我正在实施resnet并在cifar-10数据集上进行培训。在“全局平均池”层之后,我添加了10路全连接层。我使用两个tensorflow API来实现fc层。但是,方法2对我有用,但是方法1不起作用。方法1根据tensorflow官方api:tf.contrib.layers.fully_connected。第二种方法是根据tf.layers.dense。我很困惑为什么第一种方法在这里不起作用。仅供参考,全局平均池化层的输出为[batch_size,1,1,64]。寻求帮助!预先感谢!
编辑:不起作用意味着如果我使用第一种方法,则fc的所有输出logit均变为零,这对我来说没有任何意义。
# Method 1:
def fc(x, n_outputs, scope):
with tf.variable_scope(scope):
# x = tf.layers.flatten(x)
x = tf.contrib.layers.fully_connected(x, num_outputs=n_outputs, weights_initializer=weight_init, weights_regularizer=weight_reg, scope=scope)
return x
# Method 2:
def fc(x, n_outputs, scope):
with tf.variable_scope(scope):
x = tf.layers.flatten(x)
x = tf.layers.dense(x, units=n_outputs, kernel_initializer=weight_init, kernel_regularizer=weight_reg)
return x