tf.layers.dense内核初始化器和正则化器

时间:2017-10-06 07:04:26

标签: python tensorflow neural-network

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,
    trainable=True,
    name=None,
    reuse=None
)

有两个可选参数kernel_initializerkernel_regularizer。我有两种不同的正则化和初始化技术,我想试验一下。我并不热衷于从头开始实现整个神经网络。有人可以提供一个例子来为这两个参数提供自定义函数吗?

1 个答案:

答案 0 :(得分:1)

最好的办法是检查tensorflow中initializerregularizer的实现。例如,variance_scaling_initializer初始化程序在此代码中定义:https://github.com/tensorflow/tensorflow/blob/r1.3/tensorflow/contrib/layers/python/layers/initializers.py#L62-L152

它由具有以下签名的initializer函数构成:

initializer(shape, dtype=dtype, partition_info=None)

返回张量。

这里定义了正则数:https://github.com/tensorflow/tensorflow/blob/r1.3/tensorflow/contrib/layers/python/layers/regularizers.py