tf.layers.Dense是一个类,tf.layers.dense是一个函数。Dense类是1.4版本才加入的。
Dense层就是密集连接(Densely-connected)层。该层实现了操作:outputs = activation(inputs * kernel + bias),其中activation是作为activation参数传递的激活函数(如果不是None),是由层创建的权重矩阵,kernel是由层创建的权重矩阵,并且bias是由层创建的偏差向量(只有use_bias为True时)。
x = tf.placeholder(tf.float32, shape=[None, 3])
linear_model = tf.layers.Dense(units=1)
y = linear_model(x)
init = tf.global_variables_initializer()
sess.run(init)
print(sess.run(y, {x: [[1, 2, 3], [4, 5, 6]]}))
对于tf.layers.Dense,
tf.layers.dense
是它的快捷函数。两者唯一的区别是快捷函数版本是在单次调用中创建和运行层。尽管这种方法很方便,但无法访问tf.layers.Layer
对象。这会让自省和调试变得更加困难,并且无法重复使用相应的层。例如,以下代码等同于较早的版本:
x = tf.placeholder(tf.float32, shape=[None, 3])
y = tf.layers.dense(x, units=1)
init = tf.global_variables_initializer()
sess.run(init)
print(sess.run(y, {x: [[1, 2, 3], [4, 5, 6]]}))
tf.layers.Dense.__init__
没有inputs参数,y = linear_model(x)这样使用的
__init__(
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,
**kwargs
)
tf.layers.dense
多了一个reuse参数
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,
trainable=True,
name=None,
reuse=None
)
参数: