深度学习模型权重初始化问题

Deep learning model weights initialization problem

我正在尝试在 TensorFlow 中创建模型。然而,权重初始化似乎是错误的,但我不明白为什么。所以,我的模型有一个以 sigmoid 作为激活函数的隐藏层,输出层使用 softmax。我也用泽维尔。所以,要初始化我使用的权重:

hidden_layer = tf.Variable(tf.random_normal([input_size, hid_size], stddev=0.01)) * np.sqrt(1./input_size)

output_layer = tf.Variable(tf.random_normal([hid_size, output_size], stddev=0.01)) * np.sqrt(1./hid_size)

给出了标准偏差。

你有没有看错?

如果您正在使用 Xavier,您应该考虑使用 Xavier 初始化程序,请参阅 here 文档。


hidden_layer  = tf.get_variable("w1", shape=[input_size, hid_size], initializer=tf.contrib.layers.xavier_initializer())

output_layer = tf.get_variable("w2", shape=[hid_size, output_size], initializer=tf.contrib.layers.xavier_initializer())