Tensorflow 添加全连接层

Tensorflow中提供了tf.layers.dense()tf.contrib.layers.fully_connected用于添加全连接层,两者功能一样,后者在前者基础上封装实现。

1. tf.layers.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
)
  • inputs:该层的输入。
  • units: 输出的大小(维数),整数或long。
  • activation: 使用什么激活函数(神经网络的非线性层),默认为None,不使用激活函数。
  • use_bias: 使用bias为True(默认使用),不用bias改成False即可。
  • kernel_initializer:权重矩阵的初始化函数。 如果为None(默认值),则使用tf.get_variable使用的默认初始化程序初始化权重。
  • bias_initializer:bias的初始化函数。
  • kernel_regularizer:权重矩阵的正则函数。
  • bias_regularizer:bias的的正则函数。
  • activity_regularizer:输出的的正则函数。
  • kernel_constraint:由优化器更新后应用于内核的可选投影函数(例如,用于实现层权重的范数约束或值约束)。 该函数必须将未投影的变量作为输入,并且必须返回投影变量(必须具有相同的形状)。 在进行异步分布式训练时,使用约束是不安全的。
  • bias_constraint:由优化器更新后应用于偏差的可选投影函数。
  • trainable:Boolean,如果为True,还将变量添加到图集- collectionGraphKeys.TRAINABLE_VARIABLES(参见tf.Variable)。
  • name:名字
  • reuse:Boolean,是否以同一名称重用前一层的权重。

2. tf.contrib.layers.fully_connected

tf.contrib.layers.fully_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
)
  • inputs:至少等级2的张量和最后一个维度的静态值; 即[batch_size, depth],[None, None, None, channels]。
  • num_outputs:整数或长整数,图层中的输出单位数。
  • activation_fn:激活功能。默认值是ReLU功能。将其明确设置为“无”以跳过它并保持线性激活。
  • normalizer_fn:使用标准化功能代替biases。如果 normalizer_fn提供biases_initializer,biases_regularizer则忽略并且biases不创建也不添加。没有规范化器功能,默认设置为“无”
  • normalizer_params:规范化函数参数。
  • weights_initializer:权重的初始化程序。
  • weights_regularizer:可选的权重正则化器。
  • biases_initializer:偏置的初始化程序。如果没有跳过偏置。
  • biases_regularizer:偏置的可选正则化器。
  • reuse:是否应重用图层及其变量。必须给出能够重用层范围的能力。
  • variables_collections:所有变量的集合的可选列表或包含每个变量的不同集合列表的字典。
  • outputs_collections:用于添加输出的集合。
  • trainable:如果True还将变量添加到图表集合中 GraphKeys.TRAINABLE_VARIABLES(请参阅tf.Variable)。
  • scope:variable_scope的可选范围。
发布了3 篇原创文章 · 获赞 2 · 访问量 161

猜你喜欢

转载自blog.csdn.net/apr15/article/details/104591771