Das offizielle Tensorflow API-Dokument behauptet, dass der Parameter kernel_initializer
standardmäßig None
für tf.layers.conv2d
und verwendet wird tf.layers.dense
.
Beim Lesen des Layer-Tutorials ( https://www.tensorflow.org/tutorials/layers ) habe ich jedoch festgestellt, dass dieser Parameter nicht im Code festgelegt ist. Zum Beispiel:
# Convolutional Layer #1
conv1 = tf.layers.conv2d(
inputs=input_layer,
filters=32,
kernel_size=[5, 5],
padding="same",
activation=tf.nn.relu)
Der Beispielcode aus dem Tutorial läuft fehlerfrei, daher ist der Standardcode meiner Meinung nach kernel_initializer
nicht None
. Welcher Initialisierer wird also verwendet?
In einem anderen Code habe ich kernel_initializer
die Conv2d- und die dichten Ebenen nicht festgelegt , und alles war in Ordnung. Als ich jedoch versuchte, das kernel_initializer
auf zu setzen tf.truncated_normal_initializer(stddev=0.1, dtype=tf.float32)
, bekam ich NaN-Fehler. Was geht hier vor sich? Kann jemand helfen?