我正在学习 Google Developers 的机器学习速成类(class)。给出的示例是在 TensorFlow < 2 上开发的。我正在 v2 上试用它们。以下示例代码创建了一个回归量对象。
# Create a linear regressor object.
my_optimizer = tf.train.GradientDescentOptimizer(learning_rate=learning_rate)
my_optimizer = tf.contrib.estimator.clip_gradients_by_norm(my_optimizer, 5.0)
linear_regressor = tf.estimator.LinearRegressor(
feature_columns=feature_columns,
optimizer=my_optimizer
)
我发现 tf.train.GradientDescentOptimizer 现在已移至 tf.optimizers.SGD,但无法找到 tf.contrib.estimator.clip_gradients_by_norm 的替代品。 经过一番谷歌搜索后才知道它被 tf.clip_by_norms 取代了。但是 clip by norms 将张量作为输入,而不是 clip_gradients_by_norm。
我是 tensorflow 的新手。任何帮助都将有助于弄清楚如何移植代码。
谢谢。
最佳答案
您可以通过在初始化优化器对象时设置clipnorm
参数来获得所需的功能。
optimizer = tf.optimizers.SGD(learning_rate=1e-5, clipnorm=1e-4)
关于python - TensorFlow v2 替换 clip_gradients_by_norm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58370792/