error : module 'tensorflow._api.v2.train' has no attribute 'GradientDescentOptimizer' what is the solution

error : module 'tensorflow._api.v2.train' has no attribute 'GradientDescentOptimizer' what is the solution

import tensorflow as tf
# the equation is  : 4x+2 = 0
unknownvalue = tf.Variable(0.0)

a = tf.constant(4.0)
b = tf.constant(2.0)
c = tf.multiply(unknownvalue,a)  # 4x
equation  = tf.add(c,b) # 4x+2
zerovalue = tf.constant(0.0)
diff = tf.square(equation-zerovalue) # differnce is : 4x+2  -  0 
solving = tf.train.GradientDescentOptimizer(0.01).minimize(diff)
init = tf.global_variables_initializer()
tf.print(init)
for n in range(1000):
    tf.print(solving)

代码是从他的tensorflow库中用新版本写的 由于这个错误,程序没有 运行,它是 AttributeError:模块 'tensorflow._api.v2.train' 没有属性 'GradientDescentOptimizer' 解决方法是什么?

tensorflow 2 的梯度下降位于keras.optimizers,改成这样:tf.keras.optimizers.SGD().minimize(var_list=diff)

包已移动并重新组织。

这里有一个 link,它将向您展示将代码从使用 tensorflow 1 转换到 tensorflow 2 所需进行的更改:link