我正在从contrib部分阅读tensorflow中making 2d convolutional layers的文档,并想知道使用tf.contrib.layers.convolution2d函数时初始化权重的正确或最佳方法是什么。不幸的是,他们并没有真正说清楚也没有提供示例,因此我不清楚使用此方法的意图是什么。该函数具有可以设置的weights_initializer
参数。我尝试将其设置为两个:
tf.contrib.layers.xavier_initializer
tf.contrib.layers.xavier_initializer_conv2d
似乎都没有返回错误,并且第一个似乎训练得很好(据我所知)。但是,检查这是否是使用此contrib层的正确方法会很棒(或者也许因为它似乎是contrib函数,所以如何检查“官方”源代码也许可以查看其文档或测试用例,或者也许可以在他们的gitissues中解决我的问题)。
最佳答案
在撰写本文时,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的行),因此如果一个工作正常,将非常令人惊讶另一个没有:)
因此,一个和另一个一样好(都很好)。
关于machine-learning - 应该给TensorFlow中的tf.contrib.layers.convolution2d函数正确的初始化程序是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41705377/