如何在tensorflow 2.0中监控梯度流?

vgo*_*ani 5 python tensorflow tensorboard

我想在我的模型在 Tensorflow 2.0 中训练时监控梯度流。理想情况下,我希望在模型训练时将梯度存储在数组中,然后在训练完成后通过 matplotlib 查看它们。我该怎么做?

这是我想要运行的玩具模型:

tf.keras.backend.clear_session()

input_sequence = tf.keras.layers.Input(shape=[number_timesteps, number_features])
x = tf.keras.layers.Conv1D(2**5, 3, padding='same', activation='relu')(input_sequence)
x = tf.keras.layers.Flatten()(x)
x = tf.keras.layers.Dropout(0.5)(x)
output_sequence = tf.keras.layers.Dense(number_classes, activation="softmax")(x)

model = tf.keras.Model(input_sequence, output_sequence)
model.compile(loss=tf.keras.losses.categorical_crossentropy, metrics=["accuracy"], optimizer=tf.keras.optimizers.Adam())
model.summary()

model.fit(...)
Run Code Online (Sandbox Code Playgroud)