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类。