【发布时间】:2018-12-14 20:49:42
【问题描述】:
我在 TensorFlow 中编写了自己的多层感知器,我在其中初始化权重和偏差,如下所示:
# Store layers weight & bias
weights = {
'h1': tf.Variable(tf.random_normal([n_input, hidden_layer_sizes[0]], 0, 0.1, seed=random_state)), # 1 hidden layer is mandatory
}
biases = {
'b1': tf.Variable(tf.random_normal([hidden_layer_sizes[0]], 0, 0.1, seed=random_state)),
}
for i in range(len(hidden_layer_sizes)-1):
weights['h'+str(i+2)] = tf.Variable(tf.random_normal([hidden_layer_sizes[i], hidden_layer_sizes[i+1]], 0, 0.1, seed=random_state))
biases['b'+str(i+2)] = tf.Variable(tf.random_normal([hidden_layer_sizes[i+1]], 0, 0.1, seed=random_state))
weights['out'] = tf.Variable(tf.random_normal([hidden_layer_sizes[-1], n_classes], 0, 0.1, seed=random_state))
biases['out'] = tf.Variable(tf.random_normal([n_classes], 0, 0.1, seed=random_state))
隐藏层的数量在 1 到 4 之间变化,具体取决于输入。我一直在互联网上阅读有关初始化权重的替代方法,我想知道它们是否适用于 MLP 模型或仅适用于 CNN 等更复杂的模型。例如,Xavier、HE、方差缩放初始化等。
是否有任何替代初始化器适用于我的情况,哪一个被认为最适合这种类型的网络?
【问题讨论】:
标签: python tensorflow neural-network perceptron