我正在阅读contrib部分的tensorflow中making 2d convolutional layers的文档,并想知道在使用tf.contrib.layers.convolution2d函数时初始化权重的正确或最佳方法是什么。不幸的是,他们并没有明确说明,也没有提供一个例子,因此我不清楚使用它的目的是什么。该函数有一个weights_initializer
参数,可以设置。我已经尝试将它设置为:
似乎都没有返回错误,第一个似乎训练得很好(据我所知)。但是,检查这是否是使用此contrib层的正确方法(或者因为它似乎是一个贡献函数,如何检查"官方"源代码可能会看到它们,这将是非常棒的文档或测试用例,或者如果合适的话,可以在他们的gitissues中解决我的问题。
答案 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)因此它将是非常令人惊讶,如果一个人工作,另一个没有:)
所以,一个和另一个一样好(两者都很好)。