Python TensorFlow v2用标准替换剪辑梯度

Python TensorFlow v2用标准替换剪辑梯度,python,tensorflow,Python,Tensorflow,我正在学习谷歌开发者的机器学习速成课程。给出的例子是在TensorFlow

我正在学习谷歌开发者的机器学习速成课程。给出的例子是在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\u替换成了tf.clip\u。但是clip-by-norm使用张量作为输入,而不是clip-by-norm的梯度

我是tensorflow的新手。任何关于如何移植代码的帮助都是值得的


谢谢。

您可以通过在初始化优化器对象时设置
clipnorm
参数来获得所需的功能

optimizer = tf.optimizers.SGD(learning_rate=1e-5, clipnorm=1e-4)