深度学习模型权重初始化问题
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())
我正在尝试在 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())