官方Tensorflow API文档声称tf.layers.conv2d
和tf.layers.dense
函数的参数kernel_initializer
默认为None
。
然而,在阅读图层教程时(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”。那么,使用了哪个初始化器呢?在另一段代码中,我没有设置conv2d和dense层的“kernel_initializer”,一切都很好。然而,当我尝试将“kernel_initializer”设置为“tf.truncated_normal_initializer(stddev=0.1,dtype=tf.float32)”时,我得到了NaN错误。这是怎么回事?有人能帮忙吗?