Tensorflow官方API文檔聲稱,對於tf.layers.conv2d和tf.layers.dense,參數kernel_initializer默認爲None。tf.layers.conv2d和tf.layers.dense中的默認內核初始化程序是什麼?
但是,閱讀圖層教程(https://www.tensorflow.org/tutorials/layers),我注意到這個參數沒有在代碼中設置。例如:
# Convolutional Layer #1
conv1 = tf.layers.conv2d(
inputs=input_layer,
filters=32,
kernel_size=[5, 5],
padding="same",
activation=tf.nn.relu)
從教程的示例代碼運行沒有任何錯誤,所以我覺得默認的kernel_initializer不是「無」。那麼,使用哪個初始化器?
在另一個代碼中,我沒有設置conv2d和密集層的kernel_initializer,並且一切正常。但是,當我試圖將kernel_initializer設置爲tf.truncated_normal_initializer(stddev = 0.1,dtype = tf.float32)時,我得到了NaN錯誤。這裏發生了什麼?誰能幫忙?
也許NaN有不同的原因?我正在使用kernel_initializer = tf.truncated_normal_initializer(stddev = 0。001,dtype = tf.float32),並按預期工作。 – JirkaV