tensorflow之神经网络层:Dense,dense,Dropout,dropout

1.tf.layers.Dense

Class Dense:全连接层

该层实现了outputs=activation(inputs*kernel+bias),其中激活函数是作为参数提供的,kernel是该层创建的权重矩阵,而bias是该层创建的偏置向量(仅当use_bias为True)。

参数:

  • units:Integer或者Long,输出空间的维度
  • activation:激活函数,如果设置为None则是线性激活
  • use_bias:是否适用偏置向量
  • kernel_initializer:权重矩阵的初始化函数,如果为None(默认),权重使用默认的初始化器进行初始化。
  • bias_initializer:偏置项的初始化函数
  • kernel_regualrizer:权重矩阵的正则化函数
  • bias_regularizer:偏置项的正则化函数
  • activity_regularizer:输出的正则化函数
  • kernel_constraint:由优化器更新后应用于kernel的可选投影函数(例如,用于实现层权重的范数约束或值约束)。 该函数必须将未投影的变量作为输入,并且必须返回投影变量(必须具有相同的形状)。 在进行异步分布式训练时,使用约束是不安全的。
  • bias_constraint:在偏置项被优化器更新后,作用于偏置项的可选的投影函数
  • trainable:Boolean,如果为Ture将变量添加到图集合GraphKeys.TRAINABLE_VARIABLES中。
  • name:层的名称。
  • reuse:Boolean,是否根据相同的名称重用先前的层

x=tf.Variable(tf.random_normal([2,2]))

y=tf.layers.Dense(10)(x)

init=tf.global_variables_initializer()

with tf.Session() as sess:

    sess.run(init)

    print(sess.run(x))

    print(sess.run(y))

2.tf.layers.dense

参数及作用同Dense类

tf.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

)

x=tf.Variable(tf.random_normal([10,2]))

y=tf.layers.dense(x,units=100)

print(y)

输出:Tensor("dense_9/BiasAdd:0", shape=(10, 100), dtype=float32)

3.tf.layers.Dropout

Class Dropout:对输入进行Dropout

Dropout包括在训练期间每次更新时随机将输入单元的分数率设置为0,这有助于防止过度拟合。 保留的单位按1 /(1 - rate)缩放,因此它们的总和在训练时间和推理时间不变。

参数:

  • rate:Dropout比率,在0和1之间,如rate=0.1,则dropout 10%的输入单元
  • noise_shape:类型为int32的1D张量,表示将与输入相乘的二进制dropout掩码的形状。 例如,如果您的输入具有形状(batch_size,timesteps,features),并且您希望所有时间步长的dropout掩码相同,则可以使用noise_shape = [batch_size,1,features]。
  • seed:一个python整型,用于创建一个随机种子
  • name:层的名称,字符串类型。

x=tf.Variable(tf.ones([10,2]))

y=tf.layers.Dropout(rate=0)(x)

init=tf.global_variables_initializer()

sess=tf.Session()

sess.run(init)

print(sess.run(x))

print(sess.run(y))

4.tf.layers.dropout

参数及作用同Dropout类。

你可能感兴趣的:(tensorflow,深度学习)