使用 TensorFlow 2 在训练期间记录权重规范

问题描述

我正在使用 tensorflow 训练神经网络,我想监控某些层的 L2 范数。 我在 tensorflow 1 中找到了如何做到这一点,例如 here,但我找不到在 tensorflow 2 中做到这一点的方法。我想知道我该怎么做。谢谢!

解决方法

Tensorflow 2 提供了 Tensorflow 1 的兼容版本。 请找到以下用于计算非零权重的代码

import tensorflow as tf
import numpy as np

#Replace tf.trainable_variables() with tf.compat.v1.trainable_variables
tvars = tf.compat.v1.trainable_variables()
nonzero_parameters = np.sum([np.count_nonzero(var) for var in tvars])