Официальный документ API Tensorflow утверждает, что для параметра 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
по умолчанию не None
. Итак, какой инициализатор используется?
В другом коде я не установил kernel_initializer
conv2d и плотных слоев, и все было хорошо. Однако, когда я попытался установить для kernel_initializer
значение tf.truncated_normal_initializer(stddev=0.1, dtype=tf.float32)
, я получил ошибки NaN. Что здесь происходит? Кто-нибудь может помочь?