python - TensorFlow v2 替换 clip_gradients_by_norm

标签 python tensorflow

我正在学习 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/

相关文章:

python - 隐藏直方图

python - x tan(x) - b 的零点

python - TensorFlow多元线性回归占位符和矩阵乘法误差

tensorflow - 所有运行在 TensorBoard 上都不可见

python - 使用 tf.data 的 One-hot 编码会混淆列

python - 如何多次循环访问相同的列表?

Python sys.stdout 不适用于 init.d 脚本

python+mongoengine 错误,int 不是 int?

python - 模块未找到错误: No module named 'tensorflow.compiler'

Tensorflow:如何处理试图平铺和连接两个张量的动态形状?