我最初将自己的权重设置如下:
def new_weights(shape):
return tf.Variable(tf.truncated_normal(shape, stddev=0.05))但我意识到我有重量-0,如下图所示:

然后我决定用这种方式来定义它,对我来说,权重更容易被接受:
def new_weights(shape):
return tf.Variable(tf.zeros(shape))

我想知道使用tf.truncated_normal的含义是什么,-zeros是什么意思?如果你在像这样初始化它们时有任何问题。
在我介绍的两种方法中,初始化权重的最佳方法是什么?
发布于 2017-10-28 03:16:42
tf.truncated_normal从截断的正态分布输出随机值。因此,DNN具有很好的收敛性。下图是MNIST数据集上CNN的验证损失(左)和验证精度(右)。使用的权重初始化如下,

正如你所看到的,在-1到+1的尺度上的随机权重显示了很好的效果。因此,它是DNN中最常用的权值初始化方法。
参考文献,https://medium.com/@amarbudhiraja/towards-weight-initialization-in-deep-neural-networks-908d3d9f1e02
https://stackoverflow.com/questions/46984926
复制相似问题