tf.layers.dense 和 tf.contrib.layers.fully_connected的区别
TensorFlow的tf.layers
和ctf.contrib.layers
都提供了相关用于搭建神经网络的模块,但同一版本额和不同版本之间均存在区别,TF的更新真的是好快。。。
今天主要讨论一下tf.layers.dense
和tf.contrib.layers.fully_connected
的区别,二者都可以用于构建全连接层。参考tensorflow的文档,二者的参数如下,
tf.layers.dense
12345678910111213141516tf.layers.dense(inputs,units,activation=None,use_bias=True,kernel_initializer=None,bias_initializer=tf.zeros_initializer(),kernel_regularizer=None,bias_regularizer=None,activity_regularizer=None,kernel_constraint=None,bias_constraint=None,trainable=True,name=None,reuse=None)tf.contrib.layers.fully-connected
12345678910111213141516fully_connected(inputs,num_outputs,activation_fn=tf.nn.relu,normalizer_fn=None,normalizer_params=None,weights_initializer=initializers.xavier_initializer(),weights_regularizer=None,biases_initializer=tf.zeros_initializer(),biases_regularizer=None,reuse=None,variables_collections=None,outputs_collections=None,trainable=True,scope=None)
可以看出,tf.layers.dense
相对更简单,没有提供默认的activation
和kernel_initializer
, 而后者这两个参数都做了默认的初始化。使用时一定要显示说明这些,否则会出现不可控的错误。。。