[英]Converting Keras (Tensorflow) convolutional neural networks to PyTorch convolutional networks?
[英]Methods of initializing weights in Convolutional Neural Networks - Python/TensorFlow
我最初將我的權重設置如下:
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 是什么意思? 如果您在像這樣初始化它們時遇到任何問題。
在我介紹的兩者之間,初始化權重的最佳方法是什么?
tf.truncated_normal從截斷的正態分布中輸出隨機值。 因此,在 DNN 中具有良好的收斂性。 下圖是 CNN 在 MNIST 數據集上的驗證損失(左)和驗證准確度(右)。 使用的權重初始化如下,
如您所見,-1 到 +1 范圍內的隨機權重顯示出良好的結果。 因此,它是 DNN 中最常用的權重初始化方法。
參考資料, https://medium.com/@amarbudhiraja/towards-weight-initialization-in-deep-neural-networks-908d3d9f1e02
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.