应该为TensorFlow中的tf.contrib.layers.convolution2d函数提供哪个正确的初始值设定项?

时间:2017-01-17 19:28:31

标签: machine-learning tensorflow deep-learning

我正在阅读contrib部分的tensorflow中making 2d convolutional layers的文档,并想知道在使用tf.contrib.layers.convolution2d函数时初始化权重的正确或最佳方法是什么。不幸的是,他们并没有明确说明,也没有提供一个例子,因此我不清楚使用它的目的是什么。该函数有一个weights_initializer参数,可以设置。我已经尝试将它设置为:

  1. tf.contrib.layers.xavier_initializer
  2. tf.contrib.layers.xavier_initializer_conv2d
  3. 似乎都没有返回错误,第一个似乎训练得很好(据我所知)。但是,检查这是否是使用此contrib层的正确方法(或者因为它似乎是一个贡献函数,如何检查"官方"源代码可能会看到它们,这将是非常棒的文档或测试用例,或者如果合适的话,可以在他们的gitissues中解决我的问题。

1 个答案:

答案 0 :(得分:2)

在撰写本文时,tf.contrib.layers.xavier_initializer_conv2d是tf.contrib.layers.xavier_initializer的别名(来自https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/layers/python/layers/initializers.py#L59的源代码为xavier_initializer_conv2d = xavier_initializer)因此它将是非常令人惊讶,如果一个人工作,另一个没有:)

所以,一个和另一个一样好(两者都很好)。